Boilerplate which avoids having to use generics. Instead of Property<Side>, use SideProperty.
Property<Side>
SideProperty
Returns a read-only view of this mutable SideProperty. Typical usage :