Binds a top-level property and a hierarchically lower property together so a change to one updates the other.
DerivedProperty allows a property to be created that relies on and even defines the contents of another property.
PropertyGroup is a convenience wrapper around multiple properties of the same type.