| 1 | { |
| 2 | "$schema" "https://json-schema.org/draft/2020-12/schema", |
| 3 | "$id" "https://cascade-ide.local/schemas/intent-catalog.schema.json", |
| 4 | "title" "CIDE intent-catalog.toml", |
| 5 | "description" "Root-level structural checks for IntentMelody/intent-catalog.toml. TOML array-of-tables layout and CIDE semantics (command_id registry, wire_class, arg_tail) — IntentCatalogProfileSemanticsTests.", |
| 6 | "type" "object", |
| 7 | "required" ["intent_catalog_schema_version", "command"], |
| 8 | "properties" { |
| 9 | "intent_catalog_schema_version" { "type": "integer", "const": 2 }, |
| 10 | "melody_catalog_schema_version" { "type": "integer" }, |
| 11 | "slash_catalog_schema_version" { "type": "integer" }, |
| 12 | "aliases" { |
| 13 | "type" "object", |
| 14 | "additionalProperties" { "type": "string" } |
| 15 | }, |
| 16 | "command" { |
| 17 | "type" "array", |
| 18 | "minItems" 1 |
| 19 | }, |
| 20 | "tail_wire_class" { |
| 21 | "type" "array", |
| 22 | "items" { "$ref": "#/$defs/tail_wire_class" } |
| 23 | } |
| 24 | }, |
| 25 | "additionalProperties" true, |
| 26 | "$defs" { |
| 27 | "tail_wire_class" { |
| 28 | "type" "object", |
| 29 | "required" ["id", "kind"], |
| 30 | "properties" { |
| 31 | "id" { "type": "string", "minLength": 1 }, |
| 32 | "kind" { "enum": ["single_remainder", "delimited_slots"] }, |
| 33 | "between_slots_any_of" { |
| 34 | "type" "array", |
| 35 | "items" { "type": "string" } |
| 36 | } |
| 37 | }, |
| 38 | "additionalProperties" true |
| 39 | } |
| 40 | } |
| 41 | } |
| 42 | |