87 lines
3.8 KiB
JSON
87 lines
3.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "gamecult.eve.entity_soa_view.v1",
|
|
"title": "Eve Entity SoA View",
|
|
"type": "object",
|
|
"required": ["schema", "providerId", "viewId", "frameId", "generation", "backend", "synchronizationMode", "buffers", "columns", "dirtyRanges", "renderGroups"],
|
|
"properties": {
|
|
"schema": { "const": "gamecult.eve.entity_soa_view.v1" },
|
|
"providerId": { "type": "string", "minLength": 1 },
|
|
"viewId": { "type": "string", "minLength": 1 },
|
|
"frameId": { "type": "integer", "minimum": 0 },
|
|
"generation": { "type": "integer", "minimum": 0 },
|
|
"publishedAtUtc": { "type": "string" },
|
|
"backend": { "type": "string", "minLength": 1 },
|
|
"synchronizationMode": { "type": "string", "minLength": 1 },
|
|
"buffers": { "type": "array", "items": { "$ref": "#/$defs/buffer" } },
|
|
"columns": { "type": "array", "items": { "$ref": "#/$defs/column" } },
|
|
"dirtyRanges": { "type": "array", "items": { "$ref": "#/$defs/dirtyRange" } },
|
|
"renderGroups": { "type": "array", "items": { "$ref": "#/$defs/renderGroup" } }
|
|
},
|
|
"$defs": {
|
|
"buffer": {
|
|
"type": "object",
|
|
"required": ["bufferId", "backend", "location", "byteOffset", "byteLength", "generation"],
|
|
"properties": {
|
|
"bufferId": { "type": "string", "minLength": 1 },
|
|
"backend": { "type": "string", "minLength": 1 },
|
|
"location": { "type": "string", "minLength": 1 },
|
|
"byteOffset": { "type": "integer", "minimum": 0 },
|
|
"byteLength": { "type": "integer", "minimum": 0 },
|
|
"generation": { "type": "integer", "minimum": 0 }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"column": {
|
|
"type": "object",
|
|
"required": ["columnId", "semantic", "bufferId", "scalarType", "byteOffset", "elementStride", "elementCount"],
|
|
"properties": {
|
|
"columnId": { "type": "string", "minLength": 1 },
|
|
"semantic": { "type": "string", "minLength": 1 },
|
|
"bufferId": { "type": "string", "minLength": 1 },
|
|
"scalarType": { "type": "string", "minLength": 1 },
|
|
"byteOffset": { "type": "integer", "minimum": 0 },
|
|
"elementStride": { "type": "integer", "minimum": 1 },
|
|
"elementCount": { "type": "integer", "minimum": 0 },
|
|
"unit": { "type": "string" },
|
|
"coordinateSpace": { "type": "string" }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"dirtyRange": {
|
|
"type": "object",
|
|
"required": ["columnId", "startIndex", "count", "generation"],
|
|
"properties": {
|
|
"columnId": { "type": "string", "minLength": 1 },
|
|
"startIndex": { "type": "integer", "minimum": 0 },
|
|
"count": { "type": "integer", "minimum": 0 },
|
|
"generation": { "type": "integer", "minimum": 0 }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"renderGroup": {
|
|
"type": "object",
|
|
"required": ["groupId", "meshAssetRef", "materialAssetRef", "instanceCount", "defaultScale"],
|
|
"properties": {
|
|
"groupId": { "type": "integer", "minimum": 0 },
|
|
"meshAssetRef": { "type": "string" },
|
|
"materialAssetRef": { "type": "string" },
|
|
"subMeshIndex": { "type": "integer", "minimum": 0 },
|
|
"layer": { "type": "integer" },
|
|
"instanceCount": { "type": "integer", "minimum": 0 },
|
|
"defaultScale": { "type": "number" },
|
|
"boundsCenterX": { "type": "number" },
|
|
"boundsCenterY": { "type": "number" },
|
|
"boundsCenterZ": { "type": "number" },
|
|
"boundsSizeX": { "type": "number", "minimum": 0 },
|
|
"boundsSizeY": { "type": "number", "minimum": 0 },
|
|
"boundsSizeZ": { "type": "number", "minimum": 0 },
|
|
"shadowMode": { "type": "string" },
|
|
"receiveShadows": { "type": "boolean" },
|
|
"lod": { "type": "integer" }
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|