@ue-shed/protocol 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/contracts/cameras/authoring/v1/README.md +63 -0
  2. package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
  3. package/contracts/cameras/authoring/v1/arrangement.schema.json +1807 -0
  4. package/contracts/cameras/authoring/v1/bridge-request.schema.json +11077 -0
  5. package/contracts/cameras/authoring/v1/bridge-response.schema.json +10523 -0
  6. package/contracts/cameras/authoring/v1/command.schema.json +4115 -0
  7. package/contracts/cameras/authoring/v1/document.schema.json +4421 -0
  8. package/contracts/cameras/authoring/v1/panel-event.schema.json +4891 -0
  9. package/contracts/cameras/authoring/v1/panel-state.schema.json +3560 -0
  10. package/contracts/cameras/authoring/v1/recipe.schema.json +340 -0
  11. package/contracts/cameras/authoring/v1/visibility-preset.schema.json +205 -0
  12. package/contracts/cameras/map-tile/v1/README.md +4 -1
  13. package/contracts/cameras/map-tile/v1/capture-operation.schema.json +1643 -30
  14. package/contracts/cameras/map-tile/v1/capture-request.schema.json +497 -48
  15. package/contracts/cameras/map-tile/v1/capture-response.schema.json +1405 -96
  16. package/contracts/cameras/map-tile/v1/manifest.schema.json +1782 -110
  17. package/contracts/cameras/map-tile/v1/plan.schema.json +394 -200
  18. package/contracts/cameras/map-tile/v1/release-result.schema.json +7 -2
  19. package/contracts/cameras/provisioning/v1/provision-request.schema.json +663 -141
  20. package/contracts/cameras/render/v1/README.md +6 -0
  21. package/contracts/cameras/render/v1/begin-result.schema.json +173 -0
  22. package/contracts/cameras/render/v1/capabilities.schema.json +46 -0
  23. package/contracts/cameras/render/v1/fixtures/invalid-session-editor-previews-type.json +41 -0
  24. package/contracts/cameras/render/v1/fixtures/session-editor-previews.json +41 -0
  25. package/contracts/cameras/render/v1/fixtures/session-scene-capture-editor-previews.json +40 -0
  26. package/contracts/cameras/render/v1/frame-evidence.schema.json +262 -0
  27. package/contracts/cameras/render/v1/frame-status.schema.json +271 -0
  28. package/contracts/cameras/render/v1/policy.schema.json +165 -0
  29. package/contracts/cameras/render/v1/review-inspection-result.schema.json +285 -0
  30. package/contracts/cameras/render/v1/session-request.schema.json +173 -0
  31. package/contracts/cameras/review/v1/README.md +6 -0
  32. package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
  33. package/contracts/cameras/review/v1/capture-response.schema.json +3692 -0
  34. package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
  35. package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
  36. package/contracts/core/v1/window-activation-request.schema.json +20 -0
  37. package/contracts/core/v1/window-activation-result.schema.json +49 -0
  38. package/contracts/editor-world/v1/README.md +27 -0
  39. package/contracts/editor-world/v1/operation.schema.json +761 -0
  40. package/contracts/editor-world/v1/state.schema.json +92 -0
  41. package/contracts/uasset-io/v1/README.md +24 -0
  42. package/contracts/uasset-io/v1/event.schema.json +2642 -290
  43. package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
  44. package/contracts/uasset-io/v1/fixtures/invalid/level-sequence-version.json +43 -0
  45. package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
  46. package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
  47. package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
  48. package/contracts/uasset-io/v1/fixtures/valid/blueprint-request.json +15 -3
  49. package/contracts/uasset-io/v1/fixtures/valid/blueprint-result-event.json +22 -5
  50. package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
  51. package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
  52. package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
  53. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-request.json +18 -0
  54. package/contracts/uasset-io/v1/fixtures/valid/level-sequence-result-event.json +43 -0
  55. package/contracts/uasset-io/v1/request.schema.json +14 -0
  56. package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
  57. package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
  58. package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
  59. package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
  60. package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
  61. package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
  62. package/contracts/world/preparation/v1/request.schema.json +897 -0
  63. package/contracts/world/preparation/v1/response.schema.json +449 -0
  64. package/dist/blueprint-graph.d.ts +332 -8
  65. package/dist/blueprint-graph.d.ts.map +1 -1
  66. package/dist/blueprint-graph.js +42 -3
  67. package/dist/blueprint-graph.js.map +1 -1
  68. package/dist/cameras.d.ts +16 -12
  69. package/dist/cameras.d.ts.map +1 -1
  70. package/dist/cameras.js +1 -0
  71. package/dist/cameras.js.map +1 -1
  72. package/dist/companion.d.ts +6 -0
  73. package/dist/companion.d.ts.map +1 -1
  74. package/dist/companion.js +3 -0
  75. package/dist/companion.js.map +1 -1
  76. package/dist/editor-window-activation.d.ts +16 -0
  77. package/dist/editor-window-activation.d.ts.map +1 -0
  78. package/dist/editor-window-activation.js +19 -0
  79. package/dist/editor-window-activation.js.map +1 -0
  80. package/dist/editor-world-control.d.ts +125 -0
  81. package/dist/editor-world-control.d.ts.map +1 -1
  82. package/dist/editor-world-control.js +25 -0
  83. package/dist/editor-world-control.js.map +1 -1
  84. package/dist/index.d.ts +2 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +2 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/level-sequence.d.ts +1315 -0
  89. package/dist/level-sequence.d.ts.map +1 -0
  90. package/dist/level-sequence.js +204 -0
  91. package/dist/level-sequence.js.map +1 -0
  92. package/dist/uasset-inspection.d.ts +128 -55
  93. package/dist/uasset-inspection.d.ts.map +1 -1
  94. package/dist/uasset-inspection.js +39 -2
  95. package/dist/uasset-inspection.js.map +1 -1
  96. package/dist/uasset-io.d.ts +1302 -9
  97. package/dist/uasset-io.d.ts.map +1 -1
  98. package/dist/uasset-io.js +4 -0
  99. package/dist/uasset-io.js.map +1 -1
  100. package/package.json +1 -1
@@ -1,44 +1,52 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://ue-shed.dev/contracts/cameras/map-tile/v1/capture-response.schema.json",
4
- "title": "UE Shed bounded map tile capture response v1.0",
5
4
  "type": "object",
6
- "additionalProperties": false,
7
- "required": [
8
- "contract",
9
- "correlationId",
10
- "dirtyState",
11
- "durationMs",
12
- "operationId",
13
- "results",
14
- "status",
15
- "tileCounts"
16
- ],
17
5
  "properties": {
18
6
  "actualMapPath": {
19
7
  "type": "string",
20
- "pattern": "^/[A-Za-z0-9_./-]+$"
8
+ "allOf": [
9
+ {
10
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
11
+ }
12
+ ]
21
13
  },
22
14
  "contract": {
23
15
  "type": "object",
24
- "additionalProperties": false,
25
- "required": ["name", "version"],
26
16
  "properties": {
27
17
  "name": {
28
- "const": "ue-shed-map-tile-capture"
18
+ "type": "string",
19
+ "enum": ["ue-shed-map-tile-capture"]
29
20
  },
30
21
  "version": {
31
- "$ref": "plan.schema.json#/$defs/version"
22
+ "type": "object",
23
+ "properties": {
24
+ "major": {
25
+ "type": "number",
26
+ "enum": [1]
27
+ },
28
+ "minor": {
29
+ "type": "number",
30
+ "enum": [0, 1, 2]
31
+ }
32
+ },
33
+ "required": ["major", "minor"],
34
+ "additionalProperties": false
32
35
  }
33
- }
36
+ },
37
+ "required": ["name", "version"],
38
+ "additionalProperties": false
34
39
  },
35
40
  "correlationId": {
36
- "$ref": "plan.schema.json#/$defs/id"
41
+ "type": "string",
42
+ "allOf": [
43
+ {
44
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
45
+ }
46
+ ]
37
47
  },
38
48
  "dirtyState": {
39
49
  "type": "object",
40
- "additionalProperties": false,
41
- "required": ["before", "after"],
42
50
  "properties": {
43
51
  "before": {
44
52
  "type": "boolean"
@@ -46,142 +54,1443 @@
46
54
  "after": {
47
55
  "type": "boolean"
48
56
  }
49
- }
57
+ },
58
+ "required": ["before", "after"],
59
+ "additionalProperties": false
50
60
  },
51
61
  "durationMs": {
52
62
  "type": "number",
53
- "minimum": 0
63
+ "allOf": [
64
+ {
65
+ "minimum": 0
66
+ }
67
+ ]
54
68
  },
55
69
  "failure": {
56
- "$ref": "#/$defs/failure"
70
+ "type": "object",
71
+ "properties": {
72
+ "code": {
73
+ "type": "string",
74
+ "enum": [
75
+ "cancelled",
76
+ "capture_failed",
77
+ "data_layer_policy_unsupported",
78
+ "dirty_state_changed",
79
+ "encoding_failed",
80
+ "invalid_request",
81
+ "map_mismatch",
82
+ "streaming_not_ready",
83
+ "write_failed"
84
+ ]
85
+ },
86
+ "message": {
87
+ "type": "string",
88
+ "allOf": [
89
+ {
90
+ "minLength": 1
91
+ },
92
+ {
93
+ "maxLength": 1024
94
+ }
95
+ ]
96
+ },
97
+ "recovery": {
98
+ "type": "string",
99
+ "allOf": [
100
+ {
101
+ "minLength": 1
102
+ },
103
+ {
104
+ "maxLength": 1024
105
+ }
106
+ ]
107
+ },
108
+ "retrySafe": {
109
+ "type": "boolean"
110
+ }
111
+ },
112
+ "required": ["code", "message", "recovery", "retrySafe"],
113
+ "additionalProperties": false
57
114
  },
58
115
  "operationId": {
59
- "$ref": "plan.schema.json#/$defs/id"
116
+ "type": "string",
117
+ "allOf": [
118
+ {
119
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
120
+ }
121
+ ]
60
122
  },
61
123
  "results": {
62
124
  "type": "array",
63
- "maxItems": 64,
64
125
  "items": {
65
- "oneOf": [
126
+ "anyOf": [
66
127
  {
67
128
  "type": "object",
68
- "additionalProperties": false,
69
- "required": [
70
- "bytes",
71
- "captureDurationMs",
72
- "height",
73
- "key",
74
- "stagedPath",
75
- "status",
76
- "width"
77
- ],
78
129
  "properties": {
130
+ "renderEvidence": {
131
+ "type": "object",
132
+ "properties": {
133
+ "visibilityDiagnostics": {
134
+ "type": "array",
135
+ "items": {
136
+ "type": "object",
137
+ "properties": {
138
+ "locator": {
139
+ "anyOf": [
140
+ {
141
+ "type": "object",
142
+ "properties": {
143
+ "kind": {
144
+ "type": "string",
145
+ "enum": ["actor_path"]
146
+ },
147
+ "actorPath": {
148
+ "type": "string",
149
+ "allOf": [
150
+ {
151
+ "pattern": "^\\/Game\\/"
152
+ },
153
+ {
154
+ "maxLength": 4096
155
+ }
156
+ ]
157
+ }
158
+ },
159
+ "required": ["kind", "actorPath"],
160
+ "additionalProperties": false
161
+ },
162
+ {
163
+ "type": "object",
164
+ "properties": {
165
+ "kind": {
166
+ "type": "string",
167
+ "enum": ["actor_guid"]
168
+ },
169
+ "actorGuid": {
170
+ "type": "string",
171
+ "allOf": [
172
+ {
173
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
174
+ }
175
+ ]
176
+ },
177
+ "lastKnownActorPath": {
178
+ "type": "string",
179
+ "allOf": [
180
+ {
181
+ "maxLength": 4096
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ "required": [
187
+ "kind",
188
+ "actorGuid",
189
+ "lastKnownActorPath"
190
+ ],
191
+ "additionalProperties": false
192
+ }
193
+ ]
194
+ },
195
+ "status": {
196
+ "type": "string",
197
+ "enum": [
198
+ "resolved",
199
+ "missing_or_unloaded",
200
+ "ambiguous",
201
+ "unsupported"
202
+ ]
203
+ },
204
+ "actorPath": {
205
+ "type": "string"
206
+ },
207
+ "message": {
208
+ "type": "string"
209
+ }
210
+ },
211
+ "required": [
212
+ "locator",
213
+ "status",
214
+ "actorPath",
215
+ "message"
216
+ ],
217
+ "additionalProperties": false
218
+ }
219
+ },
220
+ "editorPreviews": {
221
+ "type": "object",
222
+ "properties": {
223
+ "revealedChildActors": {
224
+ "type": "integer",
225
+ "allOf": [
226
+ {
227
+ "minimum": 0,
228
+ "maximum": 1000000
229
+ }
230
+ ]
231
+ }
232
+ },
233
+ "required": ["revealedChildActors"],
234
+ "additionalProperties": false
235
+ },
236
+ "editorState": {
237
+ "type": "object",
238
+ "properties": {
239
+ "mapPackageDirtyBefore": {
240
+ "type": "boolean"
241
+ },
242
+ "mapPackageDirtyAfter": {
243
+ "type": "boolean"
244
+ }
245
+ },
246
+ "required": [
247
+ "mapPackageDirtyBefore",
248
+ "mapPackageDirtyAfter"
249
+ ],
250
+ "additionalProperties": false
251
+ },
252
+ "camera": {
253
+ "type": "object",
254
+ "properties": {
255
+ "location": {
256
+ "type": "object",
257
+ "properties": {
258
+ "x": {
259
+ "type": "number"
260
+ },
261
+ "y": {
262
+ "type": "number"
263
+ },
264
+ "z": {
265
+ "type": "number"
266
+ }
267
+ },
268
+ "required": ["x", "y", "z"],
269
+ "additionalProperties": false
270
+ },
271
+ "rotation": {
272
+ "type": "object",
273
+ "properties": {
274
+ "pitch": {
275
+ "type": "number"
276
+ },
277
+ "roll": {
278
+ "type": "number"
279
+ },
280
+ "yaw": {
281
+ "type": "number"
282
+ }
283
+ },
284
+ "required": ["pitch", "roll", "yaw"],
285
+ "additionalProperties": false
286
+ },
287
+ "projection": {
288
+ "anyOf": [
289
+ {
290
+ "type": "object",
291
+ "properties": {
292
+ "kind": {
293
+ "type": "string",
294
+ "enum": ["perspective"]
295
+ },
296
+ "horizontalFieldOfView": {
297
+ "type": "number",
298
+ "allOf": [
299
+ {
300
+ "minimum": 5,
301
+ "maximum": 170
302
+ }
303
+ ]
304
+ }
305
+ },
306
+ "required": [
307
+ "kind",
308
+ "horizontalFieldOfView"
309
+ ],
310
+ "additionalProperties": false
311
+ },
312
+ {
313
+ "type": "object",
314
+ "properties": {
315
+ "kind": {
316
+ "type": "string",
317
+ "enum": ["orthographic"]
318
+ },
319
+ "width": {
320
+ "type": "number",
321
+ "allOf": [
322
+ {
323
+ "exclusiveMinimum": 0
324
+ },
325
+ {
326
+ "maximum": 1000000000
327
+ }
328
+ ]
329
+ }
330
+ },
331
+ "required": ["kind", "width"],
332
+ "additionalProperties": false
333
+ }
334
+ ]
335
+ }
336
+ },
337
+ "required": ["location", "rotation", "projection"],
338
+ "additionalProperties": false
339
+ },
340
+ "size": {
341
+ "type": "object",
342
+ "properties": {
343
+ "width": {
344
+ "type": "integer",
345
+ "allOf": [
346
+ {
347
+ "minimum": 16,
348
+ "maximum": 16384
349
+ }
350
+ ]
351
+ },
352
+ "height": {
353
+ "type": "integer",
354
+ "allOf": [
355
+ {
356
+ "minimum": 16,
357
+ "maximum": 16384
358
+ }
359
+ ]
360
+ }
361
+ },
362
+ "required": ["width", "height"],
363
+ "additionalProperties": false
364
+ },
365
+ "policy": {
366
+ "type": "object",
367
+ "properties": {
368
+ "visibility": {
369
+ "type": "object",
370
+ "properties": {
371
+ "hide": {
372
+ "type": "array",
373
+ "items": {
374
+ "type": "object",
375
+ "properties": {
376
+ "locator": {
377
+ "anyOf": [
378
+ {
379
+ "type": "object",
380
+ "properties": {
381
+ "kind": {
382
+ "type": "string",
383
+ "enum": [
384
+ "actor_path"
385
+ ]
386
+ },
387
+ "actorPath": {
388
+ "type": "string",
389
+ "allOf": [
390
+ {
391
+ "pattern": "^\\/Game\\/"
392
+ },
393
+ {
394
+ "maxLength": 4096
395
+ }
396
+ ]
397
+ }
398
+ },
399
+ "required": [
400
+ "kind",
401
+ "actorPath"
402
+ ],
403
+ "additionalProperties": false
404
+ },
405
+ {
406
+ "type": "object",
407
+ "properties": {
408
+ "kind": {
409
+ "type": "string",
410
+ "enum": [
411
+ "actor_guid"
412
+ ]
413
+ },
414
+ "actorGuid": {
415
+ "type": "string",
416
+ "allOf": [
417
+ {
418
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
419
+ }
420
+ ]
421
+ },
422
+ "lastKnownActorPath": {
423
+ "type": "string",
424
+ "allOf": [
425
+ {
426
+ "maxLength": 4096
427
+ }
428
+ ]
429
+ }
430
+ },
431
+ "required": [
432
+ "kind",
433
+ "actorGuid",
434
+ "lastKnownActorPath"
435
+ ],
436
+ "additionalProperties": false
437
+ }
438
+ ]
439
+ },
440
+ "label": {
441
+ "type": "string",
442
+ "allOf": [
443
+ {
444
+ "maxLength": 256
445
+ }
446
+ ]
447
+ }
448
+ },
449
+ "required": ["locator", "label"],
450
+ "additionalProperties": false
451
+ },
452
+ "allOf": [
453
+ {
454
+ "maxItems": 256
455
+ }
456
+ ]
457
+ },
458
+ "protect": {
459
+ "type": "array",
460
+ "items": {
461
+ "type": "object",
462
+ "properties": {
463
+ "locator": {
464
+ "anyOf": [
465
+ {
466
+ "type": "object",
467
+ "properties": {
468
+ "kind": {
469
+ "type": "string",
470
+ "enum": [
471
+ "actor_path"
472
+ ]
473
+ },
474
+ "actorPath": {
475
+ "type": "string",
476
+ "allOf": [
477
+ {
478
+ "pattern": "^\\/Game\\/"
479
+ },
480
+ {
481
+ "maxLength": 4096
482
+ }
483
+ ]
484
+ }
485
+ },
486
+ "required": [
487
+ "kind",
488
+ "actorPath"
489
+ ],
490
+ "additionalProperties": false
491
+ },
492
+ {
493
+ "type": "object",
494
+ "properties": {
495
+ "kind": {
496
+ "type": "string",
497
+ "enum": [
498
+ "actor_guid"
499
+ ]
500
+ },
501
+ "actorGuid": {
502
+ "type": "string",
503
+ "allOf": [
504
+ {
505
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
506
+ }
507
+ ]
508
+ },
509
+ "lastKnownActorPath": {
510
+ "type": "string",
511
+ "allOf": [
512
+ {
513
+ "maxLength": 4096
514
+ }
515
+ ]
516
+ }
517
+ },
518
+ "required": [
519
+ "kind",
520
+ "actorGuid",
521
+ "lastKnownActorPath"
522
+ ],
523
+ "additionalProperties": false
524
+ }
525
+ ]
526
+ },
527
+ "label": {
528
+ "type": "string",
529
+ "allOf": [
530
+ {
531
+ "maxLength": 256
532
+ }
533
+ ]
534
+ }
535
+ },
536
+ "required": ["locator", "label"],
537
+ "additionalProperties": false
538
+ },
539
+ "allOf": [
540
+ {
541
+ "maxItems": 256
542
+ }
543
+ ]
544
+ }
545
+ },
546
+ "required": ["hide", "protect"],
547
+ "additionalProperties": false
548
+ },
549
+ "renderer": {
550
+ "anyOf": [
551
+ {
552
+ "type": "object",
553
+ "properties": {
554
+ "kind": {
555
+ "type": "string",
556
+ "enum": ["editor_viewport"]
557
+ },
558
+ "strategy": {
559
+ "type": "string",
560
+ "enum": [
561
+ "high_resolution_screenshot"
562
+ ]
563
+ },
564
+ "profile": {
565
+ "type": "string",
566
+ "enum": ["lit", "observation"]
567
+ },
568
+ "vignette": {
569
+ "type": "string",
570
+ "enum": ["project", "disabled"]
571
+ },
572
+ "fog": {
573
+ "type": "boolean"
574
+ },
575
+ "volumetricFog": {
576
+ "type": "boolean"
577
+ },
578
+ "editorPreviews": {
579
+ "type": "boolean"
580
+ }
581
+ },
582
+ "required": [
583
+ "kind",
584
+ "strategy",
585
+ "profile",
586
+ "vignette",
587
+ "fog",
588
+ "volumetricFog"
589
+ ],
590
+ "additionalProperties": false
591
+ },
592
+ {
593
+ "type": "object",
594
+ "properties": {
595
+ "kind": {
596
+ "type": "string",
597
+ "enum": ["scene_capture"]
598
+ },
599
+ "profile": {
600
+ "type": "string",
601
+ "enum": [
602
+ "full_fidelity",
603
+ "seam_stable",
604
+ "scene_capture_defaults",
605
+ "observation"
606
+ ]
607
+ },
608
+ "lodDistanceScale": {
609
+ "type": "number",
610
+ "allOf": [
611
+ {
612
+ "minimum": 0.1,
613
+ "maximum": 100
614
+ }
615
+ ]
616
+ },
617
+ "fog": {
618
+ "type": "boolean"
619
+ },
620
+ "volumetricFog": {
621
+ "type": "boolean"
622
+ },
623
+ "editorPreviews": {
624
+ "type": "boolean"
625
+ }
626
+ },
627
+ "required": [
628
+ "kind",
629
+ "profile",
630
+ "lodDistanceScale",
631
+ "fog",
632
+ "volumetricFog"
633
+ ],
634
+ "additionalProperties": false
635
+ }
636
+ ]
637
+ },
638
+ "exposure": {
639
+ "anyOf": [
640
+ {
641
+ "type": "object",
642
+ "properties": {
643
+ "mode": {
644
+ "type": "string",
645
+ "enum": ["project_auto"]
646
+ }
647
+ },
648
+ "required": ["mode"],
649
+ "additionalProperties": false
650
+ },
651
+ {
652
+ "type": "object",
653
+ "properties": {
654
+ "mode": {
655
+ "type": "string",
656
+ "enum": ["fixed_ev100"]
657
+ },
658
+ "ev100": {
659
+ "type": "number",
660
+ "allOf": [
661
+ {
662
+ "minimum": -20,
663
+ "maximum": 30
664
+ }
665
+ ]
666
+ },
667
+ "compensation": {
668
+ "type": "string",
669
+ "enum": ["project"]
670
+ }
671
+ },
672
+ "required": [
673
+ "mode",
674
+ "ev100",
675
+ "compensation"
676
+ ],
677
+ "additionalProperties": false
678
+ },
679
+ {
680
+ "type": "object",
681
+ "properties": {
682
+ "mode": {
683
+ "type": "string",
684
+ "enum": ["meter_once"]
685
+ },
686
+ "referenceCamera": {
687
+ "type": "object",
688
+ "properties": {
689
+ "location": {
690
+ "type": "object",
691
+ "properties": {
692
+ "x": {
693
+ "type": "number"
694
+ },
695
+ "y": {
696
+ "type": "number"
697
+ },
698
+ "z": {
699
+ "type": "number"
700
+ }
701
+ },
702
+ "required": ["x", "y", "z"],
703
+ "additionalProperties": false
704
+ },
705
+ "rotation": {
706
+ "type": "object",
707
+ "properties": {
708
+ "pitch": {
709
+ "type": "number"
710
+ },
711
+ "roll": {
712
+ "type": "number"
713
+ },
714
+ "yaw": {
715
+ "type": "number"
716
+ }
717
+ },
718
+ "required": [
719
+ "pitch",
720
+ "roll",
721
+ "yaw"
722
+ ],
723
+ "additionalProperties": false
724
+ },
725
+ "projection": {
726
+ "anyOf": [
727
+ {
728
+ "type": "object",
729
+ "properties": {
730
+ "kind": {
731
+ "type": "string",
732
+ "enum": [
733
+ "perspective"
734
+ ]
735
+ },
736
+ "horizontalFieldOfView": {
737
+ "type": "number",
738
+ "allOf": [
739
+ {
740
+ "minimum": 5,
741
+ "maximum": 170
742
+ }
743
+ ]
744
+ }
745
+ },
746
+ "required": [
747
+ "kind",
748
+ "horizontalFieldOfView"
749
+ ],
750
+ "additionalProperties": false
751
+ },
752
+ {
753
+ "type": "object",
754
+ "properties": {
755
+ "kind": {
756
+ "type": "string",
757
+ "enum": [
758
+ "orthographic"
759
+ ]
760
+ },
761
+ "width": {
762
+ "type": "number",
763
+ "allOf": [
764
+ {
765
+ "exclusiveMinimum": 0
766
+ },
767
+ {
768
+ "maximum": 1000000000
769
+ }
770
+ ]
771
+ }
772
+ },
773
+ "required": [
774
+ "kind",
775
+ "width"
776
+ ],
777
+ "additionalProperties": false
778
+ }
779
+ ]
780
+ }
781
+ },
782
+ "required": [
783
+ "location",
784
+ "rotation",
785
+ "projection"
786
+ ],
787
+ "additionalProperties": false
788
+ },
789
+ "referenceSize": {
790
+ "type": "object",
791
+ "properties": {
792
+ "width": {
793
+ "type": "integer",
794
+ "allOf": [
795
+ {
796
+ "minimum": 16,
797
+ "maximum": 16384
798
+ }
799
+ ]
800
+ },
801
+ "height": {
802
+ "type": "integer",
803
+ "allOf": [
804
+ {
805
+ "minimum": 16,
806
+ "maximum": 16384
807
+ }
808
+ ]
809
+ }
810
+ },
811
+ "required": ["width", "height"],
812
+ "additionalProperties": false
813
+ },
814
+ "minimumFrames": {
815
+ "type": "integer",
816
+ "allOf": [
817
+ {
818
+ "minimum": 1,
819
+ "maximum": 4096
820
+ }
821
+ ]
822
+ }
823
+ },
824
+ "required": [
825
+ "mode",
826
+ "referenceCamera",
827
+ "referenceSize",
828
+ "minimumFrames"
829
+ ],
830
+ "additionalProperties": false
831
+ }
832
+ ]
833
+ },
834
+ "settling": {
835
+ "type": "object",
836
+ "properties": {
837
+ "minimumFrames": {
838
+ "type": "integer",
839
+ "allOf": [
840
+ {
841
+ "minimum": 1,
842
+ "maximum": 4096
843
+ }
844
+ ]
845
+ },
846
+ "timeoutMs": {
847
+ "type": "integer",
848
+ "allOf": [
849
+ {
850
+ "minimum": 1000,
851
+ "maximum": 900000
852
+ }
853
+ ]
854
+ },
855
+ "initialView": {
856
+ "type": "object",
857
+ "properties": {
858
+ "camera": {
859
+ "type": "object",
860
+ "properties": {
861
+ "location": {
862
+ "type": "object",
863
+ "properties": {
864
+ "x": {
865
+ "type": "number"
866
+ },
867
+ "y": {
868
+ "type": "number"
869
+ },
870
+ "z": {
871
+ "type": "number"
872
+ }
873
+ },
874
+ "required": ["x", "y", "z"],
875
+ "additionalProperties": false
876
+ },
877
+ "rotation": {
878
+ "type": "object",
879
+ "properties": {
880
+ "pitch": {
881
+ "type": "number"
882
+ },
883
+ "roll": {
884
+ "type": "number"
885
+ },
886
+ "yaw": {
887
+ "type": "number"
888
+ }
889
+ },
890
+ "required": [
891
+ "pitch",
892
+ "roll",
893
+ "yaw"
894
+ ],
895
+ "additionalProperties": false
896
+ },
897
+ "projection": {
898
+ "anyOf": [
899
+ {
900
+ "type": "object",
901
+ "properties": {
902
+ "kind": {
903
+ "type": "string",
904
+ "enum": [
905
+ "perspective"
906
+ ]
907
+ },
908
+ "horizontalFieldOfView": {
909
+ "type": "number",
910
+ "allOf": [
911
+ {
912
+ "minimum": 5,
913
+ "maximum": 170
914
+ }
915
+ ]
916
+ }
917
+ },
918
+ "required": [
919
+ "kind",
920
+ "horizontalFieldOfView"
921
+ ],
922
+ "additionalProperties": false
923
+ },
924
+ {
925
+ "type": "object",
926
+ "properties": {
927
+ "kind": {
928
+ "type": "string",
929
+ "enum": [
930
+ "orthographic"
931
+ ]
932
+ },
933
+ "width": {
934
+ "type": "number",
935
+ "allOf": [
936
+ {
937
+ "exclusiveMinimum": 0
938
+ },
939
+ {
940
+ "maximum": 1000000000
941
+ }
942
+ ]
943
+ }
944
+ },
945
+ "required": [
946
+ "kind",
947
+ "width"
948
+ ],
949
+ "additionalProperties": false
950
+ }
951
+ ]
952
+ }
953
+ },
954
+ "required": [
955
+ "location",
956
+ "rotation",
957
+ "projection"
958
+ ],
959
+ "additionalProperties": false
960
+ },
961
+ "size": {
962
+ "type": "object",
963
+ "properties": {
964
+ "width": {
965
+ "type": "integer",
966
+ "allOf": [
967
+ {
968
+ "minimum": 16,
969
+ "maximum": 16384
970
+ }
971
+ ]
972
+ },
973
+ "height": {
974
+ "type": "integer",
975
+ "allOf": [
976
+ {
977
+ "minimum": 16,
978
+ "maximum": 16384
979
+ }
980
+ ]
981
+ }
982
+ },
983
+ "required": ["width", "height"],
984
+ "additionalProperties": false
985
+ },
986
+ "minimumFrames": {
987
+ "type": "integer",
988
+ "allOf": [
989
+ {
990
+ "minimum": 1,
991
+ "maximum": 4096
992
+ }
993
+ ]
994
+ }
995
+ },
996
+ "required": [
997
+ "camera",
998
+ "size",
999
+ "minimumFrames"
1000
+ ],
1001
+ "additionalProperties": false
1002
+ }
1003
+ },
1004
+ "required": ["minimumFrames", "timeoutMs"],
1005
+ "additionalProperties": false
1006
+ },
1007
+ "time": {
1008
+ "type": "string",
1009
+ "enum": [
1010
+ "live_editor",
1011
+ "freeze_materials_and_ticks"
1012
+ ]
1013
+ },
1014
+ "preparation": {
1015
+ "type": "object",
1016
+ "properties": {
1017
+ "geometry": {
1018
+ "anyOf": [
1019
+ {
1020
+ "type": "object",
1021
+ "properties": {
1022
+ "mode": {
1023
+ "type": "string",
1024
+ "enum": ["preserve_loading"]
1025
+ }
1026
+ },
1027
+ "required": ["mode"],
1028
+ "additionalProperties": false
1029
+ },
1030
+ {
1031
+ "type": "object",
1032
+ "properties": {
1033
+ "mode": {
1034
+ "type": "string",
1035
+ "enum": ["camera_regions"]
1036
+ },
1037
+ "maximumRegions": {
1038
+ "type": "integer",
1039
+ "allOf": [
1040
+ {
1041
+ "minimum": 1,
1042
+ "maximum": 64
1043
+ }
1044
+ ]
1045
+ },
1046
+ "extent": {
1047
+ "type": "object",
1048
+ "properties": {
1049
+ "x": {
1050
+ "type": "number",
1051
+ "allOf": [
1052
+ {
1053
+ "minimum": 0,
1054
+ "maximum": 10000000
1055
+ }
1056
+ ]
1057
+ },
1058
+ "y": {
1059
+ "type": "number",
1060
+ "allOf": [
1061
+ {
1062
+ "minimum": 0,
1063
+ "maximum": 10000000
1064
+ }
1065
+ ]
1066
+ },
1067
+ "z": {
1068
+ "type": "number",
1069
+ "allOf": [
1070
+ {
1071
+ "minimum": 0,
1072
+ "maximum": 10000000
1073
+ }
1074
+ ]
1075
+ }
1076
+ },
1077
+ "required": ["x", "y", "z"],
1078
+ "additionalProperties": false
1079
+ }
1080
+ },
1081
+ "required": [
1082
+ "mode",
1083
+ "maximumRegions",
1084
+ "extent"
1085
+ ],
1086
+ "additionalProperties": false
1087
+ }
1088
+ ]
1089
+ },
1090
+ "dataLayers": {
1091
+ "type": "array",
1092
+ "items": {
1093
+ "type": "object",
1094
+ "properties": {
1095
+ "assetPath": {
1096
+ "type": "string",
1097
+ "allOf": [
1098
+ {
1099
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
1100
+ },
1101
+ {
1102
+ "maxLength": 1024
1103
+ }
1104
+ ]
1105
+ },
1106
+ "loaded": {
1107
+ "type": "boolean"
1108
+ },
1109
+ "visible": {
1110
+ "type": "boolean"
1111
+ }
1112
+ },
1113
+ "required": [
1114
+ "assetPath",
1115
+ "loaded",
1116
+ "visible"
1117
+ ],
1118
+ "additionalProperties": false
1119
+ },
1120
+ "allOf": [
1121
+ {
1122
+ "maxItems": 64
1123
+ }
1124
+ ]
1125
+ }
1126
+ },
1127
+ "required": ["geometry", "dataLayers"],
1128
+ "additionalProperties": false
1129
+ }
1130
+ },
1131
+ "required": [
1132
+ "renderer",
1133
+ "exposure",
1134
+ "settling",
1135
+ "time",
1136
+ "preparation"
1137
+ ],
1138
+ "additionalProperties": false
1139
+ },
1140
+ "exposureEV100": {
1141
+ "anyOf": [
1142
+ {
1143
+ "type": "number"
1144
+ },
1145
+ {
1146
+ "type": "null"
1147
+ }
1148
+ ]
1149
+ },
1150
+ "preparation": {
1151
+ "type": "object",
1152
+ "properties": {
1153
+ "status": {
1154
+ "type": "string",
1155
+ "enum": ["preserved", "ready", "partial"]
1156
+ },
1157
+ "regionsHeld": {
1158
+ "type": "integer",
1159
+ "allOf": [
1160
+ {
1161
+ "minimum": 0,
1162
+ "maximum": 64
1163
+ }
1164
+ ]
1165
+ },
1166
+ "dataLayersApplied": {
1167
+ "type": "integer",
1168
+ "allOf": [
1169
+ {
1170
+ "minimum": 0,
1171
+ "maximum": 64
1172
+ }
1173
+ ]
1174
+ },
1175
+ "limitations": {
1176
+ "type": "array",
1177
+ "items": {
1178
+ "type": "string",
1179
+ "allOf": [
1180
+ {
1181
+ "minLength": 1
1182
+ },
1183
+ {
1184
+ "maxLength": 1024
1185
+ }
1186
+ ]
1187
+ }
1188
+ }
1189
+ },
1190
+ "required": [
1191
+ "status",
1192
+ "regionsHeld",
1193
+ "dataLayersApplied",
1194
+ "limitations"
1195
+ ],
1196
+ "additionalProperties": false
1197
+ },
1198
+ "settling": {
1199
+ "type": "object",
1200
+ "properties": {
1201
+ "renderedFrames": {
1202
+ "type": "integer",
1203
+ "allOf": [
1204
+ {
1205
+ "minimum": 0,
1206
+ "maximum": 1000000
1207
+ }
1208
+ ]
1209
+ },
1210
+ "elapsedMs": {
1211
+ "type": "number",
1212
+ "allOf": [
1213
+ {
1214
+ "minimum": 0
1215
+ }
1216
+ ]
1217
+ },
1218
+ "convergence": {
1219
+ "type": "string",
1220
+ "enum": ["not_assessed"]
1221
+ }
1222
+ },
1223
+ "required": ["renderedFrames", "elapsedMs", "convergence"],
1224
+ "additionalProperties": false
1225
+ },
1226
+ "engineVersion": {
1227
+ "type": "string",
1228
+ "allOf": [
1229
+ {
1230
+ "minLength": 1
1231
+ },
1232
+ {
1233
+ "maxLength": 1024
1234
+ }
1235
+ ]
1236
+ },
1237
+ "pluginVersion": {
1238
+ "type": "string",
1239
+ "allOf": [
1240
+ {
1241
+ "minLength": 1
1242
+ },
1243
+ {
1244
+ "maxLength": 1024
1245
+ }
1246
+ ]
1247
+ }
1248
+ },
1249
+ "required": [
1250
+ "editorState",
1251
+ "camera",
1252
+ "size",
1253
+ "policy",
1254
+ "exposureEV100",
1255
+ "preparation",
1256
+ "settling",
1257
+ "engineVersion",
1258
+ "pluginVersion"
1259
+ ],
1260
+ "additionalProperties": false
1261
+ },
79
1262
  "bytes": {
80
1263
  "type": "integer",
81
- "minimum": 1
1264
+ "allOf": [
1265
+ {
1266
+ "exclusiveMinimum": 0
1267
+ }
1268
+ ]
82
1269
  },
83
1270
  "captureDurationMs": {
84
1271
  "type": "number",
85
- "minimum": 0
1272
+ "allOf": [
1273
+ {
1274
+ "minimum": 0
1275
+ }
1276
+ ]
86
1277
  },
87
1278
  "height": {
88
1279
  "type": "integer",
89
- "minimum": 1
1280
+ "allOf": [
1281
+ {
1282
+ "exclusiveMinimum": 0
1283
+ }
1284
+ ]
90
1285
  },
91
1286
  "key": {
92
- "$ref": "capture-request.schema.json#/$defs/tileKey"
1287
+ "type": "object",
1288
+ "properties": {
1289
+ "zoom": {
1290
+ "type": "integer",
1291
+ "allOf": [
1292
+ {
1293
+ "minimum": 0
1294
+ }
1295
+ ]
1296
+ },
1297
+ "row": {
1298
+ "type": "integer",
1299
+ "allOf": [
1300
+ {
1301
+ "minimum": 0
1302
+ }
1303
+ ]
1304
+ },
1305
+ "column": {
1306
+ "type": "integer",
1307
+ "allOf": [
1308
+ {
1309
+ "minimum": 0
1310
+ }
1311
+ ]
1312
+ }
1313
+ },
1314
+ "required": ["zoom", "row", "column"],
1315
+ "additionalProperties": false
93
1316
  },
94
1317
  "stagedPath": {
95
1318
  "type": "string",
96
- "minLength": 1
1319
+ "allOf": [
1320
+ {
1321
+ "minLength": 1
1322
+ },
1323
+ {
1324
+ "maxLength": 1024
1325
+ }
1326
+ ]
97
1327
  },
98
1328
  "status": {
99
- "const": "captured"
1329
+ "type": "string",
1330
+ "enum": ["captured"]
100
1331
  },
101
1332
  "width": {
102
1333
  "type": "integer",
103
- "minimum": 1
104
- },
105
- "renderEvidence": {
106
- "$ref": "../../render/v1/frame-evidence.schema.json"
1334
+ "allOf": [
1335
+ {
1336
+ "exclusiveMinimum": 0
1337
+ }
1338
+ ]
107
1339
  }
108
- }
1340
+ },
1341
+ "required": [
1342
+ "bytes",
1343
+ "captureDurationMs",
1344
+ "height",
1345
+ "key",
1346
+ "stagedPath",
1347
+ "status",
1348
+ "width"
1349
+ ],
1350
+ "additionalProperties": false
109
1351
  },
110
1352
  {
111
1353
  "type": "object",
112
- "additionalProperties": false,
113
- "required": ["failure", "key", "status"],
114
1354
  "properties": {
115
1355
  "failure": {
116
- "$ref": "#/$defs/failure"
1356
+ "type": "object",
1357
+ "properties": {
1358
+ "code": {
1359
+ "type": "string",
1360
+ "enum": [
1361
+ "cancelled",
1362
+ "capture_failed",
1363
+ "data_layer_policy_unsupported",
1364
+ "dirty_state_changed",
1365
+ "encoding_failed",
1366
+ "invalid_request",
1367
+ "map_mismatch",
1368
+ "streaming_not_ready",
1369
+ "write_failed"
1370
+ ]
1371
+ },
1372
+ "message": {
1373
+ "type": "string",
1374
+ "allOf": [
1375
+ {
1376
+ "minLength": 1
1377
+ },
1378
+ {
1379
+ "maxLength": 1024
1380
+ }
1381
+ ]
1382
+ },
1383
+ "recovery": {
1384
+ "type": "string",
1385
+ "allOf": [
1386
+ {
1387
+ "minLength": 1
1388
+ },
1389
+ {
1390
+ "maxLength": 1024
1391
+ }
1392
+ ]
1393
+ },
1394
+ "retrySafe": {
1395
+ "type": "boolean"
1396
+ }
1397
+ },
1398
+ "required": ["code", "message", "recovery", "retrySafe"],
1399
+ "additionalProperties": false
117
1400
  },
118
1401
  "key": {
119
- "$ref": "capture-request.schema.json#/$defs/tileKey"
1402
+ "type": "object",
1403
+ "properties": {
1404
+ "zoom": {
1405
+ "type": "integer",
1406
+ "allOf": [
1407
+ {
1408
+ "minimum": 0
1409
+ }
1410
+ ]
1411
+ },
1412
+ "row": {
1413
+ "type": "integer",
1414
+ "allOf": [
1415
+ {
1416
+ "minimum": 0
1417
+ }
1418
+ ]
1419
+ },
1420
+ "column": {
1421
+ "type": "integer",
1422
+ "allOf": [
1423
+ {
1424
+ "minimum": 0
1425
+ }
1426
+ ]
1427
+ }
1428
+ },
1429
+ "required": ["zoom", "row", "column"],
1430
+ "additionalProperties": false
120
1431
  },
121
1432
  "status": {
122
- "const": "failed"
1433
+ "type": "string",
1434
+ "enum": ["failed"]
123
1435
  }
124
- }
1436
+ },
1437
+ "required": ["failure", "key", "status"],
1438
+ "additionalProperties": false
125
1439
  }
126
1440
  ]
127
- }
1441
+ },
1442
+ "allOf": [
1443
+ {
1444
+ "maxItems": 64
1445
+ }
1446
+ ]
128
1447
  },
129
1448
  "status": {
1449
+ "type": "string",
130
1450
  "enum": ["completed", "partial", "cancelled", "failed"]
131
1451
  },
132
1452
  "tileCounts": {
133
1453
  "type": "object",
134
- "additionalProperties": false,
135
- "required": ["failed", "requested", "succeeded"],
136
1454
  "properties": {
137
1455
  "failed": {
138
1456
  "type": "integer",
139
- "minimum": 0
1457
+ "allOf": [
1458
+ {
1459
+ "minimum": 0
1460
+ }
1461
+ ]
140
1462
  },
141
1463
  "requested": {
142
1464
  "type": "integer",
143
- "minimum": 0
1465
+ "allOf": [
1466
+ {
1467
+ "minimum": 0
1468
+ }
1469
+ ]
144
1470
  },
145
1471
  "succeeded": {
146
1472
  "type": "integer",
147
- "minimum": 0
148
- }
149
- }
150
- }
151
- },
152
- "$defs": {
153
- "failure": {
154
- "type": "object",
155
- "additionalProperties": false,
156
- "required": ["code", "message", "recovery", "retrySafe"],
157
- "properties": {
158
- "code": {
159
- "enum": [
160
- "cancelled",
161
- "capture_failed",
162
- "data_layer_policy_unsupported",
163
- "dirty_state_changed",
164
- "encoding_failed",
165
- "invalid_request",
166
- "map_mismatch",
167
- "streaming_not_ready",
168
- "write_failed"
1473
+ "allOf": [
1474
+ {
1475
+ "minimum": 0
1476
+ }
169
1477
  ]
170
- },
171
- "message": {
172
- "type": "string",
173
- "minLength": 1,
174
- "maxLength": 1024
175
- },
176
- "recovery": {
177
- "type": "string",
178
- "minLength": 1,
179
- "maxLength": 1024
180
- },
181
- "retrySafe": {
182
- "type": "boolean"
183
1478
  }
184
- }
1479
+ },
1480
+ "required": ["failed", "requested", "succeeded"],
1481
+ "additionalProperties": false
185
1482
  }
186
- }
1483
+ },
1484
+ "required": [
1485
+ "contract",
1486
+ "correlationId",
1487
+ "dirtyState",
1488
+ "durationMs",
1489
+ "operationId",
1490
+ "results",
1491
+ "status",
1492
+ "tileCounts"
1493
+ ],
1494
+ "additionalProperties": false,
1495
+ "$defs": {}
187
1496
  }