So, problem: schema does not accommodate enough use cases.
Solution 1: refactor schema
Solution 2: abandon schema
The truth is that you can’t really abandon schema, it’s just spread through the code base now, and any violation of the schema will blow up not when you write malformed data but when you read it later.