Assigns a collection of gates to determine property
writability. A
property will be considered writable if and only if all gates are open.
This mechanism is mainly used for dynamic UI authorization based on model
state, e.g. a validated invoice should not be editable anymore.
Descriptor assigned gates will be cloned for each property instance created
and backed by this descriptor. So basically, each property instance will
have its own, unshared collection of writability gates.
Jspresso provides a useful set of gate types, like the binary property gate
that open/close based on the value of a boolean property of owning
component.
By default, property descriptors are not assigned any gates collection,
i.e. there is no writability restriction. Note that gates do not enforce
programmatic writability of a property; only UI is impacted.