ZObject, before being stored, must be well-formed.
A well-formed ZObject must:
- be a String
OR
- be an array of well-formed ZObjects
OR
- be an object AND
- have the first key be Z1K1 AND
- have all keys be of the form (Zn)Km AND
- have the keys be sorted first by n and the by m (if no n, then assume n being last)
- all values must be well-formed ZObjects