Typing is not a programming bottleneck
Some developers seem to think that typing is a major bottleneck while programming. It's not.
You're viewing a single thread.
Assuming this is C#, you could just make Reservation a record type, which can be defined with a one line primary constructor, is immutable and has value type equality. Second example is an insane amount of boilerplate.
And you can use the with expression to create clones of the object with some properties modified.
with