Thing/schemas/gamecult.eve.plugin.v1.schema.json
2026-07-09 02:24:29 +01:00

271 lines
5.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "gamecult.eve.plugin.v1",
"title": "Eve Plugin Manifest",
"type": "object",
"required": [
"schema",
"pluginId",
"title",
"owner",
"incubation",
"componentKinds",
"commands",
"runtime",
"stateSchemas",
"fixtures",
"capabilities"
],
"properties": {
"schema": {
"const": "gamecult.eve.plugin.v1"
},
"pluginId": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"owner": {
"type": "string",
"minLength": 1
},
"incubation": {
"type": "object",
"required": [
"ownerRepo",
"currentHostRepo",
"splitTarget",
"graduationTrigger"
],
"properties": {
"ownerRepo": {
"type": "string",
"minLength": 1
},
"currentHostRepo": {
"type": "string",
"minLength": 1
},
"splitTarget": {
"type": "string",
"minLength": 1
},
"graduationTrigger": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
},
"componentKinds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"commands": {
"type": "array",
"items": {
"type": "object",
"required": [
"command",
"schema",
"effect"
],
"properties": {
"command": {
"type": "string",
"minLength": 1
},
"schema": {
"type": "string",
"minLength": 1
},
"effect": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
}
},
"runtime": {
"type": "object",
"required": [
"invocationModel",
"contract",
"transports",
"authority",
"sidecar"
],
"properties": {
"invocationModel": {
"type": "string",
"minLength": 1
},
"contract": {
"type": "string",
"minLength": 1
},
"transports": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"authority": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"sidecar": {
"type": "object",
"required": [
"processKind",
"protocol",
"requestSchema",
"responseSchema",
"operations",
"commandEnvelope",
"receiptSchema",
"stateAuthority"
],
"properties": {
"processKind": {
"type": "string",
"minLength": 1
},
"protocol": {
"type": "string",
"minLength": 1
},
"requestSchema": {
"type": "string",
"minLength": 1
},
"responseSchema": {
"type": "string",
"minLength": 1
},
"operations": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"commandEnvelope": {
"type": "string",
"minLength": 1
},
"receiptSchema": {
"type": "string",
"minLength": 1
},
"stateAuthority": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"stateSchemas": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"fixtures": {
"type": "array",
"items": {
"type": "object",
"required": [
"fixtureId",
"schema",
"path"
],
"properties": {
"fixtureId": {
"type": "string",
"minLength": 1
},
"schema": {
"type": "string",
"minLength": 1
},
"path": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
}
},
"abiFixtures": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"capabilities": {
"type": "object",
"required": [
"requires"
],
"properties": {
"requires": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"optionalCapabilities": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"optionalPlugins": {
"type": "array",
"items": {
"type": "object",
"required": [
"pluginId",
"capabilities"
],
"properties": {
"pluginId": {
"type": "string",
"minLength": 1
},
"capabilities": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}