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

183 lines
3.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "gamecult.eve.electron_shell_projection.v1",
"title": "Eve Electron Shell Projection",
"type": "object",
"required": [
"type",
"schema",
"providerId",
"surfaceId",
"projectionKind",
"commandBoundary",
"receiptSchema",
"ownership",
"root"
],
"properties": {
"type": {
"const": "electron-shell-projection"
},
"schema": {
"const": "gamecult.eve.electron_shell_projection.v1"
},
"providerId": {
"type": "string",
"minLength": 1
},
"surfaceId": {
"type": "string",
"minLength": 1
},
"projectionKind": {
"type": "string",
"minLength": 1
},
"commandBoundary": {
"type": "string",
"minLength": 1
},
"receiptSchema": {
"type": "string",
"minLength": 1
},
"ownership": {
"type": "string",
"minLength": 1
},
"root": {
"$ref": "#/$defs/shellNode"
}
},
"$defs": {
"embeddedDocument": {
"type": "object",
"required": [
"slotId",
"documentId"
],
"properties": {
"slotId": {
"type": "string",
"minLength": 1
},
"documentId": {
"type": "string",
"minLength": 1
},
"schemaId": {
"type": "string"
},
"presentationKind": {
"type": "string"
}
},
"additionalProperties": true
},
"pluginProjection": {
"type": "object",
"required": [
"pluginId",
"projectionKind",
"abiSchema",
"commandBoundary",
"capabilities",
"semanticOwner",
"availability"
],
"properties": {
"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"]
}
},
"additionalProperties": true
},
"shellNode": {
"type": "object",
"required": [
"id",
"componentKind",
"shellElementKind",
"stateBindingCount",
"embeddedDocumentCount",
"children"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"componentKind": {
"type": "string"
},
"shellElementKind": {
"type": "string",
"minLength": 1
},
"props": {
"type": "object"
},
"layout": {
"type": "object"
},
"style": {
"type": "object"
},
"stateBindingCount": {
"type": "number"
},
"embeddedDocumentCount": {
"type": "number"
},
"embeddedDocuments": {
"type": "array",
"items": {
"$ref": "#/$defs/embeddedDocument"
}
},
"pluginProjection": {
"$ref": "#/$defs/pluginProjection"
},
"children": {
"type": "array",
"items": {
"$ref": "#/$defs/shellNode"
}
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}