{
  "$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
    }
  }
}
