{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "hms/schemas/plugin/plugin_manifest_v1.schema.json", "title": "HMS Plugin Manifest v1", "description": "PLAN.md ยง14.3: Plugin-Manifest mit Backend-Entrypoints, Parameters und Adaptive Quality.", "type": "object", "required": ["schema_version", "id", "name", "version", "api_version", "kind", "vendor", "entrypoints", "capabilities", "failure_mode"], "properties": { "schema_version": {"const": 1}, "id": {"type": "string", "pattern": "^[a-z0-9._-]{5,}$"}, "name": {"type": "string", "minLength": 1}, "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, "api_version": {"const": 1}, "kind": {"enum": ["source", "generator", "filter", "transition", "mixer", "output", "control", "automation"]}, "vendor": {"type": "string", "minLength": 1}, "entrypoints": { "type": "object", "minProperties": 1, "additionalProperties": { "type": "object", "required": ["type", "passes"], "properties": { "type": {"type": "string"}, "passes": { "type": "array", "minItems": 1, "items": {"type": "object"} } } } }, "capabilities": { "type": "object", "required": ["minimum_tier", "supported_backends"], "properties": { "minimum_tier": {"enum": ["DESKTOP_FULL", "DESKTOP_LITE", "PI_LITE", "HEADLESS_CONTROL"]}, "requires_input_texture": {"type": "boolean"}, "supported_backends": { "type": "array", "items": {"enum": ["d3d11", "gl", "gles"]}, "minItems": 1 } } }, "adaptive_quality": { "type": "object", "required": ["default", "variants"], "properties": { "default": {"type": "string"}, "variants": { "type": "array", "minItems": 1, "items": { "type": "object", "required": ["id"], "properties": { "id": {"type": "string"}, "internal_scale": {"type": "number", "exclusiveMinimum": 0, "maximum": 1}, "samples": {"type": "integer", "minimum": 1} } } }, "transition_ms": {"type": "number", "minimum": 0}, "semantic_parameters_unchanged": {"type": "array", "items": {"type": "string"}} } }, "parameters": { "type": "array", "items": { "type": "object", "required": ["id", "label", "type", "default"], "properties": { "id": {"type": "string", "minLength": 1}, "label": {"type": "string", "minLength": 1}, "type": {"enum": ["float", "int", "enum", "bool", "color"]}, "minimum": {"type": "number"}, "maximum": {"type": "number"}, "default": {}, "values": {"type": "array"}, "dmx_slots": { "type": "array", "maxItems": 8, "items": {"type": "integer", "minimum": 1, "maximum": 8} }, "curve": {"type": "string"} } } }, "failure_mode": {"enum": ["bypass", "hold", "black"]} } }