ExtCritical typedef

ExtCritical = List<String>

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>;