@ue-shed/protocol 0.7.0 → 0.8.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 (79) hide show
  1. package/contracts/cameras/authoring/v1/README.md +50 -0
  2. package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
  3. package/contracts/cameras/authoring/v1/arrangement.schema.json +1801 -0
  4. package/contracts/cameras/authoring/v1/bridge-request.schema.json +10862 -0
  5. package/contracts/cameras/authoring/v1/bridge-response.schema.json +10323 -0
  6. package/contracts/cameras/authoring/v1/command.schema.json +4109 -0
  7. package/contracts/cameras/authoring/v1/document.schema.json +4409 -0
  8. package/contracts/cameras/authoring/v1/panel-event.schema.json +4885 -0
  9. package/contracts/cameras/authoring/v1/panel-state.schema.json +3548 -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 +1621 -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 +1383 -96
  16. package/contracts/cameras/map-tile/v1/manifest.schema.json +1760 -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/begin-result.schema.json +167 -0
  21. package/contracts/cameras/render/v1/capabilities.schema.json +25 -0
  22. package/contracts/cameras/render/v1/frame-evidence.schema.json +240 -0
  23. package/contracts/cameras/render/v1/frame-status.schema.json +249 -0
  24. package/contracts/cameras/render/v1/policy.schema.json +159 -0
  25. package/contracts/cameras/render/v1/review-inspection-result.schema.json +263 -0
  26. package/contracts/cameras/render/v1/session-request.schema.json +167 -0
  27. package/contracts/cameras/review/v1/README.md +6 -0
  28. package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
  29. package/contracts/cameras/review/v1/capture-response.schema.json +3648 -0
  30. package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
  31. package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
  32. package/contracts/core/v1/window-activation-request.schema.json +20 -0
  33. package/contracts/core/v1/window-activation-result.schema.json +49 -0
  34. package/contracts/editor-world/v1/README.md +27 -0
  35. package/contracts/editor-world/v1/operation.schema.json +761 -0
  36. package/contracts/editor-world/v1/state.schema.json +92 -0
  37. package/contracts/uasset-io/v1/event.schema.json +613 -171
  38. package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
  39. package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
  40. package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
  41. package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
  42. package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
  43. package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
  44. package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
  45. package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
  46. package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
  47. package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
  48. package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
  49. package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
  50. package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
  51. package/contracts/world/preparation/v1/request.schema.json +897 -0
  52. package/contracts/world/preparation/v1/response.schema.json +449 -0
  53. package/dist/cameras.d.ts +16 -12
  54. package/dist/cameras.d.ts.map +1 -1
  55. package/dist/cameras.js +1 -0
  56. package/dist/cameras.js.map +1 -1
  57. package/dist/companion.d.ts +6 -0
  58. package/dist/companion.d.ts.map +1 -1
  59. package/dist/companion.js +3 -0
  60. package/dist/companion.js.map +1 -1
  61. package/dist/editor-window-activation.d.ts +16 -0
  62. package/dist/editor-window-activation.d.ts.map +1 -0
  63. package/dist/editor-window-activation.js +19 -0
  64. package/dist/editor-window-activation.js.map +1 -0
  65. package/dist/editor-world-control.d.ts +125 -0
  66. package/dist/editor-world-control.d.ts.map +1 -1
  67. package/dist/editor-world-control.js +25 -0
  68. package/dist/editor-world-control.js.map +1 -1
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/uasset-inspection.d.ts +112 -55
  74. package/dist/uasset-inspection.d.ts.map +1 -1
  75. package/dist/uasset-inspection.js +29 -0
  76. package/dist/uasset-inspection.js.map +1 -1
  77. package/dist/uasset-io.d.ts +54 -0
  78. package/dist/uasset-io.d.ts.map +1 -1
  79. package/package.json +1 -1
@@ -1,171 +1,693 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://ue-shed.dev/contracts/cameras/provisioning/v1/provision-request.schema.json",
4
- "title": "UE Shed provisioned camera request v1",
5
4
  "type": "object",
6
- "additionalProperties": false,
7
- "required": ["schemaVersion", "expectedMapPath", "previewFps", "cameras"],
8
5
  "properties": {
9
- "schemaVersion": { "const": 3 },
10
- "expectedMapPath": {
11
- "type": "string",
12
- "minLength": 1,
13
- "maxLength": 1024,
14
- "pattern": "^/[A-Za-z0-9_./-]+$"
15
- },
16
- "previewFps": { "type": "integer", "minimum": 1, "maximum": 10 },
17
6
  "cameras": {
18
7
  "type": "array",
19
- "minItems": 1,
20
- "maxItems": 32,
21
8
  "items": {
22
- "oneOf": [
9
+ "anyOf": [
23
10
  {
24
- "$ref": "#/$defs/perspectiveCamera"
11
+ "type": "object",
12
+ "properties": {
13
+ "visibility": {
14
+ "type": "object",
15
+ "properties": {
16
+ "hide": {
17
+ "type": "array",
18
+ "items": {
19
+ "type": "object",
20
+ "properties": {
21
+ "locator": {
22
+ "anyOf": [
23
+ {
24
+ "type": "object",
25
+ "properties": {
26
+ "kind": {
27
+ "type": "string",
28
+ "enum": ["actor_path"]
29
+ },
30
+ "actorPath": {
31
+ "type": "string",
32
+ "allOf": [
33
+ {
34
+ "pattern": "^\\/Game\\/"
35
+ },
36
+ {
37
+ "maxLength": 4096
38
+ }
39
+ ]
40
+ }
41
+ },
42
+ "required": ["kind", "actorPath"],
43
+ "additionalProperties": false
44
+ },
45
+ {
46
+ "type": "object",
47
+ "properties": {
48
+ "kind": {
49
+ "type": "string",
50
+ "enum": ["actor_guid"]
51
+ },
52
+ "actorGuid": {
53
+ "type": "string",
54
+ "allOf": [
55
+ {
56
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
57
+ }
58
+ ]
59
+ },
60
+ "lastKnownActorPath": {
61
+ "type": "string",
62
+ "allOf": [
63
+ {
64
+ "maxLength": 4096
65
+ }
66
+ ]
67
+ }
68
+ },
69
+ "required": [
70
+ "kind",
71
+ "actorGuid",
72
+ "lastKnownActorPath"
73
+ ],
74
+ "additionalProperties": false
75
+ }
76
+ ]
77
+ },
78
+ "label": {
79
+ "type": "string",
80
+ "allOf": [
81
+ {
82
+ "maxLength": 256
83
+ }
84
+ ]
85
+ }
86
+ },
87
+ "required": ["locator", "label"],
88
+ "additionalProperties": false
89
+ },
90
+ "allOf": [
91
+ {
92
+ "maxItems": 256
93
+ }
94
+ ]
95
+ },
96
+ "protect": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "object",
100
+ "properties": {
101
+ "locator": {
102
+ "anyOf": [
103
+ {
104
+ "type": "object",
105
+ "properties": {
106
+ "kind": {
107
+ "type": "string",
108
+ "enum": ["actor_path"]
109
+ },
110
+ "actorPath": {
111
+ "type": "string",
112
+ "allOf": [
113
+ {
114
+ "pattern": "^\\/Game\\/"
115
+ },
116
+ {
117
+ "maxLength": 4096
118
+ }
119
+ ]
120
+ }
121
+ },
122
+ "required": ["kind", "actorPath"],
123
+ "additionalProperties": false
124
+ },
125
+ {
126
+ "type": "object",
127
+ "properties": {
128
+ "kind": {
129
+ "type": "string",
130
+ "enum": ["actor_guid"]
131
+ },
132
+ "actorGuid": {
133
+ "type": "string",
134
+ "allOf": [
135
+ {
136
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
137
+ }
138
+ ]
139
+ },
140
+ "lastKnownActorPath": {
141
+ "type": "string",
142
+ "allOf": [
143
+ {
144
+ "maxLength": 4096
145
+ }
146
+ ]
147
+ }
148
+ },
149
+ "required": [
150
+ "kind",
151
+ "actorGuid",
152
+ "lastKnownActorPath"
153
+ ],
154
+ "additionalProperties": false
155
+ }
156
+ ]
157
+ },
158
+ "label": {
159
+ "type": "string",
160
+ "allOf": [
161
+ {
162
+ "maxLength": 256
163
+ }
164
+ ]
165
+ }
166
+ },
167
+ "required": ["locator", "label"],
168
+ "additionalProperties": false
169
+ },
170
+ "allOf": [
171
+ {
172
+ "maxItems": 256
173
+ }
174
+ ]
175
+ }
176
+ },
177
+ "required": ["hide", "protect"],
178
+ "additionalProperties": false
179
+ },
180
+ "correlation": {
181
+ "anyOf": [
182
+ {
183
+ "type": "object",
184
+ "properties": {
185
+ "candidateId": {
186
+ "type": "string",
187
+ "allOf": [
188
+ {
189
+ "minLength": 1
190
+ },
191
+ {
192
+ "maxLength": 384
193
+ },
194
+ {
195
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]*$"
196
+ }
197
+ ]
198
+ },
199
+ "type": {
200
+ "type": "string",
201
+ "enum": ["framing_candidate"]
202
+ }
203
+ },
204
+ "required": ["candidateId", "type"],
205
+ "additionalProperties": false
206
+ },
207
+ {
208
+ "type": "object",
209
+ "properties": {
210
+ "reviewViewId": {
211
+ "type": "string",
212
+ "allOf": [
213
+ {
214
+ "minLength": 1
215
+ },
216
+ {
217
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
218
+ }
219
+ ]
220
+ },
221
+ "type": {
222
+ "type": "string",
223
+ "enum": ["review_view"]
224
+ }
225
+ },
226
+ "required": ["reviewViewId", "type"],
227
+ "additionalProperties": false
228
+ },
229
+ {
230
+ "type": "object",
231
+ "properties": {
232
+ "mapCapturePlanId": {
233
+ "type": "string",
234
+ "allOf": [
235
+ {
236
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
237
+ }
238
+ ]
239
+ },
240
+ "type": {
241
+ "type": "string",
242
+ "enum": ["map_capture_plan"]
243
+ }
244
+ },
245
+ "required": ["mapCapturePlanId", "type"],
246
+ "additionalProperties": false
247
+ }
248
+ ]
249
+ },
250
+ "height": {
251
+ "type": "integer",
252
+ "allOf": [
253
+ {
254
+ "minimum": 64,
255
+ "maximum": 1440
256
+ }
257
+ ]
258
+ },
259
+ "location": {
260
+ "type": "object",
261
+ "properties": {
262
+ "x": {
263
+ "type": "number"
264
+ },
265
+ "y": {
266
+ "type": "number"
267
+ },
268
+ "z": {
269
+ "type": "number"
270
+ }
271
+ },
272
+ "required": ["x", "y", "z"],
273
+ "additionalProperties": false
274
+ },
275
+ "rotation": {
276
+ "type": "object",
277
+ "properties": {
278
+ "pitch": {
279
+ "type": "number"
280
+ },
281
+ "roll": {
282
+ "type": "number"
283
+ },
284
+ "yaw": {
285
+ "type": "number"
286
+ }
287
+ },
288
+ "required": ["pitch", "roll", "yaw"],
289
+ "additionalProperties": false
290
+ },
291
+ "width": {
292
+ "type": "integer",
293
+ "allOf": [
294
+ {
295
+ "minimum": 64,
296
+ "maximum": 2560
297
+ }
298
+ ]
299
+ },
300
+ "projection": {
301
+ "type": "object",
302
+ "properties": {
303
+ "fieldOfViewDegrees": {
304
+ "type": "number",
305
+ "allOf": [
306
+ {
307
+ "minimum": 5,
308
+ "maximum": 170
309
+ }
310
+ ]
311
+ },
312
+ "type": {
313
+ "type": "string",
314
+ "enum": ["perspective"]
315
+ }
316
+ },
317
+ "required": ["fieldOfViewDegrees", "type"],
318
+ "additionalProperties": false
319
+ }
320
+ },
321
+ "required": [
322
+ "correlation",
323
+ "height",
324
+ "location",
325
+ "rotation",
326
+ "width",
327
+ "projection"
328
+ ],
329
+ "additionalProperties": false
25
330
  },
26
331
  {
27
- "$ref": "#/$defs/orthographicCamera"
332
+ "type": "object",
333
+ "properties": {
334
+ "visibility": {
335
+ "type": "object",
336
+ "properties": {
337
+ "hide": {
338
+ "type": "array",
339
+ "items": {
340
+ "type": "object",
341
+ "properties": {
342
+ "locator": {
343
+ "anyOf": [
344
+ {
345
+ "type": "object",
346
+ "properties": {
347
+ "kind": {
348
+ "type": "string",
349
+ "enum": ["actor_path"]
350
+ },
351
+ "actorPath": {
352
+ "type": "string",
353
+ "allOf": [
354
+ {
355
+ "pattern": "^\\/Game\\/"
356
+ },
357
+ {
358
+ "maxLength": 4096
359
+ }
360
+ ]
361
+ }
362
+ },
363
+ "required": ["kind", "actorPath"],
364
+ "additionalProperties": false
365
+ },
366
+ {
367
+ "type": "object",
368
+ "properties": {
369
+ "kind": {
370
+ "type": "string",
371
+ "enum": ["actor_guid"]
372
+ },
373
+ "actorGuid": {
374
+ "type": "string",
375
+ "allOf": [
376
+ {
377
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
378
+ }
379
+ ]
380
+ },
381
+ "lastKnownActorPath": {
382
+ "type": "string",
383
+ "allOf": [
384
+ {
385
+ "maxLength": 4096
386
+ }
387
+ ]
388
+ }
389
+ },
390
+ "required": [
391
+ "kind",
392
+ "actorGuid",
393
+ "lastKnownActorPath"
394
+ ],
395
+ "additionalProperties": false
396
+ }
397
+ ]
398
+ },
399
+ "label": {
400
+ "type": "string",
401
+ "allOf": [
402
+ {
403
+ "maxLength": 256
404
+ }
405
+ ]
406
+ }
407
+ },
408
+ "required": ["locator", "label"],
409
+ "additionalProperties": false
410
+ },
411
+ "allOf": [
412
+ {
413
+ "maxItems": 256
414
+ }
415
+ ]
416
+ },
417
+ "protect": {
418
+ "type": "array",
419
+ "items": {
420
+ "type": "object",
421
+ "properties": {
422
+ "locator": {
423
+ "anyOf": [
424
+ {
425
+ "type": "object",
426
+ "properties": {
427
+ "kind": {
428
+ "type": "string",
429
+ "enum": ["actor_path"]
430
+ },
431
+ "actorPath": {
432
+ "type": "string",
433
+ "allOf": [
434
+ {
435
+ "pattern": "^\\/Game\\/"
436
+ },
437
+ {
438
+ "maxLength": 4096
439
+ }
440
+ ]
441
+ }
442
+ },
443
+ "required": ["kind", "actorPath"],
444
+ "additionalProperties": false
445
+ },
446
+ {
447
+ "type": "object",
448
+ "properties": {
449
+ "kind": {
450
+ "type": "string",
451
+ "enum": ["actor_guid"]
452
+ },
453
+ "actorGuid": {
454
+ "type": "string",
455
+ "allOf": [
456
+ {
457
+ "pattern": "^(?!00000000-00000000-00000000-00000000$)[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{8}){3}$"
458
+ }
459
+ ]
460
+ },
461
+ "lastKnownActorPath": {
462
+ "type": "string",
463
+ "allOf": [
464
+ {
465
+ "maxLength": 4096
466
+ }
467
+ ]
468
+ }
469
+ },
470
+ "required": [
471
+ "kind",
472
+ "actorGuid",
473
+ "lastKnownActorPath"
474
+ ],
475
+ "additionalProperties": false
476
+ }
477
+ ]
478
+ },
479
+ "label": {
480
+ "type": "string",
481
+ "allOf": [
482
+ {
483
+ "maxLength": 256
484
+ }
485
+ ]
486
+ }
487
+ },
488
+ "required": ["locator", "label"],
489
+ "additionalProperties": false
490
+ },
491
+ "allOf": [
492
+ {
493
+ "maxItems": 256
494
+ }
495
+ ]
496
+ }
497
+ },
498
+ "required": ["hide", "protect"],
499
+ "additionalProperties": false
500
+ },
501
+ "correlation": {
502
+ "anyOf": [
503
+ {
504
+ "type": "object",
505
+ "properties": {
506
+ "candidateId": {
507
+ "type": "string",
508
+ "allOf": [
509
+ {
510
+ "minLength": 1
511
+ },
512
+ {
513
+ "maxLength": 384
514
+ },
515
+ {
516
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]*$"
517
+ }
518
+ ]
519
+ },
520
+ "type": {
521
+ "type": "string",
522
+ "enum": ["framing_candidate"]
523
+ }
524
+ },
525
+ "required": ["candidateId", "type"],
526
+ "additionalProperties": false
527
+ },
528
+ {
529
+ "type": "object",
530
+ "properties": {
531
+ "reviewViewId": {
532
+ "type": "string",
533
+ "allOf": [
534
+ {
535
+ "minLength": 1
536
+ },
537
+ {
538
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
539
+ }
540
+ ]
541
+ },
542
+ "type": {
543
+ "type": "string",
544
+ "enum": ["review_view"]
545
+ }
546
+ },
547
+ "required": ["reviewViewId", "type"],
548
+ "additionalProperties": false
549
+ },
550
+ {
551
+ "type": "object",
552
+ "properties": {
553
+ "mapCapturePlanId": {
554
+ "type": "string",
555
+ "allOf": [
556
+ {
557
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
558
+ }
559
+ ]
560
+ },
561
+ "type": {
562
+ "type": "string",
563
+ "enum": ["map_capture_plan"]
564
+ }
565
+ },
566
+ "required": ["mapCapturePlanId", "type"],
567
+ "additionalProperties": false
568
+ }
569
+ ]
570
+ },
571
+ "height": {
572
+ "type": "integer",
573
+ "allOf": [
574
+ {
575
+ "minimum": 64,
576
+ "maximum": 1440
577
+ }
578
+ ]
579
+ },
580
+ "location": {
581
+ "type": "object",
582
+ "properties": {
583
+ "x": {
584
+ "type": "number"
585
+ },
586
+ "y": {
587
+ "type": "number"
588
+ },
589
+ "z": {
590
+ "type": "number"
591
+ }
592
+ },
593
+ "required": ["x", "y", "z"],
594
+ "additionalProperties": false
595
+ },
596
+ "rotation": {
597
+ "type": "object",
598
+ "properties": {
599
+ "pitch": {
600
+ "type": "number"
601
+ },
602
+ "roll": {
603
+ "type": "number"
604
+ },
605
+ "yaw": {
606
+ "type": "number"
607
+ }
608
+ },
609
+ "required": ["pitch", "roll", "yaw"],
610
+ "additionalProperties": false
611
+ },
612
+ "width": {
613
+ "type": "integer",
614
+ "allOf": [
615
+ {
616
+ "minimum": 64,
617
+ "maximum": 2560
618
+ }
619
+ ]
620
+ },
621
+ "projection": {
622
+ "type": "object",
623
+ "properties": {
624
+ "orthoWidth": {
625
+ "type": "number",
626
+ "allOf": [
627
+ {
628
+ "exclusiveMinimum": 0
629
+ }
630
+ ]
631
+ },
632
+ "type": {
633
+ "type": "string",
634
+ "enum": ["orthographic"]
635
+ }
636
+ },
637
+ "required": ["orthoWidth", "type"],
638
+ "additionalProperties": false
639
+ }
640
+ },
641
+ "required": [
642
+ "correlation",
643
+ "height",
644
+ "location",
645
+ "rotation",
646
+ "width",
647
+ "projection"
648
+ ],
649
+ "additionalProperties": false
28
650
  }
29
651
  ]
30
- }
31
- }
32
- },
33
- "$defs": {
34
- "cameraFields": {
35
- "type": "object",
36
- "required": ["correlation", "projection", "location", "rotation", "width", "height"],
37
- "properties": {
38
- "correlation": { "$ref": "#/$defs/correlation" },
39
- "location": { "$ref": "#/$defs/vector" },
40
- "rotation": { "$ref": "#/$defs/rotation" },
41
- "width": { "type": "integer", "minimum": 64, "maximum": 2560 },
42
- "height": { "type": "integer", "minimum": 64, "maximum": 1440 }
43
- }
44
- },
45
- "perspectiveCamera": {
652
+ },
46
653
  "allOf": [
47
- { "$ref": "#/$defs/cameraFields" },
48
654
  {
49
- "type": "object",
50
- "additionalProperties": false,
51
- "required": [
52
- "correlation",
53
- "projection",
54
- "location",
55
- "rotation",
56
- "width",
57
- "height"
58
- ],
59
- "properties": {
60
- "correlation": { "$ref": "#/$defs/correlation" },
61
- "projection": { "$ref": "#/$defs/perspectiveProjection" },
62
- "location": { "$ref": "#/$defs/vector" },
63
- "rotation": { "$ref": "#/$defs/rotation" },
64
- "width": { "type": "integer", "minimum": 64, "maximum": 2560 },
65
- "height": { "type": "integer", "minimum": 64, "maximum": 1440 }
66
- }
67
- }
68
- ]
69
- },
70
- "orthographicCamera": {
71
- "allOf": [
72
- { "$ref": "#/$defs/cameraFields" },
655
+ "minItems": 1
656
+ },
73
657
  {
74
- "type": "object",
75
- "additionalProperties": false,
76
- "required": [
77
- "correlation",
78
- "projection",
79
- "location",
80
- "rotation",
81
- "width",
82
- "height"
83
- ],
84
- "properties": {
85
- "correlation": { "$ref": "#/$defs/correlation" },
86
- "projection": { "$ref": "#/$defs/orthographicProjection" },
87
- "location": { "$ref": "#/$defs/vector" },
88
- "rotation": { "$ref": "#/$defs/rotation" },
89
- "width": { "type": "integer", "minimum": 64, "maximum": 2560 },
90
- "height": { "type": "integer", "minimum": 64, "maximum": 1440 }
91
- }
658
+ "maxItems": 32
92
659
  }
93
660
  ]
94
661
  },
95
- "perspectiveProjection": {
96
- "type": "object",
97
- "additionalProperties": false,
98
- "required": ["type", "fieldOfViewDegrees"],
99
- "properties": {
100
- "type": { "const": "perspective" },
101
- "fieldOfViewDegrees": { "type": "number", "minimum": 5, "maximum": 170 }
102
- }
103
- },
104
- "orthographicProjection": {
105
- "type": "object",
106
- "additionalProperties": false,
107
- "required": ["type", "orthoWidth"],
108
- "properties": {
109
- "type": { "const": "orthographic" },
110
- "orthoWidth": { "type": "number", "exclusiveMinimum": 0 }
111
- }
112
- },
113
- "correlation": {
114
- "oneOf": [
662
+ "expectedMapPath": {
663
+ "type": "string",
664
+ "allOf": [
115
665
  {
116
- "type": "object",
117
- "additionalProperties": false,
118
- "required": ["type", "candidateId"],
119
- "properties": {
120
- "type": { "const": "framing_candidate" },
121
- "candidateId": { "$ref": "#/$defs/identifier" }
122
- }
666
+ "minLength": 1
123
667
  },
124
668
  {
125
- "type": "object",
126
- "additionalProperties": false,
127
- "required": ["type", "reviewViewId"],
128
- "properties": {
129
- "type": { "const": "review_view" },
130
- "reviewViewId": { "$ref": "#/$defs/identifier" }
131
- }
669
+ "maxLength": 1024
132
670
  },
133
671
  {
134
- "type": "object",
135
- "additionalProperties": false,
136
- "required": ["type", "mapCapturePlanId"],
137
- "properties": {
138
- "type": { "const": "map_capture_plan" },
139
- "mapCapturePlanId": { "$ref": "#/$defs/identifier" }
140
- }
672
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
141
673
  }
142
674
  ]
143
675
  },
144
- "identifier": {
145
- "type": "string",
146
- "minLength": 1,
147
- "maxLength": 128,
148
- "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
149
- },
150
- "vector": {
151
- "type": "object",
152
- "additionalProperties": false,
153
- "required": ["x", "y", "z"],
154
- "properties": {
155
- "x": { "type": "number" },
156
- "y": { "type": "number" },
157
- "z": { "type": "number" }
158
- }
676
+ "previewFps": {
677
+ "type": "integer",
678
+ "allOf": [
679
+ {
680
+ "minimum": 1,
681
+ "maximum": 10
682
+ }
683
+ ]
159
684
  },
160
- "rotation": {
161
- "type": "object",
162
- "additionalProperties": false,
163
- "required": ["pitch", "yaw", "roll"],
164
- "properties": {
165
- "pitch": { "type": "number" },
166
- "yaw": { "type": "number" },
167
- "roll": { "type": "number" }
168
- }
685
+ "schemaVersion": {
686
+ "type": "number",
687
+ "enum": [3, 4]
169
688
  }
170
- }
689
+ },
690
+ "required": ["cameras", "expectedMapPath", "previewFps", "schemaVersion"],
691
+ "additionalProperties": false,
692
+ "$defs": {}
171
693
  }