{ "$id": "https://xcontrol.dev/schemas/cms.schema.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "XControl CMS Configuration", "type": "object", "required": [ "templates", "theme", "extensions", "contentSources" ], "additionalProperties": false, "properties": { "templates": { "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "name", "entry" ], "additionalProperties": false, "properties": { "name": { "type": "string", "minLength": 1 }, "entry": { "description": "The relative path to the template entry point.", "type": "string", "minLength": 1 }, "description": { "type": "string" }, "previewPath": { "description": "Optional static preview asset path.", "type": "string" } } } }, "theme": { "type": "object", "required": [ "name", "version" ], "additionalProperties": false, "properties": { "name": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 }, "author": { "type": "string" }, "variables": { "description": "Theme tokens exposed to templates.", "type": "object", "additionalProperties": { "type": [ "string", "number", "boolean" ] } } } }, "extensions": { "type": "array", "items": { "type": "object", "required": [ "name", "package" ], "additionalProperties": false, "properties": { "name": { "type": "string", "minLength": 1 }, "package": { "description": "Resolvable package name or path.", "type": "string", "minLength": 1 }, "enabled": { "type": "boolean", "default": true }, "config": { "type": "object" } } } }, "contentSources": { "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "type", "name", "options" ], "additionalProperties": false, "properties": { "type": { "type": "string", "enum": [ "git", "filesystem", "api", "database" ] }, "name": { "type": "string", "minLength": 1 }, "options": { "description": "Source specific configuration payload.", "type": "object" }, "readOnly": { "type": "boolean", "default": false } } } }, "deployment": { "type": "object", "additionalProperties": false, "properties": { "preview": { "type": "boolean" }, "defaultLocale": { "type": "string" } } }, "$schema": { "type": "string", "description": "Optional JSON Schema declaration for tooling support." } } }