As raised in the weekly discussion on 2021-03-17.
Description
Related Objects
Event Timeline
From the discussion it sounded like we didn't want to (partially) address this by allowing null values for keys (JSON does allow 'null' so it could be done that way, though the UI currently doesn't have a mechanism for entering a null, and further changes would still be needed in ZObjectFactory anyway) - rather the optional key should just be absent from the ZObject. If key had an additional boolean attribute "optional" (itself optional, default false) that would partially address the problem, but not the case where we want exactly 1 of N specific keys to be not null (as for implementation). Eventually each type should have its own in-wiki validator that can take care of all this. There are possibly other mechanisms being considered also. So maybe simplest would be for ZObjectFactory to just treat every key as optional for now?
I removed the one-of-three part, that makes this way harder. I created a new task for that, which can be tackled later: T277923