{ "$id": "https://schema.cute.engineering/osdk.manifest.component.v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "A representation of a component manifest for OSDK", "type": "object", "required": [ "id", "type" ], "properties": { "id": { "description": "The unique identifier for this manifest", "type": "string" }, "type": { "description": "The type of this manifest", "type": "string" }, "description": { "description": "A description of this manifest", "type": "string" }, "props": { "type": "object", "description": "A list of properties that this component provides", "patternProperties": { ".*": {} } }, "tools": { "type": "object", "description": "A list of tools that this component provides", "patternProperties": { ".*": { "type": "object", "properties": { "cmd": { "description": "Command to run the tool", "type": "string" }, "args": { "description": "Arguments to pass to the tool", "type": "array", "items": { "type": "string" } }, "files": { "description": "Files used by the tool", "type": "array", "items": { "type": "string" } } } } } }, "enableIf": { "type": "object", "description": "A list of conditions that must be met for this component to be enabled", "patternProperties": { ".*": { "type": "list", "items": {} } } }, "requires": { "type": "array", "description": "A list of features that this component requires", "items": { "type": "string" } }, "provides": { "type": "array", "description": "A list of features that this component provides (note: by default all components provides they own id as a feature)", "items": { "type": "string" } } } }