Master JSON Schema's Subtleties
Don’t be Surprised by JSON Schema’s Surprising Surprises (Part I)
API Design Matters has moved to its own site, apidesignmatters.org.
This article appears there at Master JSON Schema’s Subtleties
I will no longer maintain the content on Substack.




The kind folks in the JSON Schema community pointed out a couple things I should share:
When using OpenAPI, the `unevaluatedProperties` feature described in this post is only available with OpenAPI 3.1 (which uses JSON Schema 2020-12 by default).
Also, the behavior of `unevaluatedProperties` and `additionalProperties` are also affected by the presence of the `patternProperties` keyword.
Also, the JSON Schema team hold that ajv is non-compliant by having the strict mode enabled by default. You can turn that off with --strict=false to be more compliant.
One also needs to use the --spec=draft2020 option with the ajv CLI when using JSON Schemas that use these later JSON Schema drafts.