271 lines
5.8 KiB
JSON
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
|
|
}
|