Defines a named slot in a MeshObject.
A PropertyType must be defined as part of an EntityType. When a MeshObject is blessed with that EntityType, the PropertyType is applied to the MeshObject, leading to a Property on the MeshObject that may be accessed.
Each PropertyType has a name, a MeshTypeIdentifier, a description, a DataType and a default value. A PropertyType may be mandatory or optional (i.e. does not or does allow null values), and it may be read-write or read-only.