ExtCritical typedef
Names the ext namespaces a consumer MUST understand or refuse, per SPEC.md
§4.5.1. Every entry MUST be an immediate key of the sibling ext object at the
same level; an entry naming an absent namespace is non-conforming and the consumer
rejects the document with malformedRequest. A consumer that does not recognize a
namespace named here MUST NOT process the document as though the namespace were
absent, and rejects it with unsupportedExtension — the exception to the rule that
unrecognized namespaces are ignored. A producer marks a namespace only where the
document's meaning depends on it. Marking one that merely carries a hint or an
annotation turns every consumer that has not implemented it into a failure where it
would otherwise have interoperated. JSON Schema cannot check either of those rules:
that an entry names a present namespace is checkable only against the sibling
ext, and whether a namespace is load-bearing is not a schema question at all.
Both are consumer-side checks.
Implementation
typedef ExtCritical = List<String>;