Thing/schemas/gamecult.eve.provider_scenario.v1.schema.json
2026-07-09 02:27:35 +01:00

168 lines
3.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "gamecult.eve.provider_scenario.v1",
"title": "Eve Provider Scenario",
"type": "object",
"required": [
"schema",
"scenarioId",
"providerId",
"ownerRepo",
"advertisementPath",
"requires",
"commandIntents",
"expectedReceipts"
],
"properties": {
"schema": {
"const": "gamecult.eve.provider_scenario.v1"
},
"scenarioId": {
"type": "string",
"minLength": 1
},
"providerId": {
"type": "string",
"minLength": 1
},
"ownerRepo": {
"type": "string",
"minLength": 1
},
"advertisementPath": {
"type": "string",
"minLength": 1
},
"requires": {
"type": "object",
"required": ["fixtures", "surfaces", "commands"],
"properties": {
"fixtures": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"surfaces": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"worldSurfaces": {
"type": "array",
"items": {
"type": "object",
"required": [
"surfaceId",
"surfaceKind",
"projectionKind",
"commandBoundary",
"receiptSchema"
],
"properties": {
"surfaceId": {
"type": "string",
"minLength": 1
},
"surfaceKind": {
"type": "string",
"minLength": 1
},
"projectionKind": {
"type": "string",
"minLength": 1
},
"commandBoundary": {
"type": "string",
"minLength": 1
},
"receiptSchema": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
}
},
"commands": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"schemas": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"additionalProperties": true
},
"commandIntents": {
"type": "array",
"items": {
"type": "object",
"required": ["command", "commandId", "operation"],
"properties": {
"command": {
"type": "string",
"minLength": 1
},
"commandId": {
"type": "string",
"minLength": 1
},
"operation": {
"type": "string",
"minLength": 1
},
"payload": {
"type": "object"
}
},
"additionalProperties": true
}
},
"expectedReceipts": {
"type": "array",
"items": {
"type": "object",
"required": ["receiptId", "command", "commandId", "state", "authority", "ownerRepo"],
"properties": {
"receiptId": {
"type": "string",
"minLength": 1
},
"command": {
"type": "string",
"minLength": 1
},
"commandId": {
"type": "string",
"minLength": 1
},
"state": {
"type": "string",
"minLength": 1
},
"authority": {
"type": "string",
"minLength": 1
},
"ownerRepo": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}