{ "$id": "https://example.com/schemas/article.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "$defs": { "author": { "title": "Author", "type": "object", "properties": { "name": { "type": "string" }, "role": { "type": "string", "enum": [ "writer", "editor", "guest" ] } }, "required": [ "name" ] }, "tag": { "title": "Tag", "type": "string" }, "details": { "$anchor": "articleDetails", "title": "Article Details", "type": "object", "properties": { "wordCount": { "type": "integer" }, "readingTimeMinutes": { "type": "integer" } } }, "editorialReview": { "title": "Editorial Review", "type": "object", "properties": { "reviewer": { "type": "string" }, "approved": { "type": "boolean" }, "notes": { "type": "string" } }, "required": [ "reviewer" ] } }, "title": "Article", "type": "object", "properties": { "title": { "type": "string" }, "authors": { "type": "array", "items": { "$ref": "#/$defs/author" } }, "tags": { "type": "array", "items": { "type": "string", "minLength": 2 } }, "detailsFromDefs": { "$ref": "#/$defs/details" }, "detailsViaAnchor": { "$ref": "#articleDetails" }, "status": { "type": "string", "enum": [ "draft", "review", "published" ] }, "editorial": { "$ref": "#/$defs/editorialReview" }, "premium": { "type": "boolean" }, "premiumFeatures": { "type": "array", "items": { "type": "string" } }, "x-internal-metadata": { "type": "object" } }, "required": [ "title" ], "allOf": [ { "if": { "properties": { "premium": { "const": true } } }, "then": { "required": [ "premiumFeatures" ], "properties": { "premiumFeatures": { "minItems": 1 } } }, "else": { "properties": { "premiumFeatures": { "maxItems": 0 } } } }, { "if": { "properties": { "status": { "const": "published" } } }, "then": { "required": [ "detailsViaAnchor" ] }, "else": { "required": [ "detailsFromDefs" ] } } ] }