logicsrc/packages/schemas/schemas/logicsrc-plugin.schema.json

35 lines
1.2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.logicsrc.com/logicsrc-plugin.schema.json",
"title": "LogicSRC Plugin Manifest",
"type": "object",
"required": ["id", "name", "version", "type", "default", "capabilities", "commands", "env"],
"additionalProperties": false,
"properties": {
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
"name": { "type": "string", "minLength": 1 },
"version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?$" },
"type": {
"type": "array",
"minItems": 1,
"items": { "type": "string", "minLength": 1 },
"uniqueItems": true
},
"default": { "type": "boolean" },
"capabilities": {
"type": "array",
"items": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*(\\.[a-z][a-z0-9_-]*)+$" },
"uniqueItems": true
},
"commands": {
"type": "array",
"items": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" },
"uniqueItems": true
},
"env": {
"type": "array",
"items": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]*$" },
"uniqueItems": true
}
}
}