# JSON Schema compatibility report

Generated by the native schema-suite runner; rejection and skipping are not validation passes.

Upstream: [JSON-Schema-Test-Suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite/tree/55719286c33ae0d1823bfb65fea10338a19bc37c) at `55719286c33ae0d1823bfb65fea10338a19bc37c`.

Manifest SHA-256: `0c7150e7e35b586cb3bc3439a8a76ce6051dca73894b4742dcb5adf222ff2a45`.

Toolchain:

```text
moon 0.1.20260915 (2e1a46d 2026-09-15)
moonc v0.10.13+cbb11c36f (2026-09-15)
moonrun 0.1.20260915 (2e1a46d 2026-09-15)

Feature flags enabled: rr_moon_mod,rr_moon_pkg
```

Command from repository root (Git Bash or Linux):

```sh
moon run --target native cmd/schema_suite -- --manifest testdata/schema-suite-manifest.json --report-json _build/schema-suite/report.json --report-md docs/schema-compatibility.md --strict
```

Groups: 462; tests: 2354; executed: 1022; passed: 1022; compile rejected: 442; skipped: 890.

False accepts: 0; false rejects: 0; execution errors: 0; scope errors: 0; runner errors: 0.

| Capability | Groups | Tests | Executed | Passed | False accept | False reject | Compile rejected | Execution error | Skipped |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| id | 1 | 3 | 0 | 0 | 0 | 0 | 3 | 0 | 0 |
| iri | 1 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 26 |
| not | 9 | 40 | 38 | 38 | 0 | 0 | 2 | 0 | 0 |
| ref | 36 | 79 | 32 | 32 | 0 | 0 | 47 | 0 | 0 |
| uri | 1 | 47 | 0 | 0 | 0 | 0 | 0 | 0 | 47 |
| date | 1 | 81 | 0 | 0 | 0 | 0 | 0 | 0 | 81 |
| defs | 1 | 2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 |
| enum | 16 | 53 | 53 | 53 | 0 | 0 | 0 | 0 | 0 |
| ipv4 | 1 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 41 |
| ipv6 | 1 | 51 | 0 | 0 | 0 | 0 | 0 | 0 | 51 |
| time | 1 | 56 | 0 | 0 | 0 | 0 | 0 | 0 | 56 |
| type | 11 | 80 | 80 | 80 | 0 | 0 | 0 | 0 | 0 |
| uuid | 1 | 29 | 0 | 0 | 0 | 0 | 0 | 0 | 29 |
| allOf | 12 | 30 | 30 | 30 | 0 | 0 | 0 | 0 | 0 |
| anyOf | 8 | 18 | 18 | 18 | 0 | 0 | 0 | 0 | 0 |
| const | 17 | 54 | 54 | 54 | 0 | 0 | 0 | 0 | 0 |
| email | 1 | 71 | 0 | 0 | 0 | 0 | 0 | 0 | 71 |
| items | 10 | 29 | 29 | 29 | 0 | 0 | 0 | 0 | 0 |
| oneOf | 11 | 27 | 27 | 27 | 0 | 0 | 0 | 0 | 0 |
| regex | 1 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 18 |
| anchor | 5 | 12 | 0 | 0 | 0 | 0 | 12 | 0 | 0 |
| bignum | 7 | 9 | 9 | 9 | 0 | 0 | 0 | 0 | 0 |
| format | 19 | 133 | 133 | 133 | 0 | 0 | 0 | 0 | 0 |
| content | 4 | 18 | 0 | 0 | 0 | 0 | 18 | 0 | 0 |
| default | 3 | 7 | 7 | 7 | 0 | 0 | 0 | 0 | 0 |
| maximum | 2 | 8 | 8 | 8 | 0 | 0 | 0 | 0 | 0 |
| minimum | 2 | 11 | 11 | 11 | 0 | 0 | 0 | 0 | 0 |
| pattern | 3 | 12 | 9 | 9 | 0 | 0 | 3 | 0 | 0 |
| unknown | 1 | 7 | 0 | 0 | 0 | 0 | 0 | 0 | 7 |
| contains | 7 | 21 | 21 | 21 | 0 | 0 | 0 | 0 | 0 |
| duration | 1 | 52 | 0 | 0 | 0 | 0 | 0 | 0 | 52 |
| hostname | 2 | 64 | 0 | 0 | 0 | 0 | 0 | 0 | 64 |
| maxItems | 2 | 6 | 6 | 6 | 0 | 0 | 0 | 0 | 0 |
| minItems | 2 | 6 | 6 | 6 | 0 | 0 | 0 | 0 | 0 |
| required | 5 | 18 | 18 | 18 | 0 | 0 | 0 | 0 | 0 |
| date-time | 1 | 47 | 0 | 0 | 0 | 0 | 0 | 0 | 47 |
| idn-email | 1 | 24 | 0 | 0 | 0 | 0 | 0 | 0 | 24 |
| maxLength | 2 | 7 | 7 | 7 | 0 | 0 | 0 | 0 | 0 |
| minLength | 2 | 7 | 7 | 7 | 0 | 0 | 0 | 0 | 0 |
| no-schema | 1 | 3 | 3 | 3 | 0 | 0 | 0 | 0 | 0 |
| refRemote | 15 | 31 | 0 | 0 | 0 | 0 | 31 | 0 | 0 |
| dynamicRef | 22 | 46 | 0 | 0 | 0 | 0 | 46 | 0 | 0 |
| multipleOf | 5 | 11 | 11 | 11 | 0 | 0 | 0 | 0 | 0 |
| properties | 6 | 28 | 28 | 28 | 0 | 0 | 0 | 0 | 0 |
| vocabulary | 2 | 5 | 0 | 0 | 0 | 0 | 5 | 0 | 0 |
| cross-draft | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| maxContains | 5 | 14 | 14 | 14 | 0 | 0 | 0 | 0 | 0 |
| minContains | 8 | 28 | 28 | 28 | 0 | 0 | 0 | 0 | 0 |
| prefixItems | 4 | 11 | 11 | 11 | 0 | 0 | 0 | 0 | 0 |
| uniqueItems | 6 | 69 | 69 | 69 | 0 | 0 | 0 | 0 | 0 |
| idn-hostname | 2 | 98 | 0 | 0 | 0 | 0 | 0 | 0 | 98 |
| if-then-else | 12 | 30 | 30 | 30 | 0 | 0 | 0 | 0 | 0 |
| json-pointer | 1 | 40 | 0 | 0 | 0 | 0 | 0 | 0 | 40 |
| uri-template | 1 | 48 | 0 | 0 | 0 | 0 | 0 | 0 | 48 |
| iri-reference | 1 | 21 | 0 | 0 | 0 | 0 | 0 | 0 | 21 |
| maxProperties | 3 | 10 | 10 | 10 | 0 | 0 | 0 | 0 | 0 |
| minProperties | 2 | 10 | 10 | 10 | 0 | 0 | 0 | 0 | 0 |
| non-bmp-regex | 2 | 12 | 12 | 12 | 0 | 0 | 0 | 0 | 0 |
| propertyNames | 6 | 22 | 22 | 22 | 0 | 0 | 0 | 0 | 0 |
| uri-reference | 1 | 31 | 0 | 0 | 0 | 0 | 0 | 0 | 31 |
| boolean_schema | 2 | 18 | 18 | 18 | 0 | 0 | 0 | 0 | 0 |
| float-overflow | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
| unknownKeyword | 1 | 3 | 0 | 0 | 0 | 0 | 3 | 0 | 0 |
| dependentSchemas | 4 | 20 | 20 | 20 | 0 | 0 | 0 | 0 | 0 |
| ecmascript-regex | 26 | 86 | 56 | 56 | 0 | 0 | 18 | 0 | 12 |
| exclusiveMaximum | 1 | 4 | 4 | 4 | 0 | 0 | 0 | 0 | 0 |
| exclusiveMinimum | 1 | 4 | 4 | 4 | 0 | 0 | 0 | 0 | 0 |
| format-assertion | 2 | 4 | 0 | 0 | 0 | 0 | 4 | 0 | 0 |
| unevaluatedItems | 29 | 71 | 0 | 0 | 0 | 0 | 71 | 0 | 0 |
| dependentRequired | 4 | 20 | 20 | 20 | 0 | 0 | 0 | 0 | 0 |
| patternProperties | 6 | 26 | 23 | 23 | 0 | 0 | 3 | 0 | 0 |
| refOfUnknownKeyword | 5 | 10 | 2 | 2 | 0 | 0 | 8 | 0 | 0 |
| additionalProperties | 9 | 21 | 21 | 21 | 0 | 0 | 0 | 0 | 0 |
| relative-json-pointer | 1 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 26 |
| unevaluatedProperties | 44 | 129 | 0 | 0 | 0 | 0 | 129 | 0 | 0 |
| infinite-loop-detection | 1 | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 0 |
| dependencies-compatibility | 7 | 36 | 0 | 0 | 0 | 0 | 36 | 0 | 0 |

## Scope and limitations

This is an explicit Draft 2020-12 subset, not full conformance. Supported assertions include types, exact decimal bounds/multipleOf/equality, string and collection counts, uniqueness, tuple items, contains/minContains/maxContains matching counts, property schemas/patterns and propertyNames string validation, const/enum, if/then/else conditional branches, dependentRequired/dependentSchemas object dependencies, applicators, and local JSON Pointer references with $defs. The manifest independently declares every vendored group. All groups are matched by file, index and exact description.

format is annotation only. External references, named anchors, $id, dynamic references, vocabularies, dependencies, unevaluatedItems, unevaluatedProperties and other undeclared assertions remain unsupported. Regex supports literals, dot, classes, ordinary groups, alternation, repetitions and anchors; unsupported mechanisms are rejected. Dot excludes four line terminators; whitespace uses the ECMAScript set. Count parameters are limited to 1000000000. Schema snapshots permit depth 128 and 100000 JSON nodes; evaluation permits 128 active schema calls and 100000 visits per record. Same-instance reference cycles and exhaustion are execution errors.

Every exclusion below identifies its group; per-test_index results and diagnostics are in the JSON report. Expected rejections count only as scope-policy compliance.

## Exclusions

| File | Group | Description | Policy | Reason | Tests |
|---|---:|---|---|---|---:|
| tests/draft2020-12/not.json | 8 | collect annotations inside a 'not', even if collection is disabled | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/ref.json | 6 | remote ref, containing refs itself | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 11 | Recursive references between schemas | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 13 | ref creates new scope when adjacent to keywords | reject | Keyword/mechanism unevaluatedProperties is not implemented | 1 |
| tests/draft2020-12/ref.json | 15 | refs with relative uris and defs | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Local pointer requires an unsupported $id resource scope | 3 |
| tests/draft2020-12/ref.json | 16 | relative refs with absolute uris and defs | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Local pointer requires an unsupported $id resource scope | 3 |
| tests/draft2020-12/ref.json | 17 | $id must be resolved against nearest parent, not just immediate parent | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 18 | order of evaluation: $id and $ref | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 19 | order of evaluation: $id and $anchor and $ref | reject | Keyword/mechanism $id is not implemented; Named anchor references are not implemented; Keyword/mechanism $anchor is not implemented | 2 |
| tests/draft2020-12/ref.json | 20 | order of evaluation: $id and $ref on nested schema | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 21 | simple URN base URI with $ref via the URN | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 22 | simple URN base URI with JSON pointer | reject | Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 23 | URN base URI with NSS | reject | Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 24 | URN base URI with r-component | reject | Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 25 | URN base URI with q-component | reject | Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 26 | URN base URI with URN and JSON pointer ref | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 27 | URN base URI with URN and anchor ref | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $anchor is not implemented | 2 |
| tests/draft2020-12/ref.json | 28 | URN ref with nested pointer ref | reject | External/meta-schema references are not implemented; Keyword/mechanism $id is not implemented; Local pointer requires an unsupported $id resource scope | 2 |
| tests/draft2020-12/ref.json | 29 | ref to if | reject | External/meta-schema references are not implemented; Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 30 | ref to then | reject | External/meta-schema references are not implemented; Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 31 | ref to else | reject | External/meta-schema references are not implemented; Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 32 | ref with absolute-path-reference | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/ref.json | 33 | $id with file URI still resolves pointers - *nix | reject | Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/ref.json | 34 | $id with file URI still resolves pointers - windows | reject | Keyword/mechanism $id is not implemented | 2 |
| tests/draft2020-12/defs.json | 0 | validate definition against metaschema | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/anchor.json | 0 | Location-independent identifier | reject | Named anchor references are not implemented; Keyword/mechanism $anchor is not implemented | 2 |
| tests/draft2020-12/anchor.json | 1 | Location-independent identifier with absolute URI | reject | External/meta-schema references are not implemented; Keyword/mechanism $id is not implemented; Keyword/mechanism $anchor is not implemented | 2 |
| tests/draft2020-12/anchor.json | 2 | Location-independent identifier with base URI change in subschema | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $anchor is not implemented | 2 |
| tests/draft2020-12/anchor.json | 3 | same $anchor with different base uri | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $anchor is not implemented | 2 |
| tests/draft2020-12/content.json | 0 | validation of string-encoded content based on media type | reject | Keyword/mechanism contentMediaType is not implemented | 3 |
| tests/draft2020-12/content.json | 1 | validation of binary string-encoding | reject | Keyword/mechanism contentEncoding is not implemented | 3 |
| tests/draft2020-12/content.json | 2 | validation of binary-encoded media type documents | reject | Keyword/mechanism contentMediaType is not implemented; Keyword/mechanism contentEncoding is not implemented | 4 |
| tests/draft2020-12/content.json | 3 | validation of binary-encoded media type documents with schema | reject | Keyword/mechanism contentMediaType is not implemented; Keyword/mechanism contentEncoding is not implemented; Keyword/mechanism contentSchema is not implemented | 8 |
| tests/draft2020-12/pattern.json | 2 | pattern with Unicode property escape requires unicode mode | reject | Regex uses a mechanism outside the declared subset | 3 |
| tests/draft2020-12/refRemote.json | 0 | remote ref | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 1 | fragment within remote ref | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 2 | anchor within remote ref | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 3 | ref within remote ref | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 4 | base URI change | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 5 | base URI change - change folder | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 6 | base URI change - change folder in subschema | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 7 | root ref in remote ref | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 3 |
| tests/draft2020-12/refRemote.json | 8 | remote ref with ref to defs | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 9 | Location-independent identifier in remote ref | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 10 | retrieved nested refs resolve relative to their URI not $id | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 11 | remote HTTP ref with different $id | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 12 | remote HTTP ref with different URN $id | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 13 | remote HTTP ref with nested absolute ref | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/refRemote.json | 14 | $ref to $ref finds detached $anchor | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 0 | A $dynamicRef to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor | reject | Keyword/mechanism $id is not implemented; Keyword/mechanism $dynamicRef is not implemented; Keyword/mechanism $dynamicAnchor is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 1 | A $dynamicRef to an $anchor in the same schema resource behaves like a normal $ref to an $anchor | reject | Keyword/mechanism $id is not implemented; Keyword/mechanism $dynamicRef is not implemented; Keyword/mechanism $anchor is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 2 | A $ref to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor | reject | Keyword/mechanism $id is not implemented; Named anchor references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 3 | A $dynamicRef resolves to the first $dynamicAnchor still in scope that is encountered when the schema is evaluated | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 4 | A $dynamicRef without anchor in fragment behaves identical to $ref | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 5 | A $dynamicRef with intermediate scopes that don't include a matching $dynamicAnchor does not affect dynamic scope resolution | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 6 | An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $anchor is not implemented; Keyword/mechanism $dynamicRef is not implemented; Keyword/mechanism $dynamicAnchor is not implemented | 1 |
| tests/draft2020-12/dynamicRef.json | 7 | A $dynamicRef without a matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented; Keyword/mechanism $anchor is not implemented | 1 |
| tests/draft2020-12/dynamicRef.json | 8 | A $dynamicRef with a non-matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented; Keyword/mechanism $anchor is not implemented | 1 |
| tests/draft2020-12/dynamicRef.json | 9 | A $dynamicRef that initially resolves to a schema with a matching $dynamicAnchor resolves to the first $dynamicAnchor in the dynamic scope | reject | Keyword/mechanism $id is not implemented; Keyword/mechanism $dynamicAnchor is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 10 | A $dynamicRef that initially resolves to a schema without a matching $dynamicAnchor behaves like a normal $ref to $anchor | reject | Keyword/mechanism $id is not implemented; Keyword/mechanism $dynamicAnchor is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $anchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 1 |
| tests/draft2020-12/dynamicRef.json | 11 | multiple dynamic paths to the $dynamicRef keyword | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 4 |
| tests/draft2020-12/dynamicRef.json | 12 | after leaving a dynamic scope, it is not used by a $dynamicRef | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicRef is not implemented; Keyword/mechanism $dynamicAnchor is not implemented | 3 |
| tests/draft2020-12/dynamicRef.json | 13 | strict-tree schema, guards against misspelled properties | reject | Keyword/mechanism $id is not implemented; Keyword/mechanism $dynamicAnchor is not implemented; External/meta-schema references are not implemented; Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 14 | tests for implementation dynamic anchor and reference link | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented | 3 |
| tests/draft2020-12/dynamicRef.json | 15 | $ref and $dynamicAnchor are independent of order - $defs first | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented | 3 |
| tests/draft2020-12/dynamicRef.json | 16 | $ref and $dynamicAnchor are independent of order - $ref first | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented | 3 |
| tests/draft2020-12/dynamicRef.json | 17 | $ref to $dynamicRef finds detached $dynamicAnchor | reject | External/meta-schema references are not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 18 | $dynamicRef points to a boolean schema | reject | Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 19 | $dynamicRef skips over intermediate resources - direct reference | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/dynamicRef.json | 20 | $dynamicRef avoids the root of each schema, but scopes are still registered | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/vocabulary.json | 0 | schema that uses custom metaschema with with no validation vocabulary | reject | Keyword/mechanism $id is not implemented; Only the declared Draft 2020-12 URI is supported | 3 |
| tests/draft2020-12/vocabulary.json | 1 | ignore unrecognized optional vocabulary | reject | Only the declared Draft 2020-12 URI is supported | 2 |
| tests/draft2020-12/optional/id.json | 0 | $id inside an enum is not a real identifier | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented | 3 |
| tests/draft2020-12/optional/anchor.json | 0 | $anchor inside an enum is not a real identifier | reject | Keyword/mechanism $anchor is not implemented; Named anchor references are not implemented | 4 |
| tests/draft2020-12/unevaluatedItems.json | 0 | unevaluatedItems true | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 1 | unevaluatedItems false | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 2 | unevaluatedItems as schema | reject | Keyword/mechanism unevaluatedItems is not implemented | 3 |
| tests/draft2020-12/unevaluatedItems.json | 3 | unevaluatedItems with uniform items | reject | Keyword/mechanism unevaluatedItems is not implemented | 1 |
| tests/draft2020-12/unevaluatedItems.json | 4 | unevaluatedItems with tuple | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 5 | unevaluatedItems with items and prefixItems | reject | Keyword/mechanism unevaluatedItems is not implemented | 1 |
| tests/draft2020-12/unevaluatedItems.json | 6 | unevaluatedItems with items | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 7 | unevaluatedItems with nested tuple | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 8 | unevaluatedItems with nested items | reject | Keyword/mechanism unevaluatedItems is not implemented | 3 |
| tests/draft2020-12/unevaluatedItems.json | 9 | unevaluatedItems with nested prefixItems and items | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 10 | unevaluatedItems with nested unevaluatedItems | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 11 | unevaluatedItems with anyOf | reject | Keyword/mechanism unevaluatedItems is not implemented | 4 |
| tests/draft2020-12/unevaluatedItems.json | 12 | unevaluatedItems with oneOf | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 13 | unevaluatedItems with not | reject | Keyword/mechanism unevaluatedItems is not implemented | 1 |
| tests/draft2020-12/unevaluatedItems.json | 14 | unevaluatedItems with if/then/else | reject | Keyword/mechanism unevaluatedItems is not implemented | 4 |
| tests/draft2020-12/unevaluatedItems.json | 15 | unevaluatedItems with boolean schemas | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 16 | unevaluatedItems with $ref | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 17 | unevaluatedItems before $ref | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 18 | unevaluatedItems with $dynamicRef | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism unevaluatedItems is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 19 | unevaluatedItems can't see inside cousins | reject | Keyword/mechanism unevaluatedItems is not implemented | 1 |
| tests/draft2020-12/unevaluatedItems.json | 20 | item is evaluated in an uncle schema to unevaluatedItems | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 21 | unevaluatedItems depends on adjacent contains | reject | Keyword/mechanism unevaluatedItems is not implemented | 3 |
| tests/draft2020-12/unevaluatedItems.json | 22 | unevaluatedItems depends on multiple nested contains | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 23 | unevaluatedItems and contains interact to control item dependency relationship | reject | Keyword/mechanism unevaluatedItems is not implemented | 8 |
| tests/draft2020-12/unevaluatedItems.json | 24 | unevaluatedItems with minContains = 0 | reject | Keyword/mechanism unevaluatedItems is not implemented | 4 |
| tests/draft2020-12/unevaluatedItems.json | 25 | non-array instances are valid | reject | Keyword/mechanism unevaluatedItems is not implemented | 6 |
| tests/draft2020-12/unevaluatedItems.json | 26 | unevaluatedItems with null instance elements | reject | Keyword/mechanism unevaluatedItems is not implemented | 1 |
| tests/draft2020-12/unevaluatedItems.json | 27 | unevaluatedItems can see annotations from if without then and else | reject | Keyword/mechanism unevaluatedItems is not implemented | 2 |
| tests/draft2020-12/unevaluatedItems.json | 28 | Evaluated items collection needs to consider instance location | reject | Keyword/mechanism unevaluatedItems is not implemented | 1 |
| tests/draft2020-12/patternProperties.json | 5 | patternProperties with Unicode property escape | reject | Regex uses a mechanism outside the declared subset | 3 |
| tests/draft2020-12/optional/dynamicRef.json | 0 | $dynamicRef skips over intermediate resources - pointer reference across resource boundary | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/optional/format/iri.json | 0 | validation of IRIs | skip | Optional format assertions are not implemented; format is annotation only | 26 |
| tests/draft2020-12/optional/format/uri.json | 0 | validation of URIs | skip | Optional format assertions are not implemented; format is annotation only | 47 |
| tests/draft2020-12/optional/cross-draft.json | 0 | refs to historic drafts are processed as historic drafts | reject | External/meta-schema references are not implemented | 1 |
| tests/draft2020-12/optional/format/date.json | 0 | validation of date strings | skip | Optional format assertions are not implemented; format is annotation only | 81 |
| tests/draft2020-12/optional/format/ipv4.json | 0 | validation of IP addresses | skip | Optional format assertions are not implemented; format is annotation only | 41 |
| tests/draft2020-12/optional/format/ipv6.json | 0 | validation of IPv6 addresses | skip | Optional format assertions are not implemented; format is annotation only | 51 |
| tests/draft2020-12/optional/format/time.json | 0 | validation of time strings | skip | Optional format assertions are not implemented; format is annotation only | 56 |
| tests/draft2020-12/optional/format/uuid.json | 0 | uuid format | skip | Optional format assertions are not implemented; format is annotation only | 29 |
| tests/draft2020-12/optional/format/email.json | 0 | validation of e-mail addresses | skip | Optional format assertions are not implemented; format is annotation only | 71 |
| tests/draft2020-12/optional/format/regex.json | 0 | validation of regular expressions | skip | Optional format assertions are not implemented; format is annotation only | 18 |
| tests/draft2020-12/unevaluatedProperties.json | 0 | unevaluatedProperties true | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 1 | unevaluatedProperties schema | reject | Keyword/mechanism unevaluatedProperties is not implemented | 3 |
| tests/draft2020-12/unevaluatedProperties.json | 2 | unevaluatedProperties false | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 3 | unevaluatedProperties with adjacent properties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 4 | unevaluatedProperties with adjacent patternProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 5 | unevaluatedProperties with adjacent bool additionalProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 6 | unevaluatedProperties with adjacent non-bool additionalProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 7 | unevaluatedProperties with nested properties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 8 | unevaluatedProperties with nested patternProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 9 | unevaluatedProperties with nested additionalProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 10 | unevaluatedProperties with nested unevaluatedProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 11 | unevaluatedProperties with anyOf | reject | Keyword/mechanism unevaluatedProperties is not implemented | 4 |
| tests/draft2020-12/unevaluatedProperties.json | 12 | unevaluatedProperties with oneOf | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 13 | unevaluatedProperties with not | reject | Keyword/mechanism unevaluatedProperties is not implemented | 1 |
| tests/draft2020-12/unevaluatedProperties.json | 14 | unevaluatedProperties with if/then/else | reject | Keyword/mechanism unevaluatedProperties is not implemented | 4 |
| tests/draft2020-12/unevaluatedProperties.json | 15 | unevaluatedProperties with if/then/else, then not defined | reject | Keyword/mechanism unevaluatedProperties is not implemented | 4 |
| tests/draft2020-12/unevaluatedProperties.json | 16 | unevaluatedProperties with if/then/else, else not defined | reject | Keyword/mechanism unevaluatedProperties is not implemented | 4 |
| tests/draft2020-12/unevaluatedProperties.json | 17 | unevaluatedProperties with dependentSchemas | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 18 | unevaluatedProperties with boolean schemas | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 19 | unevaluatedProperties with $ref | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 20 | unevaluatedProperties before $ref | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 21 | unevaluatedProperties with $dynamicRef | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism $dynamicAnchor is not implemented; Keyword/mechanism unevaluatedProperties is not implemented; Keyword/mechanism $dynamicRef is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 22 | unevaluatedProperties can't see inside cousins | reject | Keyword/mechanism unevaluatedProperties is not implemented | 1 |
| tests/draft2020-12/unevaluatedProperties.json | 23 | unevaluatedProperties can't see inside cousins (reverse order) | reject | Keyword/mechanism unevaluatedProperties is not implemented | 1 |
| tests/draft2020-12/unevaluatedProperties.json | 24 | nested unevaluatedProperties, outer false, inner true, properties outside | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 25 | nested unevaluatedProperties, outer false, inner true, properties inside | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 26 | nested unevaluatedProperties, outer true, inner false, properties outside | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 27 | nested unevaluatedProperties, outer true, inner false, properties inside | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 28 | cousin unevaluatedProperties, true and false, true with properties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 29 | cousin unevaluatedProperties, true and false, false with properties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 30 | property is evaluated in an uncle schema to unevaluatedProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 31 | in-place applicator siblings, allOf has unevaluated | reject | Keyword/mechanism unevaluatedProperties is not implemented | 3 |
| tests/draft2020-12/unevaluatedProperties.json | 32 | in-place applicator siblings, anyOf has unevaluated | reject | Keyword/mechanism unevaluatedProperties is not implemented | 3 |
| tests/draft2020-12/unevaluatedProperties.json | 33 | unevaluatedProperties + single cyclic ref | reject | Keyword/mechanism unevaluatedProperties is not implemented | 7 |
| tests/draft2020-12/unevaluatedProperties.json | 34 | unevaluatedProperties + ref inside allOf / oneOf | reject | Keyword/mechanism unevaluatedProperties is not implemented | 8 |
| tests/draft2020-12/unevaluatedProperties.json | 35 | dynamic evaluation inside nested refs | reject | Keyword/mechanism unevaluatedProperties is not implemented | 21 |
| tests/draft2020-12/unevaluatedProperties.json | 36 | non-object instances are valid | reject | Keyword/mechanism unevaluatedProperties is not implemented | 6 |
| tests/draft2020-12/unevaluatedProperties.json | 37 | unevaluatedProperties with null valued instance properties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 1 |
| tests/draft2020-12/unevaluatedProperties.json | 38 | unevaluatedProperties not affected by propertyNames | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 39 | unevaluatedProperties can see annotations from if without then and else | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 40 | dependentSchemas with unevaluatedProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 3 |
| tests/draft2020-12/unevaluatedProperties.json | 41 | Evaluated properties collection needs to consider instance location | reject | Keyword/mechanism unevaluatedProperties is not implemented | 1 |
| tests/draft2020-12/unevaluatedProperties.json | 42 | Evaluated properties collection needs to consider instance location with patternProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/unevaluatedProperties.json | 43 | Evaluated properties collection needs to consider instance location with additionalProperties | reject | Keyword/mechanism unevaluatedProperties is not implemented | 2 |
| tests/draft2020-12/optional/format/unknown.json | 0 | unknown format | skip | Optional format assertions are not implemented; format is annotation only | 7 |
| tests/draft2020-12/optional/unknownKeyword.json | 0 | $id inside an unknown keyword is not a real identifier | reject | Keyword/mechanism $id is not implemented; External/meta-schema references are not implemented; Keyword/mechanism array_of_schemas is not implemented; Keyword/mechanism object_of_schemas is not implemented | 3 |
| tests/draft2020-12/optional/format/duration.json | 0 | validation of duration strings | skip | Optional format assertions are not implemented; format is annotation only | 52 |
| tests/draft2020-12/optional/format/hostname.json | 0 | validation of host names | skip | Optional format assertions are not implemented; format is annotation only | 26 |
| tests/draft2020-12/optional/format/hostname.json | 1 | validation of A-label (punycode) host names | skip | Optional format assertions are not implemented; format is annotation only | 38 |
| tests/draft2020-12/optional/ecmascript-regex.json | 2 | ECMA 262 regex escapes control codes with \c and upper letter | reject | Regex uses a mechanism outside the declared subset | 2 |
| tests/draft2020-12/optional/ecmascript-regex.json | 3 | ECMA 262 regex escapes control codes with \c and lower letter | reject | Regex uses a mechanism outside the declared subset | 2 |
| tests/draft2020-12/optional/ecmascript-regex.json | 10 | patterns always use unicode semantics with pattern | reject | Regex uses a mechanism outside the declared subset | 4 |
| tests/draft2020-12/optional/ecmascript-regex.json | 14 | pattern with non-ASCII digits | reject | Regex uses a mechanism outside the declared subset | 3 |
| tests/draft2020-12/optional/ecmascript-regex.json | 15 | patterns always use unicode semantics with patternProperties | reject | Regex uses a mechanism outside the declared subset | 4 |
| tests/draft2020-12/optional/ecmascript-regex.json | 19 | patternProperties with non-ASCII digits | reject | Regex uses a mechanism outside the declared subset | 3 |
| tests/draft2020-12/optional/format-assertion.json | 0 | schema that uses custom metaschema with format-assertion: false | reject | Keyword/mechanism $id is not implemented; Only the declared Draft 2020-12 URI is supported | 2 |
| tests/draft2020-12/optional/format-assertion.json | 1 | schema that uses custom metaschema with format-assertion: true | reject | Keyword/mechanism $id is not implemented; Only the declared Draft 2020-12 URI is supported | 2 |
| tests/draft2020-12/optional/format/date-time.json | 0 | validation of date-time strings | skip | Optional format assertions are not implemented; format is annotation only | 47 |
| tests/draft2020-12/optional/format/idn-email.json | 0 | validation of an internationalized e-mail addresses | skip | Optional format assertions are not implemented; format is annotation only | 24 |
| tests/draft2020-12/optional/format/idn-hostname.json | 0 | validation of internationalized host names | skip | Optional format assertions are not implemented; format is annotation only | 78 |
| tests/draft2020-12/optional/format/idn-hostname.json | 1 | validation of separators in internationalized host names | skip | Optional format assertions are not implemented; format is annotation only | 20 |
| tests/draft2020-12/optional/format/json-pointer.json | 0 | validation of JSON-pointers (JSON String Representation) | skip | Optional format assertions are not implemented; format is annotation only | 40 |
| tests/draft2020-12/optional/format/uri-template.json | 0 | format: uri-template | skip | Optional format assertions are not implemented; format is annotation only | 48 |
| tests/draft2020-12/optional/refOfUnknownKeyword.json | 0 | reference of a root arbitrary keyword  | reject | Keyword/mechanism unknown-keyword is not implemented | 2 |
| tests/draft2020-12/optional/refOfUnknownKeyword.json | 1 | reference of a root arbitrary keyword with encoded ref | reject | Keyword/mechanism unknown/keyword is not implemented | 2 |
| tests/draft2020-12/optional/refOfUnknownKeyword.json | 2 | reference of an arbitrary keyword of a sub-schema | reject | Keyword/mechanism unknown-keyword is not implemented | 2 |
| tests/draft2020-12/optional/refOfUnknownKeyword.json | 4 | reference of an arbitrary keyword of a sub-schema with encoded ref | reject | Keyword/mechanism unknown/keyword is not implemented | 2 |
| tests/draft2020-12/optional/format/iri-reference.json | 0 | validation of IRI References | skip | Optional format assertions are not implemented; format is annotation only | 21 |
| tests/draft2020-12/optional/format/uri-reference.json | 0 | validation of URI References | skip | Optional format assertions are not implemented; format is annotation only | 31 |
| tests/draft2020-12/optional/format/ecmascript-regex.json | 0 | \a is not an ECMA 262 control escape | skip | Optional format assertions are not implemented; format is annotation only | 1 |
| tests/draft2020-12/optional/format/ecmascript-regex.json | 1 | Python-specific regular expression syntax is not valid ECMA 262 | skip | Optional format assertions are not implemented; format is annotation only | 3 |
| tests/draft2020-12/optional/format/ecmascript-regex.json | 2 | global inline flag groups are not valid ECMA 262 | skip | Optional format assertions are not implemented; format is annotation only | 2 |
| tests/draft2020-12/optional/format/ecmascript-regex.json | 3 | ECMA 262 named groups and backreferences are valid | skip | Optional format assertions are not implemented; format is annotation only | 2 |
| tests/draft2020-12/optional/format/ecmascript-regex.json | 4 | ECMA 262 lookbehind is valid, including variable width | skip | Optional format assertions are not implemented; format is annotation only | 1 |
| tests/draft2020-12/optional/format/ecmascript-regex.json | 5 | ECMA 262 character classes and escapes | skip | Optional format assertions are not implemented; format is annotation only | 3 |
| tests/draft2020-12/optional/dependencies-compatibility.json | 0 | single dependency | reject | Keyword/mechanism dependencies is not implemented | 7 |
| tests/draft2020-12/optional/dependencies-compatibility.json | 1 | empty dependents | reject | Keyword/mechanism dependencies is not implemented | 3 |
| tests/draft2020-12/optional/dependencies-compatibility.json | 2 | multiple dependents required | reject | Keyword/mechanism dependencies is not implemented | 6 |
| tests/draft2020-12/optional/dependencies-compatibility.json | 3 | dependencies with escaped characters | reject | Keyword/mechanism dependencies is not implemented | 4 |
| tests/draft2020-12/optional/dependencies-compatibility.json | 4 | single schema dependency | reject | Keyword/mechanism dependencies is not implemented | 8 |
| tests/draft2020-12/optional/dependencies-compatibility.json | 5 | boolean subschemas | reject | Keyword/mechanism dependencies is not implemented | 4 |
| tests/draft2020-12/optional/dependencies-compatibility.json | 6 | schema dependencies with escaped characters | reject | Keyword/mechanism dependencies is not implemented | 4 |
| tests/draft2020-12/optional/format/relative-json-pointer.json | 0 | validation of Relative JSON Pointers (RJP) | skip | Optional format assertions are not implemented; format is annotation only | 26 |

## Errors and discrepancies

All declared validation cases agree; expected rejections match policy; inventory and manifest are complete.
