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