In this task we design a generic view for ZObjects, as well as how to create and edit them.
One possible idea (but more a baseline than a full-fledged solution): we display a ZObject as a two-column table, witch each key-value pair in a row. The key is replaced by the respective label. The value is displayed as a ZObject, recursively.
Additionally, any ZObject with subobjects can be collapsed into a single line that somehow summarizes the ZObject.
Ideally, we can start editing at any level of the ZObject. The editing interface hopefully looks similar to the viewing interface.
The editing interface and the creation interface are hopefully similar.
Note that this is for the generic case. Any type can furthermore have specific interfaces for any of these three tasks.
The editing task will lead to a number of implementation tasks.