Schemas extend the notion of interfaces to detailed descriptions of
attributes (but not methods). Every schema is an interface and specifies
the public fields of an object. A field roughly corresponds to an attribute
of a Python object, but provides space for a title and description. It can
also constrain its value and provide a validation method. Fields can
optionally be marked as read-only or not required.
