Thing/schemas/gamecult.eve.tui_grid.v1.schema.json

157 lines
3.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "gamecult.eve.tui_grid.v1",
"title": "Eve TUI Grid",
"type": "object",
"required": [
"schema",
"runtimeId",
"providerId",
"surfaceId",
"width",
"lines",
"lossiness"
],
"properties": {
"schema": {
"const": "gamecult.eve.tui_grid.v1"
},
"runtimeId": {
"const": "tui"
},
"providerId": {
"type": "string",
"minLength": 1
},
"surfaceId": {
"type": "string",
"minLength": 1
},
"projectionKind": {
"type": "string"
},
"commandBoundary": {
"type": "string"
},
"receiptSchema": {
"type": "string"
},
"ownership": {
"type": "string"
},
"width": {
"type": "number"
},
"lines": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"embeddedDocumentSlots": {
"type": "array",
"items": {
"type": "object",
"required": [
"ownerId",
"slotId",
"documentId"
],
"properties": {
"ownerId": {
"type": "string",
"minLength": 1
},
"slotId": {
"type": "string",
"minLength": 1
},
"documentId": {
"type": "string",
"minLength": 1
},
"schemaId": {
"type": "string"
},
"presentationKind": {
"type": "string"
}
},
"additionalProperties": true
}
},
"pluginProjections": {
"type": "array",
"items": {
"$ref": "#/$defs/pluginProjection"
}
},
"lossiness": {
"type": "string",
"minLength": 1
}
},
"$defs": {
"pluginProjection": {
"type": "object",
"required": [
"ownerId",
"pluginId",
"projectionKind",
"abiSchema",
"commandBoundary",
"capabilities",
"semanticOwner",
"availability",
"fallbackKind"
],
"properties": {
"ownerId": {
"type": "string",
"minLength": 1
},
"pluginId": {
"type": "string",
"minLength": 1
},
"projectionKind": {
"type": "string",
"minLength": 1
},
"abiSchema": {
"type": "string",
"minLength": 1
},
"commandBoundary": {
"type": "string",
"minLength": 1
},
"capabilities": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"documentId": {
"type": "string"
},
"semanticOwner": {
"type": "string",
"minLength": 1
},
"availability": {
"type": "string",
"enum": ["required", "optional", "optional-nested"]
},
"fallbackKind": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}