Due to the implementation of the fix for T262097 we stopped validating if the key-types are valid types.
Whereas this unblocked the creation of recursive types, a question is whether we cannot do a bit more validation.
For example:
- check that the ZID exists
- check that the type of the ZID is Z4/Type
Alternatively, still do a full validation, but remember all the types we already started validating and return if we validate a type that is already being validated on this specific run. This would require a parameter for the validation function that carries state.
This all may become obsolete if we implement https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Errors_messages_on_ZObjects instead of doing full validation every time.