{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Xed-Editor theme manifest", "type": "object", "additionalProperties": false, "required": ["id", "name", "author", "repository", "type"], "properties": { "$schema": { "type": "string", "description": "Xed-Editor theme schema URL. This property enables theme validation and auto-completion" }, "id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)+$", "description": "Unique identifier of the Xed-Editor theme (package name)" }, "name": { "type": "string", "description": "Human-readable theme name", "minLength": 1 }, "version": { "type": "string", "default": "1.0.0", "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$", "description": "Semantic version string" }, "description": { "type": ["string", "null"], "default": null, "description": "Optional human-readable description of the theme" }, "author": { "$ref": "#/$defs/ThemeAuthor" }, "minAppVersion": { "type": ["integer", "null"], "default": null, "description": "Minimum Xed-Editor version code supported. null means no minimum restriction" }, "repository": { "type": "string", "format": "uri", "description": "Source code repository URL" }, "license": { "type": ["string", "null"], "default": null, "description": "SPDX license identifier (recommended)" }, "tags": { "type": "array", "uniqueItems": true, "minItems": 0, "items": { "type": "string" }, "default": [], "description": "Tags for categorization and discovery" }, "inheritBase": { "type": "boolean", "description": "Whether to inherit `tokenColors` from base theme", "default": true }, "type": { "type": "string", "enum": ["theme"], "description": "Package type (used in unified .xed format)" } }, "$defs": { "ThemeAuthor": { "type": "object", "additionalProperties": false, "required": ["displayName"], "properties": { "displayName": { "type": "string", "minLength": 1, "description": "Display name of the author" }, "github": { "type": ["string", "null"], "default": null, "description": "GitHub username (not URL, just the profile name)", "pattern": "^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$" } } } } }