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:
patternis no longer anchored —hasMatch()replaces the full-string checkintegeraccepts whole-number doubles (e.g.1.0), non-finite values rejectedtypearray form (["string","null"]) is now parsed and validated correctlyuriandurnformat validators have been corrected (were swapped)
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:
contains/minContains/maxContainsprefixItems(and correct 2020-12 semantics foritemswith a prefix, including booleanitems: false)patternPropertiesadditionalPropertiesas a sub-schema (previously onlyfalsewas handled; guard removed)
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.