Roadmap

The next step

1 v0

1.1 JSON Schema spec correctness fixes ✓ Complete

Completed in ../plans/completed/plan_json_schema_correctness.md.

Four keyword implementations contradicted the JSON Schema Validation 2020-12 spec. All four have been fixed:

1.2 JSON Schema: wire existing validators into the rule layer ✓ Complete

Completed in ../plans/completed/plan_json_schema_wire_validators.md.

Six keywords that had working Validator implementations in validation.dart but were unreachable via SchemaParser or JsonSchemaValidator are now fully wired in:

const, multipleOf, uniqueItems, minProperties, maxProperties, dependentRequired

1.3 JSON Schema: missing keywords ✓ Complete

Completed in ../plans/completed/plan_json_schema_missing_keywords.md.

Structural keywords that were absent entirely and whose omission caused invalid documents to silently pass validation — all four groups are now implemented:

1.4 JSON Schema: standard format strings ✓ Complete

Completed in ../plans/completed/plan_json_schema_formats.md.

Seven new format validators registered in StringFormatValidator:

hostname, idn-hostname (best-effort), ipv4, ipv6, uri-reference, json-pointer, relative-json-pointer

Deferred to v1: idn-email, iri, iri-reference, uri-template.

2 v1

2.1 JSON Schema: iri, iri-reference format validators

Internationalized URI formats (RFC 3987) deferred from v0. A structural check for iri requires allowing RFC 3987 ucschar ranges in the path, query, and fragment components — beyond a simple Uri.tryParse wrapper. iri-reference is the relative form of the same.

2.2 JSON Schema: idn-email format validator

Internationalized email (RFC 6531) deferred from v0. Requires a Unicode-aware implementation with no artificial length cap — cannot be built by wrapping the existing Email.isValid (ASCII-only regexes, 30-character input cap).

2.3 JSON Schema: uri-template format validator

URI template syntax (RFC 6570) deferred from v0. The expression grammar ({+path}, {#fragment}, {.label*}) is complex enough that a regex approximation produces false positives and false negatives. A conformant implementation requires a proper parser.