@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
@@ -0,0 +1,761 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$defs": {
4
+ "EditorWorldOpenResponse": {
5
+ "anyOf": [
6
+ {
7
+ "type": "object",
8
+ "properties": {
9
+ "outcome": {
10
+ "type": "string",
11
+ "enum": ["opened"]
12
+ },
13
+ "after": {
14
+ "type": "object",
15
+ "properties": {
16
+ "dirtyWorldPackages": {
17
+ "type": "array",
18
+ "items": {
19
+ "type": "string",
20
+ "allOf": [
21
+ {
22
+ "minLength": 1
23
+ },
24
+ {
25
+ "maxLength": 1024
26
+ },
27
+ {
28
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
29
+ }
30
+ ]
31
+ },
32
+ "allOf": [
33
+ {
34
+ "maxItems": 256
35
+ }
36
+ ]
37
+ },
38
+ "mapPath": {
39
+ "type": "string",
40
+ "allOf": [
41
+ {
42
+ "minLength": 1
43
+ },
44
+ {
45
+ "maxLength": 1024
46
+ },
47
+ {
48
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
49
+ }
50
+ ]
51
+ },
52
+ "playSessionActive": {
53
+ "type": "boolean"
54
+ }
55
+ },
56
+ "required": ["dirtyWorldPackages", "playSessionActive"],
57
+ "additionalProperties": false
58
+ },
59
+ "before": {
60
+ "type": "object",
61
+ "properties": {
62
+ "dirtyWorldPackages": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "string",
66
+ "allOf": [
67
+ {
68
+ "minLength": 1
69
+ },
70
+ {
71
+ "maxLength": 1024
72
+ },
73
+ {
74
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
75
+ }
76
+ ]
77
+ },
78
+ "allOf": [
79
+ {
80
+ "maxItems": 256
81
+ }
82
+ ]
83
+ },
84
+ "mapPath": {
85
+ "type": "string",
86
+ "allOf": [
87
+ {
88
+ "minLength": 1
89
+ },
90
+ {
91
+ "maxLength": 1024
92
+ },
93
+ {
94
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
95
+ }
96
+ ]
97
+ },
98
+ "playSessionActive": {
99
+ "type": "boolean"
100
+ }
101
+ },
102
+ "required": ["dirtyWorldPackages", "playSessionActive"],
103
+ "additionalProperties": false
104
+ },
105
+ "contract": {
106
+ "type": "object",
107
+ "properties": {
108
+ "name": {
109
+ "type": "string",
110
+ "enum": ["unreal-editor-world-control"]
111
+ },
112
+ "version": {
113
+ "type": "object",
114
+ "properties": {
115
+ "major": {
116
+ "type": "number",
117
+ "enum": [1]
118
+ },
119
+ "minor": {
120
+ "type": "number",
121
+ "enum": [0]
122
+ }
123
+ },
124
+ "required": ["major", "minor"],
125
+ "additionalProperties": false
126
+ }
127
+ },
128
+ "required": ["name", "version"],
129
+ "additionalProperties": false
130
+ },
131
+ "operationId": {
132
+ "type": "string",
133
+ "allOf": [
134
+ {
135
+ "minLength": 1
136
+ },
137
+ {
138
+ "maxLength": 128
139
+ },
140
+ {
141
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
142
+ }
143
+ ]
144
+ },
145
+ "targetMapPath": {
146
+ "type": "string",
147
+ "allOf": [
148
+ {
149
+ "minLength": 1
150
+ },
151
+ {
152
+ "maxLength": 1024
153
+ },
154
+ {
155
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
156
+ },
157
+ {
158
+ "pattern": "^\\/Game\\/[A-Za-z0-9_./-]+$"
159
+ }
160
+ ]
161
+ }
162
+ },
163
+ "required": [
164
+ "outcome",
165
+ "after",
166
+ "before",
167
+ "contract",
168
+ "operationId",
169
+ "targetMapPath"
170
+ ],
171
+ "additionalProperties": false
172
+ },
173
+ {
174
+ "type": "object",
175
+ "properties": {
176
+ "outcome": {
177
+ "type": "string",
178
+ "enum": ["already_open"]
179
+ },
180
+ "after": {
181
+ "type": "object",
182
+ "properties": {
183
+ "dirtyWorldPackages": {
184
+ "type": "array",
185
+ "items": {
186
+ "type": "string",
187
+ "allOf": [
188
+ {
189
+ "minLength": 1
190
+ },
191
+ {
192
+ "maxLength": 1024
193
+ },
194
+ {
195
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
196
+ }
197
+ ]
198
+ },
199
+ "allOf": [
200
+ {
201
+ "maxItems": 256
202
+ }
203
+ ]
204
+ },
205
+ "mapPath": {
206
+ "type": "string",
207
+ "allOf": [
208
+ {
209
+ "minLength": 1
210
+ },
211
+ {
212
+ "maxLength": 1024
213
+ },
214
+ {
215
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
216
+ }
217
+ ]
218
+ },
219
+ "playSessionActive": {
220
+ "type": "boolean"
221
+ }
222
+ },
223
+ "required": ["dirtyWorldPackages", "playSessionActive"],
224
+ "additionalProperties": false
225
+ },
226
+ "before": {
227
+ "type": "object",
228
+ "properties": {
229
+ "dirtyWorldPackages": {
230
+ "type": "array",
231
+ "items": {
232
+ "type": "string",
233
+ "allOf": [
234
+ {
235
+ "minLength": 1
236
+ },
237
+ {
238
+ "maxLength": 1024
239
+ },
240
+ {
241
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
242
+ }
243
+ ]
244
+ },
245
+ "allOf": [
246
+ {
247
+ "maxItems": 256
248
+ }
249
+ ]
250
+ },
251
+ "mapPath": {
252
+ "type": "string",
253
+ "allOf": [
254
+ {
255
+ "minLength": 1
256
+ },
257
+ {
258
+ "maxLength": 1024
259
+ },
260
+ {
261
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
262
+ }
263
+ ]
264
+ },
265
+ "playSessionActive": {
266
+ "type": "boolean"
267
+ }
268
+ },
269
+ "required": ["dirtyWorldPackages", "playSessionActive"],
270
+ "additionalProperties": false
271
+ },
272
+ "contract": {
273
+ "type": "object",
274
+ "properties": {
275
+ "name": {
276
+ "type": "string",
277
+ "enum": ["unreal-editor-world-control"]
278
+ },
279
+ "version": {
280
+ "type": "object",
281
+ "properties": {
282
+ "major": {
283
+ "type": "number",
284
+ "enum": [1]
285
+ },
286
+ "minor": {
287
+ "type": "number",
288
+ "enum": [0]
289
+ }
290
+ },
291
+ "required": ["major", "minor"],
292
+ "additionalProperties": false
293
+ }
294
+ },
295
+ "required": ["name", "version"],
296
+ "additionalProperties": false
297
+ },
298
+ "operationId": {
299
+ "type": "string",
300
+ "allOf": [
301
+ {
302
+ "minLength": 1
303
+ },
304
+ {
305
+ "maxLength": 128
306
+ },
307
+ {
308
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
309
+ }
310
+ ]
311
+ },
312
+ "targetMapPath": {
313
+ "type": "string",
314
+ "allOf": [
315
+ {
316
+ "minLength": 1
317
+ },
318
+ {
319
+ "maxLength": 1024
320
+ },
321
+ {
322
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
323
+ },
324
+ {
325
+ "pattern": "^\\/Game\\/[A-Za-z0-9_./-]+$"
326
+ }
327
+ ]
328
+ }
329
+ },
330
+ "required": [
331
+ "outcome",
332
+ "after",
333
+ "before",
334
+ "contract",
335
+ "operationId",
336
+ "targetMapPath"
337
+ ],
338
+ "additionalProperties": false
339
+ },
340
+ {
341
+ "type": "object",
342
+ "properties": {
343
+ "outcome": {
344
+ "type": "string",
345
+ "enum": ["rejected"]
346
+ },
347
+ "after": {
348
+ "type": "object",
349
+ "properties": {
350
+ "dirtyWorldPackages": {
351
+ "type": "array",
352
+ "items": {
353
+ "type": "string",
354
+ "allOf": [
355
+ {
356
+ "minLength": 1
357
+ },
358
+ {
359
+ "maxLength": 1024
360
+ },
361
+ {
362
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
363
+ }
364
+ ]
365
+ },
366
+ "allOf": [
367
+ {
368
+ "maxItems": 256
369
+ }
370
+ ]
371
+ },
372
+ "mapPath": {
373
+ "type": "string",
374
+ "allOf": [
375
+ {
376
+ "minLength": 1
377
+ },
378
+ {
379
+ "maxLength": 1024
380
+ },
381
+ {
382
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
383
+ }
384
+ ]
385
+ },
386
+ "playSessionActive": {
387
+ "type": "boolean"
388
+ }
389
+ },
390
+ "required": ["dirtyWorldPackages", "playSessionActive"],
391
+ "additionalProperties": false
392
+ },
393
+ "before": {
394
+ "type": "object",
395
+ "properties": {
396
+ "dirtyWorldPackages": {
397
+ "type": "array",
398
+ "items": {
399
+ "type": "string",
400
+ "allOf": [
401
+ {
402
+ "minLength": 1
403
+ },
404
+ {
405
+ "maxLength": 1024
406
+ },
407
+ {
408
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
409
+ }
410
+ ]
411
+ },
412
+ "allOf": [
413
+ {
414
+ "maxItems": 256
415
+ }
416
+ ]
417
+ },
418
+ "mapPath": {
419
+ "type": "string",
420
+ "allOf": [
421
+ {
422
+ "minLength": 1
423
+ },
424
+ {
425
+ "maxLength": 1024
426
+ },
427
+ {
428
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
429
+ }
430
+ ]
431
+ },
432
+ "playSessionActive": {
433
+ "type": "boolean"
434
+ }
435
+ },
436
+ "required": ["dirtyWorldPackages", "playSessionActive"],
437
+ "additionalProperties": false
438
+ },
439
+ "contract": {
440
+ "type": "object",
441
+ "properties": {
442
+ "name": {
443
+ "type": "string",
444
+ "enum": ["unreal-editor-world-control"]
445
+ },
446
+ "version": {
447
+ "type": "object",
448
+ "properties": {
449
+ "major": {
450
+ "type": "number",
451
+ "enum": [1]
452
+ },
453
+ "minor": {
454
+ "type": "number",
455
+ "enum": [0]
456
+ }
457
+ },
458
+ "required": ["major", "minor"],
459
+ "additionalProperties": false
460
+ }
461
+ },
462
+ "required": ["name", "version"],
463
+ "additionalProperties": false
464
+ },
465
+ "operationId": {
466
+ "type": "string",
467
+ "allOf": [
468
+ {
469
+ "minLength": 1
470
+ },
471
+ {
472
+ "maxLength": 128
473
+ },
474
+ {
475
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
476
+ }
477
+ ]
478
+ },
479
+ "targetMapPath": {
480
+ "type": "string",
481
+ "allOf": [
482
+ {
483
+ "minLength": 1
484
+ },
485
+ {
486
+ "maxLength": 1024
487
+ },
488
+ {
489
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
490
+ },
491
+ {
492
+ "pattern": "^\\/Game\\/[A-Za-z0-9_./-]+$"
493
+ }
494
+ ]
495
+ },
496
+ "code": {
497
+ "type": "string",
498
+ "enum": [
499
+ "dirty_world",
500
+ "invalid_request",
501
+ "map_not_found",
502
+ "open_failed",
503
+ "play_session_active",
504
+ "unavailable"
505
+ ]
506
+ },
507
+ "message": {
508
+ "type": "string"
509
+ },
510
+ "recovery": {
511
+ "type": "string"
512
+ },
513
+ "retrySafe": {
514
+ "type": "boolean"
515
+ }
516
+ },
517
+ "required": [
518
+ "outcome",
519
+ "after",
520
+ "before",
521
+ "contract",
522
+ "operationId",
523
+ "targetMapPath",
524
+ "code",
525
+ "message",
526
+ "recovery",
527
+ "retrySafe"
528
+ ],
529
+ "additionalProperties": false
530
+ }
531
+ ]
532
+ }
533
+ },
534
+ "anyOf": [
535
+ {
536
+ "type": "object",
537
+ "properties": {
538
+ "contract": {
539
+ "type": "object",
540
+ "properties": {
541
+ "name": {
542
+ "type": "string",
543
+ "enum": ["unreal-editor-world-control"]
544
+ },
545
+ "version": {
546
+ "type": "object",
547
+ "properties": {
548
+ "major": {
549
+ "type": "number",
550
+ "enum": [1]
551
+ },
552
+ "minor": {
553
+ "type": "number",
554
+ "enum": [0]
555
+ }
556
+ },
557
+ "required": ["major", "minor"],
558
+ "additionalProperties": false
559
+ }
560
+ },
561
+ "required": ["name", "version"],
562
+ "additionalProperties": false
563
+ },
564
+ "operationId": {
565
+ "type": "string",
566
+ "allOf": [
567
+ {
568
+ "minLength": 1
569
+ },
570
+ {
571
+ "maxLength": 128
572
+ },
573
+ {
574
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
575
+ }
576
+ ]
577
+ },
578
+ "targetMapPath": {
579
+ "type": "string",
580
+ "allOf": [
581
+ {
582
+ "minLength": 1
583
+ },
584
+ {
585
+ "maxLength": 1024
586
+ },
587
+ {
588
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
589
+ },
590
+ {
591
+ "pattern": "^\\/Game\\/[A-Za-z0-9_./-]+$"
592
+ }
593
+ ]
594
+ },
595
+ "status": {
596
+ "type": "string",
597
+ "enum": ["pending", "running"]
598
+ }
599
+ },
600
+ "required": ["contract", "operationId", "targetMapPath", "status"],
601
+ "additionalProperties": false
602
+ },
603
+ {
604
+ "type": "object",
605
+ "properties": {
606
+ "contract": {
607
+ "type": "object",
608
+ "properties": {
609
+ "name": {
610
+ "type": "string",
611
+ "enum": ["unreal-editor-world-control"]
612
+ },
613
+ "version": {
614
+ "type": "object",
615
+ "properties": {
616
+ "major": {
617
+ "type": "number",
618
+ "enum": [1]
619
+ },
620
+ "minor": {
621
+ "type": "number",
622
+ "enum": [0]
623
+ }
624
+ },
625
+ "required": ["major", "minor"],
626
+ "additionalProperties": false
627
+ }
628
+ },
629
+ "required": ["name", "version"],
630
+ "additionalProperties": false
631
+ },
632
+ "operationId": {
633
+ "type": "string",
634
+ "allOf": [
635
+ {
636
+ "minLength": 1
637
+ },
638
+ {
639
+ "maxLength": 128
640
+ },
641
+ {
642
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
643
+ }
644
+ ]
645
+ },
646
+ "targetMapPath": {
647
+ "type": "string",
648
+ "allOf": [
649
+ {
650
+ "minLength": 1
651
+ },
652
+ {
653
+ "maxLength": 1024
654
+ },
655
+ {
656
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
657
+ },
658
+ {
659
+ "pattern": "^\\/Game\\/[A-Za-z0-9_./-]+$"
660
+ }
661
+ ]
662
+ },
663
+ "status": {
664
+ "type": "string",
665
+ "enum": ["completed"]
666
+ },
667
+ "result": {
668
+ "$ref": "#/$defs/EditorWorldOpenResponse"
669
+ }
670
+ },
671
+ "required": ["contract", "operationId", "targetMapPath", "status", "result"],
672
+ "additionalProperties": false
673
+ },
674
+ {
675
+ "type": "object",
676
+ "properties": {
677
+ "contract": {
678
+ "type": "object",
679
+ "properties": {
680
+ "name": {
681
+ "type": "string",
682
+ "enum": ["unreal-editor-world-control"]
683
+ },
684
+ "version": {
685
+ "type": "object",
686
+ "properties": {
687
+ "major": {
688
+ "type": "number",
689
+ "enum": [1]
690
+ },
691
+ "minor": {
692
+ "type": "number",
693
+ "enum": [0]
694
+ }
695
+ },
696
+ "required": ["major", "minor"],
697
+ "additionalProperties": false
698
+ }
699
+ },
700
+ "required": ["name", "version"],
701
+ "additionalProperties": false
702
+ },
703
+ "operationId": {
704
+ "type": "string",
705
+ "allOf": [
706
+ {
707
+ "minLength": 1
708
+ },
709
+ {
710
+ "maxLength": 128
711
+ },
712
+ {
713
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
714
+ }
715
+ ]
716
+ },
717
+ "targetMapPath": {
718
+ "type": "string",
719
+ "allOf": [
720
+ {
721
+ "minLength": 1
722
+ },
723
+ {
724
+ "maxLength": 1024
725
+ },
726
+ {
727
+ "pattern": "^\\/[A-Za-z0-9_./-]+$"
728
+ },
729
+ {
730
+ "pattern": "^\\/Game\\/[A-Za-z0-9_./-]+$"
731
+ }
732
+ ]
733
+ },
734
+ "status": {
735
+ "type": "string",
736
+ "enum": ["unavailable"]
737
+ },
738
+ "code": {
739
+ "type": "string",
740
+ "enum": ["invalid_request", "busy", "conflict", "unknown_operation"]
741
+ },
742
+ "message": {
743
+ "type": "string"
744
+ },
745
+ "recovery": {
746
+ "type": "string"
747
+ }
748
+ },
749
+ "required": [
750
+ "contract",
751
+ "operationId",
752
+ "targetMapPath",
753
+ "status",
754
+ "code",
755
+ "message",
756
+ "recovery"
757
+ ],
758
+ "additionalProperties": false
759
+ }
760
+ ]
761
+ }