{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Crabpot fixture manifest", "type": "object", "required": ["version", "submoduleRoot", "fixtures"], "additionalProperties": false, "properties": { "version": { "type": "integer", "minimum": 1 }, "submoduleRoot": { "type": "string", "pattern": "^[^/].*" }, "openclaw": { "type": "object", "additionalProperties": false, "properties": { "minimumNode": { "type": "string" }, "defaultCheckoutPath": { "type": "string" } } }, "fixtures": { "type": "array", "minItems": 1, "items": { "type": "object", "required": ["id", "name", "path", "priority", "seams", "why"], "additionalProperties": false, "oneOf": [{ "required": ["repo"] }, { "required": ["package"] }], "properties": { "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" }, "name": { "type": "string", "minLength": 1 }, "repo": { "type": "string", "pattern": "^https://github.com/.+\\.git$" }, "package": { "type": "object", "required": ["name"], "additionalProperties": false, "properties": { "name": { "type": "string", "minLength": 1 }, "version": { "type": "string", "minLength": 1 }, "tag": { "type": "string", "minLength": 1 }, "artifactSource": { "enum": ["npm", "source-pack"] } } }, "source": { "type": "object", "required": ["repo", "path", "ref"], "additionalProperties": false, "properties": { "repo": { "type": "string", "pattern": "^https://github.com/.+\\.git$" }, "path": { "type": "string", "pattern": "^[^/].*" }, "ref": { "type": "string", "minLength": 1 } } }, "path": { "type": "string", "pattern": "^plugins/[a-z0-9][a-z0-9-]*$" }, "subdir": { "type": "string", "minLength": 1 }, "priority": { "enum": ["high", "medium", "low"] }, "seams": { "type": "array", "minItems": 1, "items": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" }, "uniqueItems": true }, "expect": { "type": "object", "additionalProperties": false, "properties": { "hooks": { "type": "array", "items": { "type": "string", "pattern": "^[a-z0-9_:-]+$" }, "uniqueItems": true }, "registrations": { "type": "array", "items": { "type": "string", "pattern": "^[A-Za-z][A-Za-z0-9]*$" }, "uniqueItems": true }, "manifestContracts": { "type": "array", "items": { "type": "string", "pattern": "^[A-Za-z][A-Za-z0-9]*$" }, "uniqueItems": true } } }, "why": { "type": "string", "minLength": 1 } } } } } }