AL
This is a very eloquent articulation of an aspect of JSON Schema I've struggled to describe, making do with "in code we often describe what a thing is; JSON Schema describes what a thing isn't". May I ask though: why? JSON Schema is--I presume--intended to serve programmatic uses. Why choose a constraint model that's at odds with a structural (or "object oriented") approach?