(Kinda optional, can be bumped to a later phase)
Ensure that certain things cannot be changed through editing. These, in particular, include the core types and their keys.
Z1/ZObject of type Z4/Type and with one key Z1K1/type pointing to a Z4/Type.
Z2/PersistentObject of type Z4/Type with the following keys, and nothing else:
- Z2K1/ID, pointing to a Z6/String
- Z2K2/value, pointing to an anything
- Z2K3/label (with the type we use for labels)
The same for String (with one key for value), Reference (with one key for the referenced ID), and List (with a key for Head and Tail).
We will add more hardcoded conditions as we move on, although we hope that we can keep them minimal.