We aim for a distinction between "concrete" Properties of Records/RecordTypes and "abstract" Properties as part of the definition of a data model. Concrete properties are always "contained" in a record or record type while abstract properties stand for themselves.
The old "get_property" functions serves the same purpose as the new "[]" notation.
Instead of `get_property` / `add_property` etc. functions belonging to class Entity, we should refactor the list of properties (of an entity) to be a special kind of list, e.g. PropertyList.
This list should enherit from a standard list, have all the known functions like "append", "extend", "__in__" and allow for all property-related functionality as part of its member functions (instead of access via Entity directly).
Same story for the parents.
**GET RID OF MULTI PROPERTIES!!!**
#### how to deal with "property metadata"
Current suggestion: stored in a special field "property_metadata" belonging to the object.
`property_metadata` is a dict:
- importance
- unit
- description
- ...
### Serialization
What information needs to be contained in (meta)data? How compatible is it with
GRPC json serialization?
### Recursive Retrieval
I can resolve later and end up with the same result: