SchemaEvaluator
Checks a JSON value against the subset of JSON Schema 2020-12 that A2UI v1.0 actually uses.
This is not a general JSON Schema validator and must not be described as one. It implements the keywords the published schemas assert with, listed in SUPPORTED_KEYWORDS, and reports any other keyword it meets through SchemaValidation.unsupportedKeywords rather than pretending to have applied it. The distinction matters because the failure mode of a partial validator is silent acceptance: a catalog that constrains a property with a keyword this does not know would validate against nothing at all, and the payload would render.
The scope was chosen by reading the keywords out of the published documents rather than by picking a plausible subset — see the test that asserts the basic catalog stays inside it.
Instances are agent-controlled, and so are the schemas once a catalog may be inlined in a capabilities message. Everything here is therefore bounded by ValidationLimits rather than by the shape of the input, and no value from the instance is ever copied into a message (SchemaViolation).