Thing/schemas/gamecult.eve.unity_scene_projection.v1.schema.json
2026-07-15 05:13:39 +01:00

391 lines
8.2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "gamecult.eve.unity_scene_projection.v1",
"title": "Eve Unity Scene Projection",
"type": "object",
"required": [
"type",
"schema",
"runtimeId",
"providerId",
"surfaceId",
"projectionKind",
"commandBoundary",
"receiptSchema",
"ownership",
"root"
],
"properties": {
"type": {
"const": "unity-scene-projection"
},
"schema": {
"const": "gamecult.eve.unity_scene_projection.v1"
},
"runtimeId": {
"const": "unity-scene"
},
"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
},
"playableWorld": {
"$ref": "#/$defs/playableWorld"
},
"root": {
"$ref": "#/$defs/sceneNode"
}
},
"$defs": {
"vector3": {
"type": "object",
"required": ["x", "y", "z"],
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
}
},
"additionalProperties": true
},
"playableEntity": {
"type": "object",
"required": [
"nodeId",
"entityId",
"entityKind",
"assetRef",
"position",
"selectable",
"controllable"
],
"properties": {
"nodeId": {
"type": "string",
"minLength": 1
},
"entityId": {
"type": "string",
"minLength": 1
},
"entityKind": {
"type": "string"
},
"label": {
"type": "string"
},
"faction": {
"type": "string"
},
"assetRef": {
"type": "string"
},
"position": {
"$ref": "#/$defs/vector3"
},
"rotationY": {
"type": "number"
},
"radius": {
"type": "number"
},
"selectable": {
"type": "boolean"
},
"controllable": {
"type": "boolean"
},
"focusCommand": {
"type": "string"
},
"moveCommand": {
"type": "string"
},
"targetCommand": {
"type": "string"
},
"actionCommand": {
"type": "string"
}
},
"additionalProperties": true
},
"playableWorld": {
"type": "object",
"required": [
"worldRootId",
"statePointerId",
"assetManifest",
"inputProfile",
"cameraRig",
"playerEntityId",
"movementCommand",
"entityCount",
"entities"
],
"properties": {
"worldRootId": {
"type": "string",
"minLength": 1
},
"statePointerId": {
"type": "string",
"minLength": 1
},
"assetManifest": {
"type": "string",
"minLength": 1
},
"inputProfile": {
"type": "string",
"minLength": 1
},
"cameraRig": {
"type": "string",
"minLength": 1
},
"cameraTargetEntityId": {
"type": "string"
},
"cameraDistance": {
"type": "number",
"exclusiveMinimum": 0
},
"cameraVerticalFieldOfViewDegrees": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 180
},
"cameraTargetScreenX": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"cameraTargetScreenY": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"cameraPositionDamping": {
"type": "number",
"minimum": 0
},
"cameraNearClipPlane": {
"type": "number",
"exclusiveMinimum": 0
},
"cameraFarClipPlane": {
"type": "number",
"exclusiveMinimum": 0
},
"ambientLightColor": {
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "number",
"minimum": 0
}
},
"ambientLightIntensity": {
"type": "number",
"minimum": 0
},
"subjectVisible": {
"type": "boolean"
},
"movementEnabled": {
"type": "boolean"
},
"presentationMode": {
"type": "string"
},
"playerEntityId": {
"type": "string",
"minLength": 1
},
"movementCommand": {
"type": "string",
"minLength": 1
},
"focusCommand": {
"type": "string"
},
"targetCommand": {
"type": "string"
},
"actionCommand": {
"type": "string"
},
"entityCount": {
"type": "number"
},
"entities": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/playableEntity"
}
}
},
"additionalProperties": true
},
"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"
}
},
"command": {
"type": "string"
},
"documentId": {
"type": "string"
},
"semanticOwner": {
"type": "string",
"minLength": 1
},
"availability": {
"type": "string",
"enum": ["required", "optional", "optional-nested"]
}
},
"additionalProperties": true
},
"sceneNode": {
"type": "object",
"required": [
"id",
"componentKind",
"sceneObjectKind",
"stateBindingCount",
"embeddedDocumentCount",
"children"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"componentKind": {
"type": "string"
},
"sceneObjectKind": {
"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/sceneNode"
}
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}