@hyprune/schema 0.0.0-stage → 0.5.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 (78) hide show
  1. package/CHANGELOG.md +144 -0
  2. package/LICENSE +21 -0
  3. package/README.md +140 -2
  4. package/bin/validate.mjs +19 -0
  5. package/examples/extension.json +22 -0
  6. package/examples/ipc/error.json +11 -0
  7. package/examples/ipc/movement.set.request.json +8 -0
  8. package/examples/ipc/movement.set.response.json +7 -0
  9. package/examples/ipc/runtime.exit.request.json +6 -0
  10. package/examples/ipc/runtime.exit.response.json +7 -0
  11. package/examples/ipc/runtime.notice.notification.json +9 -0
  12. package/examples/ipc/session.hello.request.json +17 -0
  13. package/examples/ipc/session.hello.response.json +23 -0
  14. package/examples/ipc/session.ping.request.json +6 -0
  15. package/examples/ipc/session.ping.response.json +7 -0
  16. package/examples/ipc/session.revoked.notification.json +7 -0
  17. package/examples/ipc/shell.claim.request.json +10 -0
  18. package/examples/ipc/shell.claim.response.json +8 -0
  19. package/examples/ipc/shell.overlay.request.json +11 -0
  20. package/examples/ipc/shell.overlay.response.json +7 -0
  21. package/examples/ipc/shell.release.request.json +8 -0
  22. package/examples/ipc/shell.release.response.json +7 -0
  23. package/examples/ipc/state.delta.notification.json +18 -0
  24. package/examples/ipc/state.snapshot.request.json +8 -0
  25. package/examples/ipc/state.snapshot.response.json +37 -0
  26. package/examples/ipc/state.subscribe.request.json +10 -0
  27. package/examples/ipc/state.subscribe.response.json +38 -0
  28. package/examples/ipc/state.unsubscribe.request.json +8 -0
  29. package/examples/ipc/state.unsubscribe.response.json +7 -0
  30. package/examples/ipc/surface.focus.request.json +9 -0
  31. package/examples/ipc/surface.focus.response.json +7 -0
  32. package/examples/ipc/world.load.request.json +9 -0
  33. package/examples/ipc/world.load.response.json +7 -0
  34. package/examples/placement-input.json +169 -0
  35. package/examples/screen-type.json +24 -0
  36. package/examples/world.json +111 -0
  37. package/extensions/hud-style-manifest.schema.json +17 -0
  38. package/extensions/hud-style.schema.json +118 -0
  39. package/lib/validate.d.mts +37 -0
  40. package/lib/validate.mjs +221 -0
  41. package/package.json +57 -4
  42. package/v0/common.schema.json +85 -0
  43. package/v0/extension.schema.json +121 -0
  44. package/v0/ipc.schema.json +1725 -0
  45. package/v0/screen-type.schema.json +115 -0
  46. package/v0/world.schema.json +363 -0
  47. package/v0.10/ipc.schema.json +8811 -0
  48. package/v0.11/ipc.schema.json +8863 -0
  49. package/v0.12/ipc.schema.json +9541 -0
  50. package/v0.13/ipc.schema.json +10032 -0
  51. package/v0.14/ipc.schema.json +10127 -0
  52. package/v0.15/ipc.schema.json +10534 -0
  53. package/v0.16/ipc.schema.json +10550 -0
  54. package/v0.17/ipc.schema.json +10703 -0
  55. package/v0.18/ipc.schema.json +10801 -0
  56. package/v0.19/ipc.schema.json +11587 -0
  57. package/v0.2/common.schema.json +86 -0
  58. package/v0.2/ipc.schema.json +3570 -0
  59. package/v0.2/world.schema.json +363 -0
  60. package/v0.3/common.schema.json +477 -0
  61. package/v0.3/ipc.schema.json +4044 -0
  62. package/v0.3/world.schema.json +390 -0
  63. package/v0.4/common.schema.json +477 -0
  64. package/v0.4/ipc.schema.json +5561 -0
  65. package/v0.4/world.schema.json +496 -0
  66. package/v0.5/common.schema.json +477 -0
  67. package/v0.5/ipc.schema.json +5781 -0
  68. package/v0.5/world.schema.json +790 -0
  69. package/v0.6/common.schema.json +478 -0
  70. package/v0.6/input.schema.json +519 -0
  71. package/v0.6/ipc.schema.json +7375 -0
  72. package/v0.6/world.schema.json +1062 -0
  73. package/v0.7/common.schema.json +478 -0
  74. package/v0.7/ipc.schema.json +7905 -0
  75. package/v0.7/world.schema.json +1062 -0
  76. package/v0.8/ipc.schema.json +7945 -0
  77. package/v0.9/input.schema.json +518 -0
  78. package/v0.9/ipc.schema.json +8613 -0
@@ -0,0 +1,3570 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hyprune.com/schema/v0.2/ipc.schema.json",
4
+ "title": "Hyprune 0.2 ipc",
5
+ "oneOf": [
6
+ {
7
+ "$ref": "#/$defs/request"
8
+ },
9
+ {
10
+ "$ref": "#/$defs/response"
11
+ },
12
+ {
13
+ "$ref": "#/$defs/notification"
14
+ },
15
+ {
16
+ "$ref": "#/$defs/error"
17
+ }
18
+ ],
19
+ "$defs": {
20
+ "state": {
21
+ "type": "object",
22
+ "properties": {
23
+ "runtime": {
24
+ "type": "object",
25
+ "properties": {
26
+ "active": {
27
+ "type": "boolean"
28
+ },
29
+ "outputs": {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "string",
33
+ "minLength": 1,
34
+ "maxLength": 128
35
+ },
36
+ "minItems": 0,
37
+ "uniqueItems": true
38
+ }
39
+ },
40
+ "required": [
41
+ "active",
42
+ "outputs"
43
+ ],
44
+ "additionalProperties": false
45
+ },
46
+ "world": {
47
+ "anyOf": [
48
+ {
49
+ "type": "null"
50
+ },
51
+ {
52
+ "type": "object",
53
+ "properties": {
54
+ "id": {
55
+ "$ref": "common.schema.json#/$defs/id"
56
+ },
57
+ "spawnId": {
58
+ "$ref": "common.schema.json#/$defs/slug"
59
+ }
60
+ },
61
+ "required": [
62
+ "id",
63
+ "spawnId"
64
+ ],
65
+ "additionalProperties": false
66
+ }
67
+ ]
68
+ },
69
+ "surfaces": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "properties": {
74
+ "id": {
75
+ "type": "string",
76
+ "minLength": 1,
77
+ "maxLength": 128
78
+ },
79
+ "kind": {
80
+ "enum": [
81
+ "window",
82
+ "workspace",
83
+ "layer",
84
+ "web",
85
+ "custom"
86
+ ]
87
+ },
88
+ "title": {
89
+ "type": "string",
90
+ "minLength": 0,
91
+ "maxLength": 512
92
+ },
93
+ "logicalSize": {
94
+ "type": "array",
95
+ "items": {
96
+ "type": "number",
97
+ "exclusiveMinimum": 0
98
+ },
99
+ "minItems": 2,
100
+ "maxItems": 2
101
+ },
102
+ "focused": {
103
+ "type": "boolean"
104
+ }
105
+ },
106
+ "required": [
107
+ "id",
108
+ "kind",
109
+ "title",
110
+ "logicalSize",
111
+ "focused"
112
+ ],
113
+ "additionalProperties": false
114
+ },
115
+ "minItems": 0
116
+ },
117
+ "movement": {
118
+ "type": "object",
119
+ "properties": {
120
+ "modeId": {
121
+ "$ref": "common.schema.json#/$defs/id"
122
+ },
123
+ "position": {
124
+ "type": "array",
125
+ "items": {
126
+ "type": "number"
127
+ },
128
+ "minItems": 3,
129
+ "maxItems": 3
130
+ },
131
+ "orientation": {
132
+ "type": "array",
133
+ "items": {
134
+ "type": "number"
135
+ },
136
+ "minItems": 4,
137
+ "maxItems": 4
138
+ }
139
+ },
140
+ "required": [
141
+ "modeId",
142
+ "position",
143
+ "orientation"
144
+ ],
145
+ "additionalProperties": false
146
+ },
147
+ "shell": {
148
+ "type": "object",
149
+ "properties": {
150
+ "leases": {
151
+ "type": "array",
152
+ "items": {
153
+ "type": "object",
154
+ "properties": {
155
+ "id": {
156
+ "type": "string",
157
+ "minLength": 1,
158
+ "maxLength": 128
159
+ },
160
+ "outputs": {
161
+ "type": "array",
162
+ "items": {
163
+ "type": "string",
164
+ "minLength": 1,
165
+ "maxLength": 128
166
+ },
167
+ "minItems": 1,
168
+ "uniqueItems": true
169
+ },
170
+ "overlays": {
171
+ "type": "array",
172
+ "items": {
173
+ "type": "object",
174
+ "properties": {
175
+ "outputId": {
176
+ "type": "string",
177
+ "minLength": 1,
178
+ "maxLength": 128
179
+ },
180
+ "visible": {
181
+ "type": "boolean"
182
+ },
183
+ "exclusiveInput": {
184
+ "type": "boolean"
185
+ }
186
+ },
187
+ "required": [
188
+ "outputId",
189
+ "visible",
190
+ "exclusiveInput"
191
+ ],
192
+ "additionalProperties": false
193
+ },
194
+ "minItems": 0
195
+ }
196
+ },
197
+ "required": [
198
+ "id",
199
+ "outputs",
200
+ "overlays"
201
+ ],
202
+ "additionalProperties": false
203
+ },
204
+ "minItems": 0
205
+ }
206
+ },
207
+ "required": [
208
+ "leases"
209
+ ],
210
+ "additionalProperties": false
211
+ },
212
+ "location": {
213
+ "$ref": "#/$defs/location"
214
+ },
215
+ "integrations": {
216
+ "$ref": "#/$defs/integrations"
217
+ }
218
+ },
219
+ "required": [
220
+ "runtime",
221
+ "world",
222
+ "surfaces",
223
+ "movement",
224
+ "shell",
225
+ "location",
226
+ "integrations"
227
+ ],
228
+ "additionalProperties": false
229
+ },
230
+ "snapshot": {
231
+ "type": "object",
232
+ "properties": {
233
+ "sessionId": {
234
+ "type": "string",
235
+ "minLength": 1,
236
+ "maxLength": 128
237
+ },
238
+ "revision": {
239
+ "$ref": "common.schema.json#/$defs/revision"
240
+ },
241
+ "state": {
242
+ "$ref": "#/$defs/state"
243
+ }
244
+ },
245
+ "required": [
246
+ "sessionId",
247
+ "revision",
248
+ "state"
249
+ ],
250
+ "additionalProperties": false
251
+ },
252
+ "session.hello.params": {
253
+ "type": "object",
254
+ "properties": {
255
+ "protocols": {
256
+ "type": "array",
257
+ "items": {
258
+ "type": "string",
259
+ "minLength": 1,
260
+ "maxLength": 256
261
+ },
262
+ "minItems": 1,
263
+ "uniqueItems": true
264
+ },
265
+ "client": {
266
+ "type": "object",
267
+ "properties": {
268
+ "id": {
269
+ "$ref": "common.schema.json#/$defs/id"
270
+ },
271
+ "name": {
272
+ "type": "string",
273
+ "minLength": 1,
274
+ "maxLength": 256
275
+ }
276
+ },
277
+ "required": [
278
+ "id",
279
+ "name"
280
+ ],
281
+ "additionalProperties": false
282
+ },
283
+ "capabilities": {
284
+ "type": "array",
285
+ "items": {
286
+ "$ref": "common.schema.json#/$defs/capability"
287
+ },
288
+ "minItems": 0,
289
+ "uniqueItems": true
290
+ },
291
+ "token": {
292
+ "type": "string",
293
+ "minLength": 64,
294
+ "maxLength": 64,
295
+ "pattern": "^[a-f0-9]{64}$"
296
+ }
297
+ },
298
+ "required": [
299
+ "protocols",
300
+ "client",
301
+ "capabilities"
302
+ ],
303
+ "additionalProperties": false
304
+ },
305
+ "session.hello.result": {
306
+ "type": "object",
307
+ "properties": {
308
+ "protocol": {
309
+ "const": "0.2"
310
+ },
311
+ "sessionId": {
312
+ "type": "string",
313
+ "minLength": 1,
314
+ "maxLength": 128
315
+ },
316
+ "capabilities": {
317
+ "type": "array",
318
+ "items": {
319
+ "$ref": "common.schema.json#/$defs/capability"
320
+ },
321
+ "minItems": 0,
322
+ "uniqueItems": true
323
+ },
324
+ "methods": {
325
+ "type": "array",
326
+ "items": {
327
+ "enum": [
328
+ "session.hello",
329
+ "session.ping",
330
+ "state.subscribe",
331
+ "state.snapshot",
332
+ "state.unsubscribe",
333
+ "world.load",
334
+ "surface.focus",
335
+ "movement.set",
336
+ "shell.claim",
337
+ "shell.release",
338
+ "shell.overlay",
339
+ "runtime.exit",
340
+ "camera.get",
341
+ "camera.set",
342
+ "waypoint.set",
343
+ "waypoint.clear",
344
+ "route.set",
345
+ "route.clear",
346
+ "travel.start",
347
+ "travel.cancel",
348
+ "autodrive.start",
349
+ "autodrive.stop",
350
+ "ui.open",
351
+ "ui.close",
352
+ "data.publish",
353
+ "data.remove"
354
+ ]
355
+ },
356
+ "minItems": 0,
357
+ "uniqueItems": true
358
+ },
359
+ "events": {
360
+ "type": "array",
361
+ "items": {
362
+ "enum": [
363
+ "state.delta",
364
+ "runtime.notice",
365
+ "session.revoked",
366
+ "location.transition",
367
+ "ui.opened",
368
+ "ui.closed",
369
+ "data.updated"
370
+ ]
371
+ },
372
+ "minItems": 0,
373
+ "uniqueItems": true
374
+ }
375
+ },
376
+ "required": [
377
+ "protocol",
378
+ "sessionId",
379
+ "capabilities",
380
+ "methods",
381
+ "events"
382
+ ],
383
+ "additionalProperties": false
384
+ },
385
+ "session.hello.request": {
386
+ "type": "object",
387
+ "properties": {
388
+ "jsonrpc": {
389
+ "const": "2.0"
390
+ },
391
+ "id": {
392
+ "type": "string",
393
+ "minLength": 1,
394
+ "maxLength": 128
395
+ },
396
+ "method": {
397
+ "const": "session.hello"
398
+ },
399
+ "params": {
400
+ "$ref": "#/$defs/session.hello.params"
401
+ }
402
+ },
403
+ "required": [
404
+ "jsonrpc",
405
+ "id",
406
+ "method",
407
+ "params"
408
+ ],
409
+ "additionalProperties": false
410
+ },
411
+ "session.hello.response": {
412
+ "type": "object",
413
+ "properties": {
414
+ "jsonrpc": {
415
+ "const": "2.0"
416
+ },
417
+ "id": {
418
+ "type": "string",
419
+ "minLength": 1,
420
+ "maxLength": 128
421
+ },
422
+ "result": {
423
+ "$ref": "#/$defs/session.hello.result"
424
+ }
425
+ },
426
+ "required": [
427
+ "jsonrpc",
428
+ "id",
429
+ "result"
430
+ ],
431
+ "additionalProperties": false
432
+ },
433
+ "session.ping.params": {
434
+ "type": "object",
435
+ "properties": {},
436
+ "required": [],
437
+ "additionalProperties": false
438
+ },
439
+ "session.ping.result": {
440
+ "type": "object",
441
+ "properties": {
442
+ "monotonicMs": {
443
+ "$ref": "common.schema.json#/$defs/revision"
444
+ }
445
+ },
446
+ "required": [
447
+ "monotonicMs"
448
+ ],
449
+ "additionalProperties": false
450
+ },
451
+ "session.ping.request": {
452
+ "type": "object",
453
+ "properties": {
454
+ "jsonrpc": {
455
+ "const": "2.0"
456
+ },
457
+ "id": {
458
+ "type": "string",
459
+ "minLength": 1,
460
+ "maxLength": 128
461
+ },
462
+ "method": {
463
+ "const": "session.ping"
464
+ },
465
+ "params": {
466
+ "$ref": "#/$defs/session.ping.params"
467
+ }
468
+ },
469
+ "required": [
470
+ "jsonrpc",
471
+ "id",
472
+ "method",
473
+ "params"
474
+ ],
475
+ "additionalProperties": false
476
+ },
477
+ "session.ping.response": {
478
+ "type": "object",
479
+ "properties": {
480
+ "jsonrpc": {
481
+ "const": "2.0"
482
+ },
483
+ "id": {
484
+ "type": "string",
485
+ "minLength": 1,
486
+ "maxLength": 128
487
+ },
488
+ "result": {
489
+ "$ref": "#/$defs/session.ping.result"
490
+ }
491
+ },
492
+ "required": [
493
+ "jsonrpc",
494
+ "id",
495
+ "result"
496
+ ],
497
+ "additionalProperties": false
498
+ },
499
+ "state.subscribe.params": {
500
+ "type": "object",
501
+ "properties": {
502
+ "topics": {
503
+ "const": [
504
+ "state"
505
+ ]
506
+ }
507
+ },
508
+ "required": [
509
+ "topics"
510
+ ],
511
+ "additionalProperties": false
512
+ },
513
+ "state.subscribe.result": {
514
+ "type": "object",
515
+ "properties": {
516
+ "subscriptionId": {
517
+ "type": "string",
518
+ "minLength": 1,
519
+ "maxLength": 128
520
+ },
521
+ "snapshot": {
522
+ "$ref": "#/$defs/snapshot"
523
+ }
524
+ },
525
+ "required": [
526
+ "subscriptionId",
527
+ "snapshot"
528
+ ],
529
+ "additionalProperties": false
530
+ },
531
+ "state.subscribe.request": {
532
+ "type": "object",
533
+ "properties": {
534
+ "jsonrpc": {
535
+ "const": "2.0"
536
+ },
537
+ "id": {
538
+ "type": "string",
539
+ "minLength": 1,
540
+ "maxLength": 128
541
+ },
542
+ "method": {
543
+ "const": "state.subscribe"
544
+ },
545
+ "params": {
546
+ "$ref": "#/$defs/state.subscribe.params"
547
+ }
548
+ },
549
+ "required": [
550
+ "jsonrpc",
551
+ "id",
552
+ "method",
553
+ "params"
554
+ ],
555
+ "additionalProperties": false
556
+ },
557
+ "state.subscribe.response": {
558
+ "type": "object",
559
+ "properties": {
560
+ "jsonrpc": {
561
+ "const": "2.0"
562
+ },
563
+ "id": {
564
+ "type": "string",
565
+ "minLength": 1,
566
+ "maxLength": 128
567
+ },
568
+ "result": {
569
+ "$ref": "#/$defs/state.subscribe.result"
570
+ }
571
+ },
572
+ "required": [
573
+ "jsonrpc",
574
+ "id",
575
+ "result"
576
+ ],
577
+ "additionalProperties": false
578
+ },
579
+ "state.snapshot.params": {
580
+ "type": "object",
581
+ "properties": {
582
+ "subscriptionId": {
583
+ "type": "string",
584
+ "minLength": 1,
585
+ "maxLength": 128
586
+ }
587
+ },
588
+ "required": [
589
+ "subscriptionId"
590
+ ],
591
+ "additionalProperties": false
592
+ },
593
+ "state.snapshot.result": {
594
+ "type": "object",
595
+ "properties": {
596
+ "snapshot": {
597
+ "$ref": "#/$defs/snapshot"
598
+ }
599
+ },
600
+ "required": [
601
+ "snapshot"
602
+ ],
603
+ "additionalProperties": false
604
+ },
605
+ "state.snapshot.request": {
606
+ "type": "object",
607
+ "properties": {
608
+ "jsonrpc": {
609
+ "const": "2.0"
610
+ },
611
+ "id": {
612
+ "type": "string",
613
+ "minLength": 1,
614
+ "maxLength": 128
615
+ },
616
+ "method": {
617
+ "const": "state.snapshot"
618
+ },
619
+ "params": {
620
+ "$ref": "#/$defs/state.snapshot.params"
621
+ }
622
+ },
623
+ "required": [
624
+ "jsonrpc",
625
+ "id",
626
+ "method",
627
+ "params"
628
+ ],
629
+ "additionalProperties": false
630
+ },
631
+ "state.snapshot.response": {
632
+ "type": "object",
633
+ "properties": {
634
+ "jsonrpc": {
635
+ "const": "2.0"
636
+ },
637
+ "id": {
638
+ "type": "string",
639
+ "minLength": 1,
640
+ "maxLength": 128
641
+ },
642
+ "result": {
643
+ "$ref": "#/$defs/state.snapshot.result"
644
+ }
645
+ },
646
+ "required": [
647
+ "jsonrpc",
648
+ "id",
649
+ "result"
650
+ ],
651
+ "additionalProperties": false
652
+ },
653
+ "state.unsubscribe.params": {
654
+ "type": "object",
655
+ "properties": {
656
+ "subscriptionId": {
657
+ "type": "string",
658
+ "minLength": 1,
659
+ "maxLength": 128
660
+ }
661
+ },
662
+ "required": [
663
+ "subscriptionId"
664
+ ],
665
+ "additionalProperties": false
666
+ },
667
+ "state.unsubscribe.result": {
668
+ "type": "object",
669
+ "properties": {
670
+ "ok": {
671
+ "const": true
672
+ }
673
+ },
674
+ "required": [
675
+ "ok"
676
+ ],
677
+ "additionalProperties": false
678
+ },
679
+ "state.unsubscribe.request": {
680
+ "type": "object",
681
+ "properties": {
682
+ "jsonrpc": {
683
+ "const": "2.0"
684
+ },
685
+ "id": {
686
+ "type": "string",
687
+ "minLength": 1,
688
+ "maxLength": 128
689
+ },
690
+ "method": {
691
+ "const": "state.unsubscribe"
692
+ },
693
+ "params": {
694
+ "$ref": "#/$defs/state.unsubscribe.params"
695
+ }
696
+ },
697
+ "required": [
698
+ "jsonrpc",
699
+ "id",
700
+ "method",
701
+ "params"
702
+ ],
703
+ "additionalProperties": false
704
+ },
705
+ "state.unsubscribe.response": {
706
+ "type": "object",
707
+ "properties": {
708
+ "jsonrpc": {
709
+ "const": "2.0"
710
+ },
711
+ "id": {
712
+ "type": "string",
713
+ "minLength": 1,
714
+ "maxLength": 128
715
+ },
716
+ "result": {
717
+ "$ref": "#/$defs/state.unsubscribe.result"
718
+ }
719
+ },
720
+ "required": [
721
+ "jsonrpc",
722
+ "id",
723
+ "result"
724
+ ],
725
+ "additionalProperties": false
726
+ },
727
+ "world.load.params": {
728
+ "type": "object",
729
+ "properties": {
730
+ "worldId": {
731
+ "$ref": "common.schema.json#/$defs/id"
732
+ },
733
+ "spawnId": {
734
+ "$ref": "common.schema.json#/$defs/slug"
735
+ }
736
+ },
737
+ "required": [
738
+ "worldId"
739
+ ],
740
+ "additionalProperties": false
741
+ },
742
+ "world.load.result": {
743
+ "type": "object",
744
+ "properties": {
745
+ "revision": {
746
+ "$ref": "common.schema.json#/$defs/revision"
747
+ }
748
+ },
749
+ "required": [
750
+ "revision"
751
+ ],
752
+ "additionalProperties": false
753
+ },
754
+ "world.load.request": {
755
+ "type": "object",
756
+ "properties": {
757
+ "jsonrpc": {
758
+ "const": "2.0"
759
+ },
760
+ "id": {
761
+ "type": "string",
762
+ "minLength": 1,
763
+ "maxLength": 128
764
+ },
765
+ "method": {
766
+ "const": "world.load"
767
+ },
768
+ "params": {
769
+ "$ref": "#/$defs/world.load.params"
770
+ }
771
+ },
772
+ "required": [
773
+ "jsonrpc",
774
+ "id",
775
+ "method",
776
+ "params"
777
+ ],
778
+ "additionalProperties": false
779
+ },
780
+ "world.load.response": {
781
+ "type": "object",
782
+ "properties": {
783
+ "jsonrpc": {
784
+ "const": "2.0"
785
+ },
786
+ "id": {
787
+ "type": "string",
788
+ "minLength": 1,
789
+ "maxLength": 128
790
+ },
791
+ "result": {
792
+ "$ref": "#/$defs/world.load.result"
793
+ }
794
+ },
795
+ "required": [
796
+ "jsonrpc",
797
+ "id",
798
+ "result"
799
+ ],
800
+ "additionalProperties": false
801
+ },
802
+ "surface.focus.params": {
803
+ "type": "object",
804
+ "properties": {
805
+ "surfaceId": {
806
+ "type": "string",
807
+ "minLength": 1,
808
+ "maxLength": 128
809
+ },
810
+ "intent": {
811
+ "enum": [
812
+ "pointer",
813
+ "keyboard"
814
+ ]
815
+ }
816
+ },
817
+ "required": [
818
+ "surfaceId",
819
+ "intent"
820
+ ],
821
+ "additionalProperties": false
822
+ },
823
+ "surface.focus.result": {
824
+ "type": "object",
825
+ "properties": {
826
+ "revision": {
827
+ "$ref": "common.schema.json#/$defs/revision"
828
+ }
829
+ },
830
+ "required": [
831
+ "revision"
832
+ ],
833
+ "additionalProperties": false
834
+ },
835
+ "surface.focus.request": {
836
+ "type": "object",
837
+ "properties": {
838
+ "jsonrpc": {
839
+ "const": "2.0"
840
+ },
841
+ "id": {
842
+ "type": "string",
843
+ "minLength": 1,
844
+ "maxLength": 128
845
+ },
846
+ "method": {
847
+ "const": "surface.focus"
848
+ },
849
+ "params": {
850
+ "$ref": "#/$defs/surface.focus.params"
851
+ }
852
+ },
853
+ "required": [
854
+ "jsonrpc",
855
+ "id",
856
+ "method",
857
+ "params"
858
+ ],
859
+ "additionalProperties": false
860
+ },
861
+ "surface.focus.response": {
862
+ "type": "object",
863
+ "properties": {
864
+ "jsonrpc": {
865
+ "const": "2.0"
866
+ },
867
+ "id": {
868
+ "type": "string",
869
+ "minLength": 1,
870
+ "maxLength": 128
871
+ },
872
+ "result": {
873
+ "$ref": "#/$defs/surface.focus.result"
874
+ }
875
+ },
876
+ "required": [
877
+ "jsonrpc",
878
+ "id",
879
+ "result"
880
+ ],
881
+ "additionalProperties": false
882
+ },
883
+ "movement.set.params": {
884
+ "type": "object",
885
+ "properties": {
886
+ "modeId": {
887
+ "$ref": "common.schema.json#/$defs/id"
888
+ }
889
+ },
890
+ "required": [
891
+ "modeId"
892
+ ],
893
+ "additionalProperties": false
894
+ },
895
+ "movement.set.result": {
896
+ "type": "object",
897
+ "properties": {
898
+ "revision": {
899
+ "$ref": "common.schema.json#/$defs/revision"
900
+ }
901
+ },
902
+ "required": [
903
+ "revision"
904
+ ],
905
+ "additionalProperties": false
906
+ },
907
+ "movement.set.request": {
908
+ "type": "object",
909
+ "properties": {
910
+ "jsonrpc": {
911
+ "const": "2.0"
912
+ },
913
+ "id": {
914
+ "type": "string",
915
+ "minLength": 1,
916
+ "maxLength": 128
917
+ },
918
+ "method": {
919
+ "const": "movement.set"
920
+ },
921
+ "params": {
922
+ "$ref": "#/$defs/movement.set.params"
923
+ }
924
+ },
925
+ "required": [
926
+ "jsonrpc",
927
+ "id",
928
+ "method",
929
+ "params"
930
+ ],
931
+ "additionalProperties": false
932
+ },
933
+ "movement.set.response": {
934
+ "type": "object",
935
+ "properties": {
936
+ "jsonrpc": {
937
+ "const": "2.0"
938
+ },
939
+ "id": {
940
+ "type": "string",
941
+ "minLength": 1,
942
+ "maxLength": 128
943
+ },
944
+ "result": {
945
+ "$ref": "#/$defs/movement.set.result"
946
+ }
947
+ },
948
+ "required": [
949
+ "jsonrpc",
950
+ "id",
951
+ "result"
952
+ ],
953
+ "additionalProperties": false
954
+ },
955
+ "shell.claim.params": {
956
+ "type": "object",
957
+ "properties": {
958
+ "outputs": {
959
+ "type": "array",
960
+ "items": {
961
+ "type": "string",
962
+ "minLength": 1,
963
+ "maxLength": 128
964
+ },
965
+ "minItems": 1,
966
+ "uniqueItems": true
967
+ }
968
+ },
969
+ "required": [
970
+ "outputs"
971
+ ],
972
+ "additionalProperties": false
973
+ },
974
+ "shell.claim.result": {
975
+ "type": "object",
976
+ "properties": {
977
+ "leaseId": {
978
+ "type": "string",
979
+ "minLength": 1,
980
+ "maxLength": 128
981
+ },
982
+ "revision": {
983
+ "$ref": "common.schema.json#/$defs/revision"
984
+ }
985
+ },
986
+ "required": [
987
+ "leaseId",
988
+ "revision"
989
+ ],
990
+ "additionalProperties": false
991
+ },
992
+ "shell.claim.request": {
993
+ "type": "object",
994
+ "properties": {
995
+ "jsonrpc": {
996
+ "const": "2.0"
997
+ },
998
+ "id": {
999
+ "type": "string",
1000
+ "minLength": 1,
1001
+ "maxLength": 128
1002
+ },
1003
+ "method": {
1004
+ "const": "shell.claim"
1005
+ },
1006
+ "params": {
1007
+ "$ref": "#/$defs/shell.claim.params"
1008
+ }
1009
+ },
1010
+ "required": [
1011
+ "jsonrpc",
1012
+ "id",
1013
+ "method",
1014
+ "params"
1015
+ ],
1016
+ "additionalProperties": false
1017
+ },
1018
+ "shell.claim.response": {
1019
+ "type": "object",
1020
+ "properties": {
1021
+ "jsonrpc": {
1022
+ "const": "2.0"
1023
+ },
1024
+ "id": {
1025
+ "type": "string",
1026
+ "minLength": 1,
1027
+ "maxLength": 128
1028
+ },
1029
+ "result": {
1030
+ "$ref": "#/$defs/shell.claim.result"
1031
+ }
1032
+ },
1033
+ "required": [
1034
+ "jsonrpc",
1035
+ "id",
1036
+ "result"
1037
+ ],
1038
+ "additionalProperties": false
1039
+ },
1040
+ "shell.release.params": {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "leaseId": {
1044
+ "type": "string",
1045
+ "minLength": 1,
1046
+ "maxLength": 128
1047
+ }
1048
+ },
1049
+ "required": [
1050
+ "leaseId"
1051
+ ],
1052
+ "additionalProperties": false
1053
+ },
1054
+ "shell.release.result": {
1055
+ "type": "object",
1056
+ "properties": {
1057
+ "revision": {
1058
+ "$ref": "common.schema.json#/$defs/revision"
1059
+ }
1060
+ },
1061
+ "required": [
1062
+ "revision"
1063
+ ],
1064
+ "additionalProperties": false
1065
+ },
1066
+ "shell.release.request": {
1067
+ "type": "object",
1068
+ "properties": {
1069
+ "jsonrpc": {
1070
+ "const": "2.0"
1071
+ },
1072
+ "id": {
1073
+ "type": "string",
1074
+ "minLength": 1,
1075
+ "maxLength": 128
1076
+ },
1077
+ "method": {
1078
+ "const": "shell.release"
1079
+ },
1080
+ "params": {
1081
+ "$ref": "#/$defs/shell.release.params"
1082
+ }
1083
+ },
1084
+ "required": [
1085
+ "jsonrpc",
1086
+ "id",
1087
+ "method",
1088
+ "params"
1089
+ ],
1090
+ "additionalProperties": false
1091
+ },
1092
+ "shell.release.response": {
1093
+ "type": "object",
1094
+ "properties": {
1095
+ "jsonrpc": {
1096
+ "const": "2.0"
1097
+ },
1098
+ "id": {
1099
+ "type": "string",
1100
+ "minLength": 1,
1101
+ "maxLength": 128
1102
+ },
1103
+ "result": {
1104
+ "$ref": "#/$defs/shell.release.result"
1105
+ }
1106
+ },
1107
+ "required": [
1108
+ "jsonrpc",
1109
+ "id",
1110
+ "result"
1111
+ ],
1112
+ "additionalProperties": false
1113
+ },
1114
+ "shell.overlay.params": {
1115
+ "type": "object",
1116
+ "properties": {
1117
+ "leaseId": {
1118
+ "type": "string",
1119
+ "minLength": 1,
1120
+ "maxLength": 128
1121
+ },
1122
+ "outputId": {
1123
+ "type": "string",
1124
+ "minLength": 1,
1125
+ "maxLength": 128
1126
+ },
1127
+ "visible": {
1128
+ "type": "boolean"
1129
+ },
1130
+ "exclusiveInput": {
1131
+ "type": "boolean"
1132
+ }
1133
+ },
1134
+ "required": [
1135
+ "leaseId",
1136
+ "outputId",
1137
+ "visible",
1138
+ "exclusiveInput"
1139
+ ],
1140
+ "additionalProperties": false
1141
+ },
1142
+ "shell.overlay.result": {
1143
+ "type": "object",
1144
+ "properties": {
1145
+ "revision": {
1146
+ "$ref": "common.schema.json#/$defs/revision"
1147
+ }
1148
+ },
1149
+ "required": [
1150
+ "revision"
1151
+ ],
1152
+ "additionalProperties": false
1153
+ },
1154
+ "shell.overlay.request": {
1155
+ "type": "object",
1156
+ "properties": {
1157
+ "jsonrpc": {
1158
+ "const": "2.0"
1159
+ },
1160
+ "id": {
1161
+ "type": "string",
1162
+ "minLength": 1,
1163
+ "maxLength": 128
1164
+ },
1165
+ "method": {
1166
+ "const": "shell.overlay"
1167
+ },
1168
+ "params": {
1169
+ "$ref": "#/$defs/shell.overlay.params"
1170
+ }
1171
+ },
1172
+ "required": [
1173
+ "jsonrpc",
1174
+ "id",
1175
+ "method",
1176
+ "params"
1177
+ ],
1178
+ "additionalProperties": false
1179
+ },
1180
+ "shell.overlay.response": {
1181
+ "type": "object",
1182
+ "properties": {
1183
+ "jsonrpc": {
1184
+ "const": "2.0"
1185
+ },
1186
+ "id": {
1187
+ "type": "string",
1188
+ "minLength": 1,
1189
+ "maxLength": 128
1190
+ },
1191
+ "result": {
1192
+ "$ref": "#/$defs/shell.overlay.result"
1193
+ }
1194
+ },
1195
+ "required": [
1196
+ "jsonrpc",
1197
+ "id",
1198
+ "result"
1199
+ ],
1200
+ "additionalProperties": false
1201
+ },
1202
+ "runtime.exit.params": {
1203
+ "type": "object",
1204
+ "properties": {},
1205
+ "required": [],
1206
+ "additionalProperties": false
1207
+ },
1208
+ "runtime.exit.result": {
1209
+ "type": "object",
1210
+ "properties": {
1211
+ "revision": {
1212
+ "$ref": "common.schema.json#/$defs/revision"
1213
+ }
1214
+ },
1215
+ "required": [
1216
+ "revision"
1217
+ ],
1218
+ "additionalProperties": false
1219
+ },
1220
+ "runtime.exit.request": {
1221
+ "type": "object",
1222
+ "properties": {
1223
+ "jsonrpc": {
1224
+ "const": "2.0"
1225
+ },
1226
+ "id": {
1227
+ "type": "string",
1228
+ "minLength": 1,
1229
+ "maxLength": 128
1230
+ },
1231
+ "method": {
1232
+ "const": "runtime.exit"
1233
+ },
1234
+ "params": {
1235
+ "$ref": "#/$defs/runtime.exit.params"
1236
+ }
1237
+ },
1238
+ "required": [
1239
+ "jsonrpc",
1240
+ "id",
1241
+ "method",
1242
+ "params"
1243
+ ],
1244
+ "additionalProperties": false
1245
+ },
1246
+ "runtime.exit.response": {
1247
+ "type": "object",
1248
+ "properties": {
1249
+ "jsonrpc": {
1250
+ "const": "2.0"
1251
+ },
1252
+ "id": {
1253
+ "type": "string",
1254
+ "minLength": 1,
1255
+ "maxLength": 128
1256
+ },
1257
+ "result": {
1258
+ "$ref": "#/$defs/runtime.exit.result"
1259
+ }
1260
+ },
1261
+ "required": [
1262
+ "jsonrpc",
1263
+ "id",
1264
+ "result"
1265
+ ],
1266
+ "additionalProperties": false
1267
+ },
1268
+ "state.delta.notification": {
1269
+ "type": "object",
1270
+ "properties": {
1271
+ "jsonrpc": {
1272
+ "const": "2.0"
1273
+ },
1274
+ "method": {
1275
+ "const": "state.delta"
1276
+ },
1277
+ "params": {
1278
+ "type": "object",
1279
+ "properties": {
1280
+ "subscriptionId": {
1281
+ "type": "string",
1282
+ "minLength": 1,
1283
+ "maxLength": 128
1284
+ },
1285
+ "sessionId": {
1286
+ "type": "string",
1287
+ "minLength": 1,
1288
+ "maxLength": 128
1289
+ },
1290
+ "baseRevision": {
1291
+ "$ref": "common.schema.json#/$defs/revision"
1292
+ },
1293
+ "revision": {
1294
+ "$ref": "common.schema.json#/$defs/revision"
1295
+ },
1296
+ "changes": {
1297
+ "type": "object",
1298
+ "properties": {
1299
+ "runtime": {
1300
+ "type": "object",
1301
+ "properties": {
1302
+ "active": {
1303
+ "type": "boolean"
1304
+ },
1305
+ "outputs": {
1306
+ "type": "array",
1307
+ "items": {
1308
+ "type": "string",
1309
+ "minLength": 1,
1310
+ "maxLength": 128
1311
+ },
1312
+ "minItems": 0,
1313
+ "uniqueItems": true
1314
+ }
1315
+ },
1316
+ "required": [
1317
+ "active",
1318
+ "outputs"
1319
+ ],
1320
+ "additionalProperties": false
1321
+ },
1322
+ "world": {
1323
+ "anyOf": [
1324
+ {
1325
+ "type": "null"
1326
+ },
1327
+ {
1328
+ "type": "object",
1329
+ "properties": {
1330
+ "id": {
1331
+ "$ref": "common.schema.json#/$defs/id"
1332
+ },
1333
+ "spawnId": {
1334
+ "$ref": "common.schema.json#/$defs/slug"
1335
+ }
1336
+ },
1337
+ "required": [
1338
+ "id",
1339
+ "spawnId"
1340
+ ],
1341
+ "additionalProperties": false
1342
+ }
1343
+ ]
1344
+ },
1345
+ "surfaces": {
1346
+ "type": "array",
1347
+ "items": {
1348
+ "type": "object",
1349
+ "properties": {
1350
+ "id": {
1351
+ "type": "string",
1352
+ "minLength": 1,
1353
+ "maxLength": 128
1354
+ },
1355
+ "kind": {
1356
+ "enum": [
1357
+ "window",
1358
+ "workspace",
1359
+ "layer",
1360
+ "web",
1361
+ "custom"
1362
+ ]
1363
+ },
1364
+ "title": {
1365
+ "type": "string",
1366
+ "minLength": 0,
1367
+ "maxLength": 512
1368
+ },
1369
+ "logicalSize": {
1370
+ "type": "array",
1371
+ "items": {
1372
+ "type": "number",
1373
+ "exclusiveMinimum": 0
1374
+ },
1375
+ "minItems": 2,
1376
+ "maxItems": 2
1377
+ },
1378
+ "focused": {
1379
+ "type": "boolean"
1380
+ }
1381
+ },
1382
+ "required": [
1383
+ "id",
1384
+ "kind",
1385
+ "title",
1386
+ "logicalSize",
1387
+ "focused"
1388
+ ],
1389
+ "additionalProperties": false
1390
+ },
1391
+ "minItems": 0
1392
+ },
1393
+ "movement": {
1394
+ "type": "object",
1395
+ "properties": {
1396
+ "modeId": {
1397
+ "$ref": "common.schema.json#/$defs/id"
1398
+ },
1399
+ "position": {
1400
+ "type": "array",
1401
+ "items": {
1402
+ "type": "number"
1403
+ },
1404
+ "minItems": 3,
1405
+ "maxItems": 3
1406
+ },
1407
+ "orientation": {
1408
+ "type": "array",
1409
+ "items": {
1410
+ "type": "number"
1411
+ },
1412
+ "minItems": 4,
1413
+ "maxItems": 4
1414
+ }
1415
+ },
1416
+ "required": [
1417
+ "modeId",
1418
+ "position",
1419
+ "orientation"
1420
+ ],
1421
+ "additionalProperties": false
1422
+ },
1423
+ "shell": {
1424
+ "type": "object",
1425
+ "properties": {
1426
+ "leases": {
1427
+ "type": "array",
1428
+ "items": {
1429
+ "type": "object",
1430
+ "properties": {
1431
+ "id": {
1432
+ "type": "string",
1433
+ "minLength": 1,
1434
+ "maxLength": 128
1435
+ },
1436
+ "outputs": {
1437
+ "type": "array",
1438
+ "items": {
1439
+ "type": "string",
1440
+ "minLength": 1,
1441
+ "maxLength": 128
1442
+ },
1443
+ "minItems": 1,
1444
+ "uniqueItems": true
1445
+ },
1446
+ "overlays": {
1447
+ "type": "array",
1448
+ "items": {
1449
+ "type": "object",
1450
+ "properties": {
1451
+ "outputId": {
1452
+ "type": "string",
1453
+ "minLength": 1,
1454
+ "maxLength": 128
1455
+ },
1456
+ "visible": {
1457
+ "type": "boolean"
1458
+ },
1459
+ "exclusiveInput": {
1460
+ "type": "boolean"
1461
+ }
1462
+ },
1463
+ "required": [
1464
+ "outputId",
1465
+ "visible",
1466
+ "exclusiveInput"
1467
+ ],
1468
+ "additionalProperties": false
1469
+ },
1470
+ "minItems": 0
1471
+ }
1472
+ },
1473
+ "required": [
1474
+ "id",
1475
+ "outputs",
1476
+ "overlays"
1477
+ ],
1478
+ "additionalProperties": false
1479
+ },
1480
+ "minItems": 0
1481
+ }
1482
+ },
1483
+ "required": [
1484
+ "leases"
1485
+ ],
1486
+ "additionalProperties": false
1487
+ },
1488
+ "location": {
1489
+ "$ref": "#/$defs/location"
1490
+ },
1491
+ "integrations": {
1492
+ "$ref": "#/$defs/integrations"
1493
+ }
1494
+ },
1495
+ "required": [],
1496
+ "additionalProperties": false,
1497
+ "minProperties": 1
1498
+ }
1499
+ },
1500
+ "required": [
1501
+ "subscriptionId",
1502
+ "sessionId",
1503
+ "baseRevision",
1504
+ "revision",
1505
+ "changes"
1506
+ ],
1507
+ "additionalProperties": false
1508
+ }
1509
+ },
1510
+ "required": [
1511
+ "jsonrpc",
1512
+ "method",
1513
+ "params"
1514
+ ],
1515
+ "additionalProperties": false
1516
+ },
1517
+ "runtime.notice.notification": {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "jsonrpc": {
1521
+ "const": "2.0"
1522
+ },
1523
+ "method": {
1524
+ "const": "runtime.notice"
1525
+ },
1526
+ "params": {
1527
+ "type": "object",
1528
+ "properties": {
1529
+ "level": {
1530
+ "enum": [
1531
+ "info",
1532
+ "warning",
1533
+ "error"
1534
+ ]
1535
+ },
1536
+ "code": {
1537
+ "type": "string",
1538
+ "minLength": 1,
1539
+ "maxLength": 256
1540
+ },
1541
+ "message": {
1542
+ "type": "string",
1543
+ "minLength": 1,
1544
+ "maxLength": 4096
1545
+ }
1546
+ },
1547
+ "required": [
1548
+ "level",
1549
+ "code",
1550
+ "message"
1551
+ ],
1552
+ "additionalProperties": false
1553
+ }
1554
+ },
1555
+ "required": [
1556
+ "jsonrpc",
1557
+ "method",
1558
+ "params"
1559
+ ],
1560
+ "additionalProperties": false
1561
+ },
1562
+ "session.revoked.notification": {
1563
+ "type": "object",
1564
+ "properties": {
1565
+ "jsonrpc": {
1566
+ "const": "2.0"
1567
+ },
1568
+ "method": {
1569
+ "const": "session.revoked"
1570
+ },
1571
+ "params": {
1572
+ "type": "object",
1573
+ "properties": {
1574
+ "reason": {
1575
+ "type": "string",
1576
+ "minLength": 1,
1577
+ "maxLength": 4096
1578
+ }
1579
+ },
1580
+ "required": [
1581
+ "reason"
1582
+ ],
1583
+ "additionalProperties": false
1584
+ }
1585
+ },
1586
+ "required": [
1587
+ "jsonrpc",
1588
+ "method",
1589
+ "params"
1590
+ ],
1591
+ "additionalProperties": false
1592
+ },
1593
+ "error": {
1594
+ "type": "object",
1595
+ "properties": {
1596
+ "jsonrpc": {
1597
+ "const": "2.0"
1598
+ },
1599
+ "id": {
1600
+ "anyOf": [
1601
+ {
1602
+ "type": "string",
1603
+ "minLength": 1,
1604
+ "maxLength": 128
1605
+ },
1606
+ {
1607
+ "type": "null"
1608
+ }
1609
+ ]
1610
+ },
1611
+ "error": {
1612
+ "type": "object",
1613
+ "properties": {
1614
+ "code": {
1615
+ "enum": [
1616
+ -32700,
1617
+ -32600,
1618
+ -32601,
1619
+ -32602,
1620
+ -32603,
1621
+ -32008,
1622
+ -32007,
1623
+ -32006,
1624
+ -32005,
1625
+ -32004,
1626
+ -32003,
1627
+ -32002,
1628
+ -32001
1629
+ ]
1630
+ },
1631
+ "message": {
1632
+ "type": "string",
1633
+ "minLength": 1,
1634
+ "maxLength": 4096
1635
+ },
1636
+ "data": {
1637
+ "type": "object",
1638
+ "properties": {
1639
+ "retryable": {
1640
+ "type": "boolean"
1641
+ }
1642
+ },
1643
+ "required": [
1644
+ "retryable"
1645
+ ],
1646
+ "additionalProperties": false
1647
+ }
1648
+ },
1649
+ "required": [
1650
+ "code",
1651
+ "message"
1652
+ ],
1653
+ "additionalProperties": false
1654
+ }
1655
+ },
1656
+ "required": [
1657
+ "jsonrpc",
1658
+ "id",
1659
+ "error"
1660
+ ],
1661
+ "additionalProperties": false
1662
+ },
1663
+ "request": {
1664
+ "oneOf": [
1665
+ {
1666
+ "$ref": "#/$defs/session.hello.request"
1667
+ },
1668
+ {
1669
+ "$ref": "#/$defs/session.ping.request"
1670
+ },
1671
+ {
1672
+ "$ref": "#/$defs/state.subscribe.request"
1673
+ },
1674
+ {
1675
+ "$ref": "#/$defs/state.snapshot.request"
1676
+ },
1677
+ {
1678
+ "$ref": "#/$defs/state.unsubscribe.request"
1679
+ },
1680
+ {
1681
+ "$ref": "#/$defs/world.load.request"
1682
+ },
1683
+ {
1684
+ "$ref": "#/$defs/surface.focus.request"
1685
+ },
1686
+ {
1687
+ "$ref": "#/$defs/movement.set.request"
1688
+ },
1689
+ {
1690
+ "$ref": "#/$defs/shell.claim.request"
1691
+ },
1692
+ {
1693
+ "$ref": "#/$defs/shell.release.request"
1694
+ },
1695
+ {
1696
+ "$ref": "#/$defs/shell.overlay.request"
1697
+ },
1698
+ {
1699
+ "$ref": "#/$defs/runtime.exit.request"
1700
+ },
1701
+ {
1702
+ "$ref": "#/$defs/camera.get.request"
1703
+ },
1704
+ {
1705
+ "$ref": "#/$defs/camera.set.request"
1706
+ },
1707
+ {
1708
+ "$ref": "#/$defs/waypoint.set.request"
1709
+ },
1710
+ {
1711
+ "$ref": "#/$defs/waypoint.clear.request"
1712
+ },
1713
+ {
1714
+ "$ref": "#/$defs/route.set.request"
1715
+ },
1716
+ {
1717
+ "$ref": "#/$defs/route.clear.request"
1718
+ },
1719
+ {
1720
+ "$ref": "#/$defs/travel.start.request"
1721
+ },
1722
+ {
1723
+ "$ref": "#/$defs/travel.cancel.request"
1724
+ },
1725
+ {
1726
+ "$ref": "#/$defs/autodrive.start.request"
1727
+ },
1728
+ {
1729
+ "$ref": "#/$defs/autodrive.stop.request"
1730
+ },
1731
+ {
1732
+ "$ref": "#/$defs/ui.open.request"
1733
+ },
1734
+ {
1735
+ "$ref": "#/$defs/ui.close.request"
1736
+ },
1737
+ {
1738
+ "$ref": "#/$defs/data.publish.request"
1739
+ },
1740
+ {
1741
+ "$ref": "#/$defs/data.remove.request"
1742
+ }
1743
+ ]
1744
+ },
1745
+ "response": {
1746
+ "anyOf": [
1747
+ {
1748
+ "$ref": "#/$defs/session.hello.response"
1749
+ },
1750
+ {
1751
+ "$ref": "#/$defs/session.ping.response"
1752
+ },
1753
+ {
1754
+ "$ref": "#/$defs/state.subscribe.response"
1755
+ },
1756
+ {
1757
+ "$ref": "#/$defs/state.snapshot.response"
1758
+ },
1759
+ {
1760
+ "$ref": "#/$defs/state.unsubscribe.response"
1761
+ },
1762
+ {
1763
+ "$ref": "#/$defs/world.load.response"
1764
+ },
1765
+ {
1766
+ "$ref": "#/$defs/surface.focus.response"
1767
+ },
1768
+ {
1769
+ "$ref": "#/$defs/movement.set.response"
1770
+ },
1771
+ {
1772
+ "$ref": "#/$defs/shell.release.response"
1773
+ },
1774
+ {
1775
+ "$ref": "#/$defs/shell.overlay.response"
1776
+ },
1777
+ {
1778
+ "$ref": "#/$defs/runtime.exit.response"
1779
+ },
1780
+ {
1781
+ "$ref": "#/$defs/shell.claim.response"
1782
+ },
1783
+ {
1784
+ "$ref": "#/$defs/camera.get.response"
1785
+ },
1786
+ {
1787
+ "$ref": "#/$defs/camera.set.response"
1788
+ },
1789
+ {
1790
+ "$ref": "#/$defs/waypoint.set.response"
1791
+ },
1792
+ {
1793
+ "$ref": "#/$defs/waypoint.clear.response"
1794
+ },
1795
+ {
1796
+ "$ref": "#/$defs/route.set.response"
1797
+ },
1798
+ {
1799
+ "$ref": "#/$defs/route.clear.response"
1800
+ },
1801
+ {
1802
+ "$ref": "#/$defs/travel.start.response"
1803
+ },
1804
+ {
1805
+ "$ref": "#/$defs/travel.cancel.response"
1806
+ },
1807
+ {
1808
+ "$ref": "#/$defs/autodrive.start.response"
1809
+ },
1810
+ {
1811
+ "$ref": "#/$defs/autodrive.stop.response"
1812
+ },
1813
+ {
1814
+ "$ref": "#/$defs/ui.open.response"
1815
+ },
1816
+ {
1817
+ "$ref": "#/$defs/ui.close.response"
1818
+ },
1819
+ {
1820
+ "$ref": "#/$defs/data.publish.response"
1821
+ },
1822
+ {
1823
+ "$ref": "#/$defs/data.remove.response"
1824
+ }
1825
+ ]
1826
+ },
1827
+ "notification": {
1828
+ "oneOf": [
1829
+ {
1830
+ "$ref": "#/$defs/state.delta.notification"
1831
+ },
1832
+ {
1833
+ "$ref": "#/$defs/runtime.notice.notification"
1834
+ },
1835
+ {
1836
+ "$ref": "#/$defs/session.revoked.notification"
1837
+ },
1838
+ {
1839
+ "$ref": "#/$defs/location.transition.notification"
1840
+ },
1841
+ {
1842
+ "$ref": "#/$defs/ui.opened.notification"
1843
+ },
1844
+ {
1845
+ "$ref": "#/$defs/ui.closed.notification"
1846
+ },
1847
+ {
1848
+ "$ref": "#/$defs/data.updated.notification"
1849
+ }
1850
+ ]
1851
+ },
1852
+ "target": {
1853
+ "oneOf": [
1854
+ {
1855
+ "type": "object",
1856
+ "properties": {
1857
+ "position": {
1858
+ "type": "array",
1859
+ "items": {
1860
+ "type": "number",
1861
+ "minimum": -100000,
1862
+ "maximum": 100000
1863
+ },
1864
+ "minItems": 3,
1865
+ "maxItems": 3
1866
+ }
1867
+ },
1868
+ "required": [
1869
+ "position"
1870
+ ],
1871
+ "additionalProperties": false
1872
+ },
1873
+ {
1874
+ "type": "object",
1875
+ "properties": {
1876
+ "zoneId": {
1877
+ "type": "string",
1878
+ "minLength": 1,
1879
+ "maxLength": 128
1880
+ }
1881
+ },
1882
+ "required": [
1883
+ "zoneId"
1884
+ ],
1885
+ "additionalProperties": false
1886
+ }
1887
+ ]
1888
+ },
1889
+ "transition": {
1890
+ "type": "object",
1891
+ "properties": {
1892
+ "phase": {
1893
+ "enum": [
1894
+ "departing",
1895
+ "travelling",
1896
+ "arrived",
1897
+ "cancelled",
1898
+ "loading",
1899
+ "failed"
1900
+ ]
1901
+ },
1902
+ "progress": {
1903
+ "anyOf": [
1904
+ {
1905
+ "type": "null"
1906
+ },
1907
+ {
1908
+ "type": "number",
1909
+ "minimum": 0,
1910
+ "maximum": 1
1911
+ }
1912
+ ]
1913
+ },
1914
+ "to": {
1915
+ "$ref": "#/$defs/destination"
1916
+ },
1917
+ "id": {
1918
+ "type": "string",
1919
+ "minLength": 1,
1920
+ "maxLength": 128
1921
+ },
1922
+ "outputId": {
1923
+ "anyOf": [
1924
+ {
1925
+ "type": "null"
1926
+ },
1927
+ {
1928
+ "type": "string",
1929
+ "minLength": 1,
1930
+ "maxLength": 128
1931
+ }
1932
+ ]
1933
+ },
1934
+ "monotonicMs": {
1935
+ "type": "integer",
1936
+ "minimum": 0,
1937
+ "maximum": 9007199254740991
1938
+ }
1939
+ },
1940
+ "required": [
1941
+ "phase",
1942
+ "progress",
1943
+ "to",
1944
+ "id",
1945
+ "outputId",
1946
+ "monotonicMs"
1947
+ ],
1948
+ "additionalProperties": false
1949
+ },
1950
+ "waypoint": {
1951
+ "type": "object",
1952
+ "properties": {
1953
+ "id": {
1954
+ "type": "string",
1955
+ "minLength": 1,
1956
+ "maxLength": 128
1957
+ },
1958
+ "label": {
1959
+ "type": "string",
1960
+ "minLength": 1,
1961
+ "maxLength": 256
1962
+ },
1963
+ "target": {
1964
+ "$ref": "#/$defs/target"
1965
+ },
1966
+ "position": {
1967
+ "type": "array",
1968
+ "items": {
1969
+ "type": "number",
1970
+ "minimum": -100000,
1971
+ "maximum": 100000
1972
+ },
1973
+ "minItems": 3,
1974
+ "maxItems": 3
1975
+ }
1976
+ },
1977
+ "required": [
1978
+ "id",
1979
+ "label",
1980
+ "target",
1981
+ "position"
1982
+ ],
1983
+ "additionalProperties": false
1984
+ },
1985
+ "routePoint": {
1986
+ "type": "object",
1987
+ "properties": {
1988
+ "target": {
1989
+ "$ref": "#/$defs/target"
1990
+ },
1991
+ "position": {
1992
+ "type": "array",
1993
+ "items": {
1994
+ "type": "number",
1995
+ "minimum": -100000,
1996
+ "maximum": 100000
1997
+ },
1998
+ "minItems": 3,
1999
+ "maxItems": 3
2000
+ }
2001
+ },
2002
+ "required": [
2003
+ "target",
2004
+ "position"
2005
+ ],
2006
+ "additionalProperties": false
2007
+ },
2008
+ "source": {
2009
+ "type": "object",
2010
+ "properties": {
2011
+ "sourceId": {
2012
+ "$ref": "common.schema.json#/$defs/id"
2013
+ },
2014
+ "values": {
2015
+ "type": "object",
2016
+ "maxProperties": 32,
2017
+ "propertyNames": {
2018
+ "maxLength": 128
2019
+ },
2020
+ "additionalProperties": {
2021
+ "anyOf": [
2022
+ {
2023
+ "type": "number"
2024
+ },
2025
+ {
2026
+ "type": "boolean"
2027
+ },
2028
+ {
2029
+ "type": "string",
2030
+ "maxLength": 256
2031
+ }
2032
+ ]
2033
+ }
2034
+ },
2035
+ "sequence": {
2036
+ "type": "integer",
2037
+ "minimum": 0,
2038
+ "maximum": 9007199254740991
2039
+ },
2040
+ "monotonicMs": {
2041
+ "type": "integer",
2042
+ "minimum": 0,
2043
+ "maximum": 9007199254740991
2044
+ },
2045
+ "ttlMs": {
2046
+ "type": "integer",
2047
+ "minimum": 100,
2048
+ "maximum": 60000
2049
+ }
2050
+ },
2051
+ "required": [
2052
+ "sourceId",
2053
+ "values",
2054
+ "sequence",
2055
+ "monotonicMs",
2056
+ "ttlMs"
2057
+ ],
2058
+ "additionalProperties": false
2059
+ },
2060
+ "location": {
2061
+ "type": "object",
2062
+ "properties": {
2063
+ "zones": {
2064
+ "$ref": "world.schema.json#/properties/zones"
2065
+ },
2066
+ "waypoint": {
2067
+ "anyOf": [
2068
+ {
2069
+ "type": "null"
2070
+ },
2071
+ {
2072
+ "$ref": "#/$defs/waypoint"
2073
+ }
2074
+ ]
2075
+ },
2076
+ "route": {
2077
+ "type": "array",
2078
+ "items": {
2079
+ "$ref": "#/$defs/routePoint"
2080
+ },
2081
+ "minItems": 0,
2082
+ "maxItems": 64
2083
+ },
2084
+ "autodrive": {
2085
+ "type": "boolean"
2086
+ },
2087
+ "transition": {
2088
+ "anyOf": [
2089
+ {
2090
+ "type": "null"
2091
+ },
2092
+ {
2093
+ "$ref": "#/$defs/transition"
2094
+ }
2095
+ ]
2096
+ }
2097
+ },
2098
+ "required": [
2099
+ "zones",
2100
+ "waypoint",
2101
+ "route",
2102
+ "autodrive",
2103
+ "transition"
2104
+ ],
2105
+ "additionalProperties": false
2106
+ },
2107
+ "integrations": {
2108
+ "type": "object",
2109
+ "properties": {
2110
+ "sources": {
2111
+ "type": "array",
2112
+ "items": {
2113
+ "$ref": "#/$defs/source"
2114
+ },
2115
+ "minItems": 0,
2116
+ "maxItems": 32
2117
+ }
2118
+ },
2119
+ "required": [
2120
+ "sources"
2121
+ ],
2122
+ "additionalProperties": false
2123
+ },
2124
+ "camera.get.params": {
2125
+ "type": "object",
2126
+ "properties": {},
2127
+ "required": [],
2128
+ "additionalProperties": false
2129
+ },
2130
+ "camera.get.result": {
2131
+ "type": "object",
2132
+ "properties": {
2133
+ "position": {
2134
+ "type": "array",
2135
+ "items": {
2136
+ "type": "number",
2137
+ "minimum": -100000,
2138
+ "maximum": 100000
2139
+ },
2140
+ "minItems": 3,
2141
+ "maxItems": 3
2142
+ },
2143
+ "orientation": {
2144
+ "type": "array",
2145
+ "items": {
2146
+ "type": "number"
2147
+ },
2148
+ "minItems": 4,
2149
+ "maxItems": 4
2150
+ }
2151
+ },
2152
+ "required": [
2153
+ "position",
2154
+ "orientation"
2155
+ ],
2156
+ "additionalProperties": false
2157
+ },
2158
+ "camera.get.request": {
2159
+ "type": "object",
2160
+ "properties": {
2161
+ "jsonrpc": {
2162
+ "const": "2.0"
2163
+ },
2164
+ "id": {
2165
+ "type": "string",
2166
+ "minLength": 1,
2167
+ "maxLength": 128
2168
+ },
2169
+ "method": {
2170
+ "const": "camera.get"
2171
+ },
2172
+ "params": {
2173
+ "$ref": "#/$defs/camera.get.params"
2174
+ }
2175
+ },
2176
+ "required": [
2177
+ "jsonrpc",
2178
+ "id",
2179
+ "method",
2180
+ "params"
2181
+ ],
2182
+ "additionalProperties": false
2183
+ },
2184
+ "camera.get.response": {
2185
+ "type": "object",
2186
+ "properties": {
2187
+ "jsonrpc": {
2188
+ "const": "2.0"
2189
+ },
2190
+ "id": {
2191
+ "type": "string",
2192
+ "minLength": 1,
2193
+ "maxLength": 128
2194
+ },
2195
+ "result": {
2196
+ "$ref": "#/$defs/camera.get.result"
2197
+ }
2198
+ },
2199
+ "required": [
2200
+ "jsonrpc",
2201
+ "id",
2202
+ "result"
2203
+ ],
2204
+ "additionalProperties": false
2205
+ },
2206
+ "camera.set.params": {
2207
+ "type": "object",
2208
+ "properties": {
2209
+ "position": {
2210
+ "type": "array",
2211
+ "items": {
2212
+ "type": "number",
2213
+ "minimum": -100000,
2214
+ "maximum": 100000
2215
+ },
2216
+ "minItems": 3,
2217
+ "maxItems": 3
2218
+ },
2219
+ "orientation": {
2220
+ "type": "array",
2221
+ "items": {
2222
+ "type": "number"
2223
+ },
2224
+ "minItems": 4,
2225
+ "maxItems": 4
2226
+ }
2227
+ },
2228
+ "required": [
2229
+ "position",
2230
+ "orientation"
2231
+ ],
2232
+ "additionalProperties": false
2233
+ },
2234
+ "camera.set.result": {
2235
+ "type": "object",
2236
+ "properties": {
2237
+ "revision": {
2238
+ "type": "integer",
2239
+ "minimum": 0,
2240
+ "maximum": 9007199254740991
2241
+ }
2242
+ },
2243
+ "required": [
2244
+ "revision"
2245
+ ],
2246
+ "additionalProperties": false
2247
+ },
2248
+ "camera.set.request": {
2249
+ "type": "object",
2250
+ "properties": {
2251
+ "jsonrpc": {
2252
+ "const": "2.0"
2253
+ },
2254
+ "id": {
2255
+ "type": "string",
2256
+ "minLength": 1,
2257
+ "maxLength": 128
2258
+ },
2259
+ "method": {
2260
+ "const": "camera.set"
2261
+ },
2262
+ "params": {
2263
+ "$ref": "#/$defs/camera.set.params"
2264
+ }
2265
+ },
2266
+ "required": [
2267
+ "jsonrpc",
2268
+ "id",
2269
+ "method",
2270
+ "params"
2271
+ ],
2272
+ "additionalProperties": false
2273
+ },
2274
+ "camera.set.response": {
2275
+ "type": "object",
2276
+ "properties": {
2277
+ "jsonrpc": {
2278
+ "const": "2.0"
2279
+ },
2280
+ "id": {
2281
+ "type": "string",
2282
+ "minLength": 1,
2283
+ "maxLength": 128
2284
+ },
2285
+ "result": {
2286
+ "$ref": "#/$defs/camera.set.result"
2287
+ }
2288
+ },
2289
+ "required": [
2290
+ "jsonrpc",
2291
+ "id",
2292
+ "result"
2293
+ ],
2294
+ "additionalProperties": false
2295
+ },
2296
+ "waypoint.set.params": {
2297
+ "oneOf": [
2298
+ {
2299
+ "type": "object",
2300
+ "properties": {
2301
+ "id": {
2302
+ "type": "string",
2303
+ "minLength": 1,
2304
+ "maxLength": 128
2305
+ },
2306
+ "label": {
2307
+ "type": "string",
2308
+ "minLength": 1,
2309
+ "maxLength": 256
2310
+ },
2311
+ "target": {
2312
+ "$ref": "#/$defs/target"
2313
+ }
2314
+ },
2315
+ "required": [
2316
+ "id",
2317
+ "label",
2318
+ "target"
2319
+ ],
2320
+ "additionalProperties": false
2321
+ },
2322
+ {
2323
+ "type": "object",
2324
+ "properties": {
2325
+ "id": {
2326
+ "type": "string",
2327
+ "minLength": 1,
2328
+ "maxLength": 128
2329
+ },
2330
+ "label": {
2331
+ "type": "string",
2332
+ "minLength": 1,
2333
+ "maxLength": 256
2334
+ },
2335
+ "position": {
2336
+ "type": "array",
2337
+ "items": {
2338
+ "type": "number",
2339
+ "minimum": -100000,
2340
+ "maximum": 100000
2341
+ },
2342
+ "minItems": 3,
2343
+ "maxItems": 3
2344
+ }
2345
+ },
2346
+ "required": [
2347
+ "id",
2348
+ "label",
2349
+ "position"
2350
+ ],
2351
+ "additionalProperties": false
2352
+ }
2353
+ ]
2354
+ },
2355
+ "waypoint.set.result": {
2356
+ "type": "object",
2357
+ "properties": {
2358
+ "revision": {
2359
+ "type": "integer",
2360
+ "minimum": 0,
2361
+ "maximum": 9007199254740991
2362
+ }
2363
+ },
2364
+ "required": [
2365
+ "revision"
2366
+ ],
2367
+ "additionalProperties": false
2368
+ },
2369
+ "waypoint.set.request": {
2370
+ "type": "object",
2371
+ "properties": {
2372
+ "jsonrpc": {
2373
+ "const": "2.0"
2374
+ },
2375
+ "id": {
2376
+ "type": "string",
2377
+ "minLength": 1,
2378
+ "maxLength": 128
2379
+ },
2380
+ "method": {
2381
+ "const": "waypoint.set"
2382
+ },
2383
+ "params": {
2384
+ "$ref": "#/$defs/waypoint.set.params"
2385
+ }
2386
+ },
2387
+ "required": [
2388
+ "jsonrpc",
2389
+ "id",
2390
+ "method",
2391
+ "params"
2392
+ ],
2393
+ "additionalProperties": false
2394
+ },
2395
+ "waypoint.set.response": {
2396
+ "type": "object",
2397
+ "properties": {
2398
+ "jsonrpc": {
2399
+ "const": "2.0"
2400
+ },
2401
+ "id": {
2402
+ "type": "string",
2403
+ "minLength": 1,
2404
+ "maxLength": 128
2405
+ },
2406
+ "result": {
2407
+ "$ref": "#/$defs/waypoint.set.result"
2408
+ }
2409
+ },
2410
+ "required": [
2411
+ "jsonrpc",
2412
+ "id",
2413
+ "result"
2414
+ ],
2415
+ "additionalProperties": false
2416
+ },
2417
+ "waypoint.clear.params": {
2418
+ "type": "object",
2419
+ "properties": {},
2420
+ "required": [],
2421
+ "additionalProperties": false
2422
+ },
2423
+ "waypoint.clear.result": {
2424
+ "type": "object",
2425
+ "properties": {
2426
+ "revision": {
2427
+ "type": "integer",
2428
+ "minimum": 0,
2429
+ "maximum": 9007199254740991
2430
+ }
2431
+ },
2432
+ "required": [
2433
+ "revision"
2434
+ ],
2435
+ "additionalProperties": false
2436
+ },
2437
+ "waypoint.clear.request": {
2438
+ "type": "object",
2439
+ "properties": {
2440
+ "jsonrpc": {
2441
+ "const": "2.0"
2442
+ },
2443
+ "id": {
2444
+ "type": "string",
2445
+ "minLength": 1,
2446
+ "maxLength": 128
2447
+ },
2448
+ "method": {
2449
+ "const": "waypoint.clear"
2450
+ },
2451
+ "params": {
2452
+ "$ref": "#/$defs/waypoint.clear.params"
2453
+ }
2454
+ },
2455
+ "required": [
2456
+ "jsonrpc",
2457
+ "id",
2458
+ "method",
2459
+ "params"
2460
+ ],
2461
+ "additionalProperties": false
2462
+ },
2463
+ "waypoint.clear.response": {
2464
+ "type": "object",
2465
+ "properties": {
2466
+ "jsonrpc": {
2467
+ "const": "2.0"
2468
+ },
2469
+ "id": {
2470
+ "type": "string",
2471
+ "minLength": 1,
2472
+ "maxLength": 128
2473
+ },
2474
+ "result": {
2475
+ "$ref": "#/$defs/waypoint.clear.result"
2476
+ }
2477
+ },
2478
+ "required": [
2479
+ "jsonrpc",
2480
+ "id",
2481
+ "result"
2482
+ ],
2483
+ "additionalProperties": false
2484
+ },
2485
+ "route.set.params": {
2486
+ "type": "object",
2487
+ "properties": {
2488
+ "points": {
2489
+ "type": "array",
2490
+ "items": {
2491
+ "$ref": "#/$defs/target"
2492
+ },
2493
+ "minItems": 1,
2494
+ "maxItems": 64
2495
+ }
2496
+ },
2497
+ "required": [
2498
+ "points"
2499
+ ],
2500
+ "additionalProperties": false
2501
+ },
2502
+ "route.set.result": {
2503
+ "type": "object",
2504
+ "properties": {
2505
+ "revision": {
2506
+ "type": "integer",
2507
+ "minimum": 0,
2508
+ "maximum": 9007199254740991
2509
+ }
2510
+ },
2511
+ "required": [
2512
+ "revision"
2513
+ ],
2514
+ "additionalProperties": false
2515
+ },
2516
+ "route.set.request": {
2517
+ "type": "object",
2518
+ "properties": {
2519
+ "jsonrpc": {
2520
+ "const": "2.0"
2521
+ },
2522
+ "id": {
2523
+ "type": "string",
2524
+ "minLength": 1,
2525
+ "maxLength": 128
2526
+ },
2527
+ "method": {
2528
+ "const": "route.set"
2529
+ },
2530
+ "params": {
2531
+ "$ref": "#/$defs/route.set.params"
2532
+ }
2533
+ },
2534
+ "required": [
2535
+ "jsonrpc",
2536
+ "id",
2537
+ "method",
2538
+ "params"
2539
+ ],
2540
+ "additionalProperties": false
2541
+ },
2542
+ "route.set.response": {
2543
+ "type": "object",
2544
+ "properties": {
2545
+ "jsonrpc": {
2546
+ "const": "2.0"
2547
+ },
2548
+ "id": {
2549
+ "type": "string",
2550
+ "minLength": 1,
2551
+ "maxLength": 128
2552
+ },
2553
+ "result": {
2554
+ "$ref": "#/$defs/route.set.result"
2555
+ }
2556
+ },
2557
+ "required": [
2558
+ "jsonrpc",
2559
+ "id",
2560
+ "result"
2561
+ ],
2562
+ "additionalProperties": false
2563
+ },
2564
+ "route.clear.params": {
2565
+ "type": "object",
2566
+ "properties": {},
2567
+ "required": [],
2568
+ "additionalProperties": false
2569
+ },
2570
+ "route.clear.result": {
2571
+ "type": "object",
2572
+ "properties": {
2573
+ "revision": {
2574
+ "type": "integer",
2575
+ "minimum": 0,
2576
+ "maximum": 9007199254740991
2577
+ }
2578
+ },
2579
+ "required": [
2580
+ "revision"
2581
+ ],
2582
+ "additionalProperties": false
2583
+ },
2584
+ "route.clear.request": {
2585
+ "type": "object",
2586
+ "properties": {
2587
+ "jsonrpc": {
2588
+ "const": "2.0"
2589
+ },
2590
+ "id": {
2591
+ "type": "string",
2592
+ "minLength": 1,
2593
+ "maxLength": 128
2594
+ },
2595
+ "method": {
2596
+ "const": "route.clear"
2597
+ },
2598
+ "params": {
2599
+ "$ref": "#/$defs/route.clear.params"
2600
+ }
2601
+ },
2602
+ "required": [
2603
+ "jsonrpc",
2604
+ "id",
2605
+ "method",
2606
+ "params"
2607
+ ],
2608
+ "additionalProperties": false
2609
+ },
2610
+ "route.clear.response": {
2611
+ "type": "object",
2612
+ "properties": {
2613
+ "jsonrpc": {
2614
+ "const": "2.0"
2615
+ },
2616
+ "id": {
2617
+ "type": "string",
2618
+ "minLength": 1,
2619
+ "maxLength": 128
2620
+ },
2621
+ "result": {
2622
+ "$ref": "#/$defs/route.clear.result"
2623
+ }
2624
+ },
2625
+ "required": [
2626
+ "jsonrpc",
2627
+ "id",
2628
+ "result"
2629
+ ],
2630
+ "additionalProperties": false
2631
+ },
2632
+ "travel.start.params": {
2633
+ "type": "object",
2634
+ "properties": {
2635
+ "to": {
2636
+ "$ref": "#/$defs/target"
2637
+ },
2638
+ "durationMs": {
2639
+ "type": "integer",
2640
+ "minimum": 0,
2641
+ "maximum": 10000
2642
+ }
2643
+ },
2644
+ "required": [
2645
+ "to"
2646
+ ],
2647
+ "additionalProperties": false
2648
+ },
2649
+ "travel.start.result": {
2650
+ "type": "object",
2651
+ "properties": {
2652
+ "revision": {
2653
+ "type": "integer",
2654
+ "minimum": 0,
2655
+ "maximum": 9007199254740991
2656
+ }
2657
+ },
2658
+ "required": [
2659
+ "revision"
2660
+ ],
2661
+ "additionalProperties": false
2662
+ },
2663
+ "travel.start.request": {
2664
+ "type": "object",
2665
+ "properties": {
2666
+ "jsonrpc": {
2667
+ "const": "2.0"
2668
+ },
2669
+ "id": {
2670
+ "type": "string",
2671
+ "minLength": 1,
2672
+ "maxLength": 128
2673
+ },
2674
+ "method": {
2675
+ "const": "travel.start"
2676
+ },
2677
+ "params": {
2678
+ "$ref": "#/$defs/travel.start.params"
2679
+ }
2680
+ },
2681
+ "required": [
2682
+ "jsonrpc",
2683
+ "id",
2684
+ "method",
2685
+ "params"
2686
+ ],
2687
+ "additionalProperties": false
2688
+ },
2689
+ "travel.start.response": {
2690
+ "type": "object",
2691
+ "properties": {
2692
+ "jsonrpc": {
2693
+ "const": "2.0"
2694
+ },
2695
+ "id": {
2696
+ "type": "string",
2697
+ "minLength": 1,
2698
+ "maxLength": 128
2699
+ },
2700
+ "result": {
2701
+ "$ref": "#/$defs/travel.start.result"
2702
+ }
2703
+ },
2704
+ "required": [
2705
+ "jsonrpc",
2706
+ "id",
2707
+ "result"
2708
+ ],
2709
+ "additionalProperties": false
2710
+ },
2711
+ "travel.cancel.params": {
2712
+ "type": "object",
2713
+ "properties": {},
2714
+ "required": [],
2715
+ "additionalProperties": false
2716
+ },
2717
+ "travel.cancel.result": {
2718
+ "type": "object",
2719
+ "properties": {
2720
+ "revision": {
2721
+ "type": "integer",
2722
+ "minimum": 0,
2723
+ "maximum": 9007199254740991
2724
+ }
2725
+ },
2726
+ "required": [
2727
+ "revision"
2728
+ ],
2729
+ "additionalProperties": false
2730
+ },
2731
+ "travel.cancel.request": {
2732
+ "type": "object",
2733
+ "properties": {
2734
+ "jsonrpc": {
2735
+ "const": "2.0"
2736
+ },
2737
+ "id": {
2738
+ "type": "string",
2739
+ "minLength": 1,
2740
+ "maxLength": 128
2741
+ },
2742
+ "method": {
2743
+ "const": "travel.cancel"
2744
+ },
2745
+ "params": {
2746
+ "$ref": "#/$defs/travel.cancel.params"
2747
+ }
2748
+ },
2749
+ "required": [
2750
+ "jsonrpc",
2751
+ "id",
2752
+ "method",
2753
+ "params"
2754
+ ],
2755
+ "additionalProperties": false
2756
+ },
2757
+ "travel.cancel.response": {
2758
+ "type": "object",
2759
+ "properties": {
2760
+ "jsonrpc": {
2761
+ "const": "2.0"
2762
+ },
2763
+ "id": {
2764
+ "type": "string",
2765
+ "minLength": 1,
2766
+ "maxLength": 128
2767
+ },
2768
+ "result": {
2769
+ "$ref": "#/$defs/travel.cancel.result"
2770
+ }
2771
+ },
2772
+ "required": [
2773
+ "jsonrpc",
2774
+ "id",
2775
+ "result"
2776
+ ],
2777
+ "additionalProperties": false
2778
+ },
2779
+ "autodrive.start.params": {
2780
+ "type": "object",
2781
+ "properties": {
2782
+ "speed": {
2783
+ "type": "number",
2784
+ "minimum": 0.1,
2785
+ "maximum": 10
2786
+ }
2787
+ },
2788
+ "required": [],
2789
+ "additionalProperties": false
2790
+ },
2791
+ "autodrive.start.result": {
2792
+ "type": "object",
2793
+ "properties": {
2794
+ "revision": {
2795
+ "type": "integer",
2796
+ "minimum": 0,
2797
+ "maximum": 9007199254740991
2798
+ }
2799
+ },
2800
+ "required": [
2801
+ "revision"
2802
+ ],
2803
+ "additionalProperties": false
2804
+ },
2805
+ "autodrive.start.request": {
2806
+ "type": "object",
2807
+ "properties": {
2808
+ "jsonrpc": {
2809
+ "const": "2.0"
2810
+ },
2811
+ "id": {
2812
+ "type": "string",
2813
+ "minLength": 1,
2814
+ "maxLength": 128
2815
+ },
2816
+ "method": {
2817
+ "const": "autodrive.start"
2818
+ },
2819
+ "params": {
2820
+ "$ref": "#/$defs/autodrive.start.params"
2821
+ }
2822
+ },
2823
+ "required": [
2824
+ "jsonrpc",
2825
+ "id",
2826
+ "method",
2827
+ "params"
2828
+ ],
2829
+ "additionalProperties": false
2830
+ },
2831
+ "autodrive.start.response": {
2832
+ "type": "object",
2833
+ "properties": {
2834
+ "jsonrpc": {
2835
+ "const": "2.0"
2836
+ },
2837
+ "id": {
2838
+ "type": "string",
2839
+ "minLength": 1,
2840
+ "maxLength": 128
2841
+ },
2842
+ "result": {
2843
+ "$ref": "#/$defs/autodrive.start.result"
2844
+ }
2845
+ },
2846
+ "required": [
2847
+ "jsonrpc",
2848
+ "id",
2849
+ "result"
2850
+ ],
2851
+ "additionalProperties": false
2852
+ },
2853
+ "autodrive.stop.params": {
2854
+ "type": "object",
2855
+ "properties": {},
2856
+ "required": [],
2857
+ "additionalProperties": false
2858
+ },
2859
+ "autodrive.stop.result": {
2860
+ "type": "object",
2861
+ "properties": {
2862
+ "revision": {
2863
+ "type": "integer",
2864
+ "minimum": 0,
2865
+ "maximum": 9007199254740991
2866
+ }
2867
+ },
2868
+ "required": [
2869
+ "revision"
2870
+ ],
2871
+ "additionalProperties": false
2872
+ },
2873
+ "autodrive.stop.request": {
2874
+ "type": "object",
2875
+ "properties": {
2876
+ "jsonrpc": {
2877
+ "const": "2.0"
2878
+ },
2879
+ "id": {
2880
+ "type": "string",
2881
+ "minLength": 1,
2882
+ "maxLength": 128
2883
+ },
2884
+ "method": {
2885
+ "const": "autodrive.stop"
2886
+ },
2887
+ "params": {
2888
+ "$ref": "#/$defs/autodrive.stop.params"
2889
+ }
2890
+ },
2891
+ "required": [
2892
+ "jsonrpc",
2893
+ "id",
2894
+ "method",
2895
+ "params"
2896
+ ],
2897
+ "additionalProperties": false
2898
+ },
2899
+ "autodrive.stop.response": {
2900
+ "type": "object",
2901
+ "properties": {
2902
+ "jsonrpc": {
2903
+ "const": "2.0"
2904
+ },
2905
+ "id": {
2906
+ "type": "string",
2907
+ "minLength": 1,
2908
+ "maxLength": 128
2909
+ },
2910
+ "result": {
2911
+ "$ref": "#/$defs/autodrive.stop.result"
2912
+ }
2913
+ },
2914
+ "required": [
2915
+ "jsonrpc",
2916
+ "id",
2917
+ "result"
2918
+ ],
2919
+ "additionalProperties": false
2920
+ },
2921
+ "ui.open.params": {
2922
+ "type": "object",
2923
+ "properties": {
2924
+ "leaseId": {
2925
+ "type": "string",
2926
+ "minLength": 1,
2927
+ "maxLength": 128
2928
+ },
2929
+ "outputId": {
2930
+ "type": "string",
2931
+ "minLength": 1,
2932
+ "maxLength": 128
2933
+ },
2934
+ "panel": {
2935
+ "type": "string",
2936
+ "minLength": 1,
2937
+ "maxLength": 128
2938
+ }
2939
+ },
2940
+ "required": [
2941
+ "leaseId",
2942
+ "outputId",
2943
+ "panel"
2944
+ ],
2945
+ "additionalProperties": false
2946
+ },
2947
+ "ui.open.result": {
2948
+ "type": "object",
2949
+ "properties": {
2950
+ "revision": {
2951
+ "type": "integer",
2952
+ "minimum": 0,
2953
+ "maximum": 9007199254740991
2954
+ }
2955
+ },
2956
+ "required": [
2957
+ "revision"
2958
+ ],
2959
+ "additionalProperties": false
2960
+ },
2961
+ "ui.open.request": {
2962
+ "type": "object",
2963
+ "properties": {
2964
+ "jsonrpc": {
2965
+ "const": "2.0"
2966
+ },
2967
+ "id": {
2968
+ "type": "string",
2969
+ "minLength": 1,
2970
+ "maxLength": 128
2971
+ },
2972
+ "method": {
2973
+ "const": "ui.open"
2974
+ },
2975
+ "params": {
2976
+ "$ref": "#/$defs/ui.open.params"
2977
+ }
2978
+ },
2979
+ "required": [
2980
+ "jsonrpc",
2981
+ "id",
2982
+ "method",
2983
+ "params"
2984
+ ],
2985
+ "additionalProperties": false
2986
+ },
2987
+ "ui.open.response": {
2988
+ "type": "object",
2989
+ "properties": {
2990
+ "jsonrpc": {
2991
+ "const": "2.0"
2992
+ },
2993
+ "id": {
2994
+ "type": "string",
2995
+ "minLength": 1,
2996
+ "maxLength": 128
2997
+ },
2998
+ "result": {
2999
+ "$ref": "#/$defs/ui.open.result"
3000
+ }
3001
+ },
3002
+ "required": [
3003
+ "jsonrpc",
3004
+ "id",
3005
+ "result"
3006
+ ],
3007
+ "additionalProperties": false
3008
+ },
3009
+ "ui.close.params": {
3010
+ "type": "object",
3011
+ "properties": {
3012
+ "leaseId": {
3013
+ "type": "string",
3014
+ "minLength": 1,
3015
+ "maxLength": 128
3016
+ },
3017
+ "outputId": {
3018
+ "type": "string",
3019
+ "minLength": 1,
3020
+ "maxLength": 128
3021
+ }
3022
+ },
3023
+ "required": [
3024
+ "leaseId",
3025
+ "outputId"
3026
+ ],
3027
+ "additionalProperties": false
3028
+ },
3029
+ "ui.close.result": {
3030
+ "type": "object",
3031
+ "properties": {
3032
+ "revision": {
3033
+ "type": "integer",
3034
+ "minimum": 0,
3035
+ "maximum": 9007199254740991
3036
+ }
3037
+ },
3038
+ "required": [
3039
+ "revision"
3040
+ ],
3041
+ "additionalProperties": false
3042
+ },
3043
+ "ui.close.request": {
3044
+ "type": "object",
3045
+ "properties": {
3046
+ "jsonrpc": {
3047
+ "const": "2.0"
3048
+ },
3049
+ "id": {
3050
+ "type": "string",
3051
+ "minLength": 1,
3052
+ "maxLength": 128
3053
+ },
3054
+ "method": {
3055
+ "const": "ui.close"
3056
+ },
3057
+ "params": {
3058
+ "$ref": "#/$defs/ui.close.params"
3059
+ }
3060
+ },
3061
+ "required": [
3062
+ "jsonrpc",
3063
+ "id",
3064
+ "method",
3065
+ "params"
3066
+ ],
3067
+ "additionalProperties": false
3068
+ },
3069
+ "ui.close.response": {
3070
+ "type": "object",
3071
+ "properties": {
3072
+ "jsonrpc": {
3073
+ "const": "2.0"
3074
+ },
3075
+ "id": {
3076
+ "type": "string",
3077
+ "minLength": 1,
3078
+ "maxLength": 128
3079
+ },
3080
+ "result": {
3081
+ "$ref": "#/$defs/ui.close.result"
3082
+ }
3083
+ },
3084
+ "required": [
3085
+ "jsonrpc",
3086
+ "id",
3087
+ "result"
3088
+ ],
3089
+ "additionalProperties": false
3090
+ },
3091
+ "data.publish.params": {
3092
+ "type": "object",
3093
+ "properties": {
3094
+ "sourceId": {
3095
+ "$ref": "common.schema.json#/$defs/id"
3096
+ },
3097
+ "values": {
3098
+ "type": "object",
3099
+ "maxProperties": 32,
3100
+ "propertyNames": {
3101
+ "maxLength": 128
3102
+ },
3103
+ "additionalProperties": {
3104
+ "anyOf": [
3105
+ {
3106
+ "type": "number"
3107
+ },
3108
+ {
3109
+ "type": "boolean"
3110
+ },
3111
+ {
3112
+ "type": "string",
3113
+ "maxLength": 256
3114
+ }
3115
+ ]
3116
+ }
3117
+ },
3118
+ "sequence": {
3119
+ "type": "integer",
3120
+ "minimum": 0,
3121
+ "maximum": 9007199254740991
3122
+ },
3123
+ "ttlMs": {
3124
+ "type": "integer",
3125
+ "minimum": 100,
3126
+ "maximum": 60000
3127
+ }
3128
+ },
3129
+ "required": [
3130
+ "sourceId",
3131
+ "values",
3132
+ "sequence"
3133
+ ],
3134
+ "additionalProperties": false
3135
+ },
3136
+ "data.publish.result": {
3137
+ "type": "object",
3138
+ "properties": {
3139
+ "revision": {
3140
+ "type": "integer",
3141
+ "minimum": 0,
3142
+ "maximum": 9007199254740991
3143
+ }
3144
+ },
3145
+ "required": [
3146
+ "revision"
3147
+ ],
3148
+ "additionalProperties": false
3149
+ },
3150
+ "data.publish.request": {
3151
+ "type": "object",
3152
+ "properties": {
3153
+ "jsonrpc": {
3154
+ "const": "2.0"
3155
+ },
3156
+ "id": {
3157
+ "type": "string",
3158
+ "minLength": 1,
3159
+ "maxLength": 128
3160
+ },
3161
+ "method": {
3162
+ "const": "data.publish"
3163
+ },
3164
+ "params": {
3165
+ "$ref": "#/$defs/data.publish.params"
3166
+ }
3167
+ },
3168
+ "required": [
3169
+ "jsonrpc",
3170
+ "id",
3171
+ "method",
3172
+ "params"
3173
+ ],
3174
+ "additionalProperties": false
3175
+ },
3176
+ "data.publish.response": {
3177
+ "type": "object",
3178
+ "properties": {
3179
+ "jsonrpc": {
3180
+ "const": "2.0"
3181
+ },
3182
+ "id": {
3183
+ "type": "string",
3184
+ "minLength": 1,
3185
+ "maxLength": 128
3186
+ },
3187
+ "result": {
3188
+ "$ref": "#/$defs/data.publish.result"
3189
+ }
3190
+ },
3191
+ "required": [
3192
+ "jsonrpc",
3193
+ "id",
3194
+ "result"
3195
+ ],
3196
+ "additionalProperties": false
3197
+ },
3198
+ "data.remove.params": {
3199
+ "type": "object",
3200
+ "properties": {
3201
+ "sourceId": {
3202
+ "$ref": "common.schema.json#/$defs/id"
3203
+ }
3204
+ },
3205
+ "required": [
3206
+ "sourceId"
3207
+ ],
3208
+ "additionalProperties": false
3209
+ },
3210
+ "data.remove.result": {
3211
+ "type": "object",
3212
+ "properties": {
3213
+ "revision": {
3214
+ "type": "integer",
3215
+ "minimum": 0,
3216
+ "maximum": 9007199254740991
3217
+ }
3218
+ },
3219
+ "required": [
3220
+ "revision"
3221
+ ],
3222
+ "additionalProperties": false
3223
+ },
3224
+ "data.remove.request": {
3225
+ "type": "object",
3226
+ "properties": {
3227
+ "jsonrpc": {
3228
+ "const": "2.0"
3229
+ },
3230
+ "id": {
3231
+ "type": "string",
3232
+ "minLength": 1,
3233
+ "maxLength": 128
3234
+ },
3235
+ "method": {
3236
+ "const": "data.remove"
3237
+ },
3238
+ "params": {
3239
+ "$ref": "#/$defs/data.remove.params"
3240
+ }
3241
+ },
3242
+ "required": [
3243
+ "jsonrpc",
3244
+ "id",
3245
+ "method",
3246
+ "params"
3247
+ ],
3248
+ "additionalProperties": false
3249
+ },
3250
+ "data.remove.response": {
3251
+ "type": "object",
3252
+ "properties": {
3253
+ "jsonrpc": {
3254
+ "const": "2.0"
3255
+ },
3256
+ "id": {
3257
+ "type": "string",
3258
+ "minLength": 1,
3259
+ "maxLength": 128
3260
+ },
3261
+ "result": {
3262
+ "$ref": "#/$defs/data.remove.result"
3263
+ }
3264
+ },
3265
+ "required": [
3266
+ "jsonrpc",
3267
+ "id",
3268
+ "result"
3269
+ ],
3270
+ "additionalProperties": false
3271
+ },
3272
+ "location.transition.notification": {
3273
+ "type": "object",
3274
+ "properties": {
3275
+ "jsonrpc": {
3276
+ "const": "2.0"
3277
+ },
3278
+ "method": {
3279
+ "const": "location.transition"
3280
+ },
3281
+ "params": {
3282
+ "type": "object",
3283
+ "properties": {
3284
+ "phase": {
3285
+ "enum": [
3286
+ "departing",
3287
+ "travelling",
3288
+ "arrived",
3289
+ "cancelled",
3290
+ "loading",
3291
+ "failed"
3292
+ ]
3293
+ },
3294
+ "progress": {
3295
+ "anyOf": [
3296
+ {
3297
+ "type": "null"
3298
+ },
3299
+ {
3300
+ "type": "number",
3301
+ "minimum": 0,
3302
+ "maximum": 1
3303
+ }
3304
+ ]
3305
+ },
3306
+ "to": {
3307
+ "$ref": "#/$defs/destination"
3308
+ },
3309
+ "sessionId": {
3310
+ "type": "string",
3311
+ "minLength": 1,
3312
+ "maxLength": 128
3313
+ },
3314
+ "revision": {
3315
+ "type": "integer",
3316
+ "minimum": 0,
3317
+ "maximum": 9007199254740991
3318
+ },
3319
+ "id": {
3320
+ "type": "string",
3321
+ "minLength": 1,
3322
+ "maxLength": 128
3323
+ },
3324
+ "outputId": {
3325
+ "anyOf": [
3326
+ {
3327
+ "type": "null"
3328
+ },
3329
+ {
3330
+ "type": "string",
3331
+ "minLength": 1,
3332
+ "maxLength": 128
3333
+ }
3334
+ ]
3335
+ },
3336
+ "monotonicMs": {
3337
+ "type": "integer",
3338
+ "minimum": 0,
3339
+ "maximum": 9007199254740991
3340
+ }
3341
+ },
3342
+ "required": [
3343
+ "phase",
3344
+ "progress",
3345
+ "to",
3346
+ "sessionId",
3347
+ "revision",
3348
+ "id",
3349
+ "outputId",
3350
+ "monotonicMs"
3351
+ ],
3352
+ "additionalProperties": false
3353
+ }
3354
+ },
3355
+ "required": [
3356
+ "jsonrpc",
3357
+ "method",
3358
+ "params"
3359
+ ],
3360
+ "additionalProperties": false
3361
+ },
3362
+ "ui.opened.notification": {
3363
+ "type": "object",
3364
+ "properties": {
3365
+ "jsonrpc": {
3366
+ "const": "2.0"
3367
+ },
3368
+ "method": {
3369
+ "const": "ui.opened"
3370
+ },
3371
+ "params": {
3372
+ "type": "object",
3373
+ "properties": {
3374
+ "leaseId": {
3375
+ "type": "string",
3376
+ "minLength": 1,
3377
+ "maxLength": 128
3378
+ },
3379
+ "outputId": {
3380
+ "type": "string",
3381
+ "minLength": 1,
3382
+ "maxLength": 128
3383
+ },
3384
+ "panel": {
3385
+ "type": "string",
3386
+ "minLength": 1,
3387
+ "maxLength": 128
3388
+ },
3389
+ "sessionId": {
3390
+ "type": "string",
3391
+ "minLength": 1,
3392
+ "maxLength": 128
3393
+ },
3394
+ "revision": {
3395
+ "type": "integer",
3396
+ "minimum": 0,
3397
+ "maximum": 9007199254740991
3398
+ }
3399
+ },
3400
+ "required": [
3401
+ "leaseId",
3402
+ "outputId",
3403
+ "panel",
3404
+ "sessionId",
3405
+ "revision"
3406
+ ],
3407
+ "additionalProperties": false
3408
+ }
3409
+ },
3410
+ "required": [
3411
+ "jsonrpc",
3412
+ "method",
3413
+ "params"
3414
+ ],
3415
+ "additionalProperties": false
3416
+ },
3417
+ "ui.closed.notification": {
3418
+ "type": "object",
3419
+ "properties": {
3420
+ "jsonrpc": {
3421
+ "const": "2.0"
3422
+ },
3423
+ "method": {
3424
+ "const": "ui.closed"
3425
+ },
3426
+ "params": {
3427
+ "type": "object",
3428
+ "properties": {
3429
+ "leaseId": {
3430
+ "type": "string",
3431
+ "minLength": 1,
3432
+ "maxLength": 128
3433
+ },
3434
+ "outputId": {
3435
+ "type": "string",
3436
+ "minLength": 1,
3437
+ "maxLength": 128
3438
+ },
3439
+ "sessionId": {
3440
+ "type": "string",
3441
+ "minLength": 1,
3442
+ "maxLength": 128
3443
+ },
3444
+ "revision": {
3445
+ "type": "integer",
3446
+ "minimum": 0,
3447
+ "maximum": 9007199254740991
3448
+ }
3449
+ },
3450
+ "required": [
3451
+ "leaseId",
3452
+ "outputId",
3453
+ "sessionId",
3454
+ "revision"
3455
+ ],
3456
+ "additionalProperties": false
3457
+ }
3458
+ },
3459
+ "required": [
3460
+ "jsonrpc",
3461
+ "method",
3462
+ "params"
3463
+ ],
3464
+ "additionalProperties": false
3465
+ },
3466
+ "data.updated.notification": {
3467
+ "type": "object",
3468
+ "properties": {
3469
+ "jsonrpc": {
3470
+ "const": "2.0"
3471
+ },
3472
+ "method": {
3473
+ "const": "data.updated"
3474
+ },
3475
+ "params": {
3476
+ "type": "object",
3477
+ "properties": {
3478
+ "sourceId": {
3479
+ "$ref": "common.schema.json#/$defs/id"
3480
+ },
3481
+ "values": {
3482
+ "type": "object",
3483
+ "maxProperties": 32,
3484
+ "propertyNames": {
3485
+ "maxLength": 128
3486
+ },
3487
+ "additionalProperties": {
3488
+ "anyOf": [
3489
+ {
3490
+ "type": "number"
3491
+ },
3492
+ {
3493
+ "type": "boolean"
3494
+ },
3495
+ {
3496
+ "type": "string",
3497
+ "maxLength": 256
3498
+ }
3499
+ ]
3500
+ }
3501
+ },
3502
+ "sequence": {
3503
+ "type": "integer",
3504
+ "minimum": 0,
3505
+ "maximum": 9007199254740991
3506
+ },
3507
+ "monotonicMs": {
3508
+ "type": "integer",
3509
+ "minimum": 0,
3510
+ "maximum": 9007199254740991
3511
+ },
3512
+ "ttlMs": {
3513
+ "type": "integer",
3514
+ "minimum": 100,
3515
+ "maximum": 60000
3516
+ },
3517
+ "sessionId": {
3518
+ "type": "string",
3519
+ "minLength": 1,
3520
+ "maxLength": 128
3521
+ },
3522
+ "revision": {
3523
+ "type": "integer",
3524
+ "minimum": 0,
3525
+ "maximum": 9007199254740991
3526
+ }
3527
+ },
3528
+ "required": [
3529
+ "sourceId",
3530
+ "values",
3531
+ "sequence",
3532
+ "monotonicMs",
3533
+ "ttlMs",
3534
+ "sessionId",
3535
+ "revision"
3536
+ ],
3537
+ "additionalProperties": false
3538
+ }
3539
+ },
3540
+ "required": [
3541
+ "jsonrpc",
3542
+ "method",
3543
+ "params"
3544
+ ],
3545
+ "additionalProperties": false
3546
+ },
3547
+ "destination": {
3548
+ "oneOf": [
3549
+ {
3550
+ "$ref": "#/$defs/target"
3551
+ },
3552
+ {
3553
+ "type": "object",
3554
+ "properties": {
3555
+ "worldId": {
3556
+ "$ref": "common.schema.json#/$defs/id"
3557
+ },
3558
+ "spawnId": {
3559
+ "$ref": "common.schema.json#/$defs/slug"
3560
+ }
3561
+ },
3562
+ "required": [
3563
+ "worldId"
3564
+ ],
3565
+ "additionalProperties": false
3566
+ }
3567
+ ]
3568
+ }
3569
+ }
3570
+ }