C# record types are designed to be immutable by default. When using a C# record type, you can create a new instance based on an existing instance using the with
expression.
Behind the scenes the compiler will generate a Clone method that calls a copy constructor:
Although a default copy constructor is generated for you, you can create your own if you want to: