Every ZObject of type Z4/Type must have the following three keys, and nothing more:
Z1K1/type with the value "Z4".
Z4K1/identity (aka call) with the value being a string with the name of the page.*
Z4K2/keys with the value being a list of Z3/Key objects.
Also check that all the ZObjects of Z3/Key have the following four keys and nothing else:
Z1K1/type with the value "Z3".
Z3K1/key id with the a string of the form ZnKm. The Zn is the ZID of the page, the m in the Km must be consecutive and start with 1.
Z3K2/type must be an existing ZID. The ZID must be an instance of type Z4/type (i.e. the page with the given ZID must have a Z2K2/value, that value must have a Z1K1/type with the string value Z4).
Z3K3/label must be, for now, a simple string. This will be changed soon.
Hook in this validator into the existing checking system.
Note that if all goes well, this implementation will be removed by the end of Phase zeta.
- Note that this doesn't look very useful right now. The need for this is because Z4s will be floating around without their embedded Z2 at some point, and then it is good to understand what this object refers to. In case this is not convincing, we can remove this key from this task and implement it later when needed. In this case, a new task should be created.