While the properties of a readonly
reference type field can still be changed
after initialization, those of a readonly value type field, such as a struct, cannot.
If the member could be either a class or a struct then assignment to its properties could be unreliable, working
sometimes but not others.