@skenion/contracts 0.34.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 (54) hide show
  1. package/README.md +7 -0
  2. package/dist/audioClock.d.ts +3 -0
  3. package/dist/audioClock.d.ts.map +1 -0
  4. package/dist/audioClock.js +41 -0
  5. package/dist/audioClock.js.map +1 -0
  6. package/dist/builtins.generated.d.ts +2689 -0
  7. package/dist/builtins.generated.d.ts.map +1 -0
  8. package/dist/builtins.generated.js +6031 -0
  9. package/dist/builtins.generated.js.map +1 -0
  10. package/dist/clock.d.ts +39 -0
  11. package/dist/clock.d.ts.map +1 -0
  12. package/dist/clock.js +157 -0
  13. package/dist/clock.js.map +1 -0
  14. package/dist/conversion.d.ts +158 -0
  15. package/dist/conversion.d.ts.map +1 -0
  16. package/dist/conversion.js +199 -0
  17. package/dist/conversion.js.map +1 -0
  18. package/dist/generated/schemas.d.ts +2189 -0
  19. package/dist/generated/schemas.d.ts.map +1 -0
  20. package/dist/generated/schemas.js +2839 -0
  21. package/dist/generated/schemas.js.map +1 -0
  22. package/dist/index.d.ts +15 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +12 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/objectText.d.ts +3 -0
  27. package/dist/objectText.d.ts.map +1 -0
  28. package/dist/objectText.js +292 -0
  29. package/dist/objectText.js.map +1 -0
  30. package/dist/patch.d.ts +7 -0
  31. package/dist/patch.d.ts.map +1 -0
  32. package/dist/patch.js +296 -0
  33. package/dist/patch.js.map +1 -0
  34. package/dist/project.d.ts +3 -0
  35. package/dist/project.d.ts.map +1 -0
  36. package/dist/project.js +22 -0
  37. package/dist/project.js.map +1 -0
  38. package/dist/runtimeHttp.d.ts +23 -0
  39. package/dist/runtimeHttp.d.ts.map +1 -0
  40. package/dist/runtimeHttp.js +474 -0
  41. package/dist/runtimeHttp.js.map +1 -0
  42. package/dist/shaderInterface.d.ts +6 -0
  43. package/dist/shaderInterface.d.ts.map +1 -0
  44. package/dist/shaderInterface.js +262 -0
  45. package/dist/shaderInterface.js.map +1 -0
  46. package/dist/types.d.ts +1122 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +2 -0
  49. package/dist/types.js.map +1 -0
  50. package/dist/validate.d.ts +16 -0
  51. package/dist/validate.d.ts.map +1 -0
  52. package/dist/validate.js +485 -0
  53. package/dist/validate.js.map +1 -0
  54. package/package.json +104 -0
@@ -0,0 +1,2839 @@
1
+ /* This file is generated from the repository JSON Schema sources. */
2
+ export const graphV01Schema = {
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "$id": "https://skenion.dev/schemas/graph/v0.1/graph.schema.json",
5
+ "title": "Skenion Graph Document v0.1",
6
+ "type": "object",
7
+ "required": [
8
+ "schema",
9
+ "schemaVersion",
10
+ "id",
11
+ "revision",
12
+ "nodes",
13
+ "edges"
14
+ ],
15
+ "properties": {
16
+ "schema": {
17
+ "const": "skenion.graph"
18
+ },
19
+ "schemaVersion": {
20
+ "const": "0.1.0"
21
+ },
22
+ "id": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "revision": {
27
+ "type": "string",
28
+ "minLength": 1
29
+ },
30
+ "nodes": {
31
+ "type": "array",
32
+ "items": {
33
+ "$ref": "#/$defs/node"
34
+ }
35
+ },
36
+ "edges": {
37
+ "type": "array",
38
+ "items": {
39
+ "$ref": "#/$defs/edge"
40
+ }
41
+ }
42
+ },
43
+ "additionalProperties": false,
44
+ "$defs": {
45
+ "node": {
46
+ "type": "object",
47
+ "required": [
48
+ "id",
49
+ "kind",
50
+ "kindVersion",
51
+ "params",
52
+ "ports"
53
+ ],
54
+ "properties": {
55
+ "id": {
56
+ "type": "string",
57
+ "minLength": 1
58
+ },
59
+ "kind": {
60
+ "type": "string",
61
+ "minLength": 1
62
+ },
63
+ "kindVersion": {
64
+ "type": "string",
65
+ "minLength": 1
66
+ },
67
+ "params": {
68
+ "type": "object",
69
+ "additionalProperties": true
70
+ },
71
+ "ports": {
72
+ "type": "array",
73
+ "items": {
74
+ "$ref": "#/$defs/port"
75
+ }
76
+ }
77
+ },
78
+ "additionalProperties": false
79
+ },
80
+ "port": {
81
+ "type": "object",
82
+ "required": [
83
+ "id",
84
+ "direction",
85
+ "type"
86
+ ],
87
+ "properties": {
88
+ "id": {
89
+ "type": "string",
90
+ "minLength": 1
91
+ },
92
+ "direction": {
93
+ "enum": [
94
+ "input",
95
+ "output"
96
+ ]
97
+ },
98
+ "label": {
99
+ "type": "string"
100
+ },
101
+ "type": {
102
+ "$ref": "#/$defs/dataType"
103
+ },
104
+ "required": {
105
+ "type": "boolean"
106
+ },
107
+ "default": true,
108
+ "activation": {
109
+ "enum": [
110
+ "trigger",
111
+ "latched"
112
+ ]
113
+ }
114
+ },
115
+ "additionalProperties": false
116
+ },
117
+ "dataType": {
118
+ "type": "object",
119
+ "required": [
120
+ "flow",
121
+ "dataKind"
122
+ ],
123
+ "properties": {
124
+ "flow": {
125
+ "enum": [
126
+ "value",
127
+ "event",
128
+ "signal",
129
+ "stream",
130
+ "resource"
131
+ ]
132
+ },
133
+ "dataKind": {
134
+ "type": "string",
135
+ "minLength": 1
136
+ },
137
+ "unit": {
138
+ "type": "string"
139
+ },
140
+ "range": {
141
+ "type": "object",
142
+ "properties": {
143
+ "min": {
144
+ "type": "number"
145
+ },
146
+ "max": {
147
+ "type": "number"
148
+ },
149
+ "step": {
150
+ "type": "number",
151
+ "exclusiveMinimum": 0
152
+ }
153
+ },
154
+ "additionalProperties": false
155
+ },
156
+ "shape": {
157
+ "type": "array",
158
+ "items": {
159
+ "type": "integer",
160
+ "minimum": 1
161
+ }
162
+ },
163
+ "channels": {
164
+ "type": "integer",
165
+ "minimum": 1
166
+ },
167
+ "sampleRate": {
168
+ "type": "number",
169
+ "exclusiveMinimum": 0
170
+ },
171
+ "format": {
172
+ "oneOf": [
173
+ {
174
+ "type": "string",
175
+ "minLength": 1
176
+ },
177
+ {
178
+ "type": "array",
179
+ "items": {
180
+ "type": "string",
181
+ "minLength": 1
182
+ }
183
+ }
184
+ ]
185
+ },
186
+ "colorSpace": {
187
+ "type": "string"
188
+ },
189
+ "frameRate": {
190
+ "type": "number",
191
+ "exclusiveMinimum": 0
192
+ },
193
+ "alphaPolicy": {
194
+ "enum": [
195
+ "error",
196
+ "white",
197
+ "black",
198
+ "luminance"
199
+ ]
200
+ },
201
+ "values": {
202
+ "type": "array",
203
+ "items": {
204
+ "oneOf": [
205
+ {
206
+ "type": "string"
207
+ },
208
+ {
209
+ "type": "number"
210
+ },
211
+ {
212
+ "type": "boolean"
213
+ }
214
+ ]
215
+ }
216
+ }
217
+ },
218
+ "additionalProperties": false
219
+ },
220
+ "edge": {
221
+ "type": "object",
222
+ "required": [
223
+ "from",
224
+ "to"
225
+ ],
226
+ "properties": {
227
+ "from": {
228
+ "$ref": "#/$defs/portRef"
229
+ },
230
+ "to": {
231
+ "$ref": "#/$defs/portRef"
232
+ }
233
+ },
234
+ "additionalProperties": false
235
+ },
236
+ "portRef": {
237
+ "type": "object",
238
+ "required": [
239
+ "node",
240
+ "port"
241
+ ],
242
+ "properties": {
243
+ "node": {
244
+ "type": "string",
245
+ "minLength": 1
246
+ },
247
+ "port": {
248
+ "type": "string",
249
+ "minLength": 1
250
+ }
251
+ },
252
+ "additionalProperties": false
253
+ }
254
+ }
255
+ };
256
+ export const graphV02Schema = {
257
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
258
+ "$id": "https://skenion.dev/schemas/graph/v0.2/graph.schema.json",
259
+ "title": "Skenion Graph Document v0.2",
260
+ "type": "object",
261
+ "required": [
262
+ "schema",
263
+ "schemaVersion",
264
+ "id",
265
+ "revision",
266
+ "nodes",
267
+ "edges"
268
+ ],
269
+ "properties": {
270
+ "schema": {
271
+ "const": "skenion.graph"
272
+ },
273
+ "schemaVersion": {
274
+ "const": "0.2.0"
275
+ },
276
+ "id": {
277
+ "type": "string",
278
+ "minLength": 1
279
+ },
280
+ "revision": {
281
+ "type": "string",
282
+ "minLength": 1
283
+ },
284
+ "nodes": {
285
+ "type": "array",
286
+ "items": {
287
+ "$ref": "#/$defs/node"
288
+ }
289
+ },
290
+ "edges": {
291
+ "type": "array",
292
+ "items": {
293
+ "$ref": "#/$defs/edge"
294
+ }
295
+ },
296
+ "cableStyles": {
297
+ "$ref": "#/$defs/cableStyleRegistry"
298
+ }
299
+ },
300
+ "additionalProperties": false,
301
+ "$defs": {
302
+ "node": {
303
+ "type": "object",
304
+ "required": [
305
+ "id",
306
+ "kind",
307
+ "kindVersion",
308
+ "params",
309
+ "ports"
310
+ ],
311
+ "properties": {
312
+ "id": {
313
+ "type": "string",
314
+ "minLength": 1
315
+ },
316
+ "kind": {
317
+ "type": "string",
318
+ "minLength": 1
319
+ },
320
+ "kindVersion": {
321
+ "type": "string",
322
+ "minLength": 1
323
+ },
324
+ "params": {
325
+ "type": "object",
326
+ "additionalProperties": true
327
+ },
328
+ "ports": {
329
+ "type": "array",
330
+ "items": {
331
+ "$ref": "#/$defs/port"
332
+ }
333
+ },
334
+ "portGroups": {
335
+ "type": "array",
336
+ "items": {
337
+ "$ref": "#/$defs/portGroup"
338
+ }
339
+ }
340
+ },
341
+ "additionalProperties": false
342
+ },
343
+ "port": {
344
+ "type": "object",
345
+ "required": [
346
+ "id",
347
+ "direction",
348
+ "type"
349
+ ],
350
+ "properties": {
351
+ "id": {
352
+ "type": "string",
353
+ "minLength": 1
354
+ },
355
+ "direction": {
356
+ "enum": [
357
+ "input",
358
+ "output"
359
+ ]
360
+ },
361
+ "type": {
362
+ "type": "string",
363
+ "minLength": 1
364
+ },
365
+ "label": {
366
+ "type": "string"
367
+ },
368
+ "rate": {
369
+ "enum": [
370
+ "event",
371
+ "control",
372
+ "audio",
373
+ "render",
374
+ "gpu",
375
+ "resource",
376
+ "io"
377
+ ]
378
+ },
379
+ "accepts": {
380
+ "type": "array",
381
+ "items": {
382
+ "type": "string",
383
+ "minLength": 1
384
+ },
385
+ "uniqueItems": true
386
+ },
387
+ "minConnections": {
388
+ "type": "integer",
389
+ "minimum": 0
390
+ },
391
+ "maxConnections": {
392
+ "oneOf": [
393
+ {
394
+ "type": "integer",
395
+ "minimum": 0
396
+ },
397
+ {
398
+ "type": "null"
399
+ }
400
+ ]
401
+ },
402
+ "mergePolicy": {
403
+ "enum": [
404
+ "forbid",
405
+ "ordered-events",
406
+ "mix",
407
+ "array",
408
+ "latest",
409
+ "first",
410
+ "custom"
411
+ ]
412
+ },
413
+ "fanOutPolicy": {
414
+ "enum": [
415
+ "allow",
416
+ "forbid",
417
+ "copy",
418
+ "share"
419
+ ]
420
+ },
421
+ "triggerMode": {
422
+ "enum": [
423
+ "passive",
424
+ "trigger",
425
+ "latched"
426
+ ]
427
+ },
428
+ "defaultValue": true,
429
+ "latch": {
430
+ "type": "boolean"
431
+ },
432
+ "required": {
433
+ "type": "boolean"
434
+ },
435
+ "styleKey": {
436
+ "type": "string",
437
+ "minLength": 1
438
+ },
439
+ "group": {
440
+ "type": "string",
441
+ "minLength": 1
442
+ },
443
+ "description": {
444
+ "type": "string"
445
+ }
446
+ },
447
+ "additionalProperties": false
448
+ },
449
+ "portGroup": {
450
+ "type": "object",
451
+ "required": [
452
+ "id",
453
+ "direction",
454
+ "type",
455
+ "minPorts"
456
+ ],
457
+ "properties": {
458
+ "id": {
459
+ "type": "string",
460
+ "minLength": 1
461
+ },
462
+ "label": {
463
+ "type": "string"
464
+ },
465
+ "direction": {
466
+ "enum": [
467
+ "input",
468
+ "output"
469
+ ]
470
+ },
471
+ "type": {
472
+ "type": "string",
473
+ "minLength": 1
474
+ },
475
+ "rate": {
476
+ "enum": [
477
+ "event",
478
+ "control",
479
+ "audio",
480
+ "render",
481
+ "gpu",
482
+ "resource",
483
+ "io"
484
+ ]
485
+ },
486
+ "minPorts": {
487
+ "type": "integer",
488
+ "minimum": 0
489
+ },
490
+ "maxPorts": {
491
+ "type": "integer",
492
+ "minimum": 0
493
+ },
494
+ "ordered": {
495
+ "type": "boolean"
496
+ },
497
+ "portIdPattern": {
498
+ "type": "string",
499
+ "minLength": 1
500
+ },
501
+ "createLabel": {
502
+ "type": "string"
503
+ },
504
+ "defaultPortSpec": {
505
+ "$ref": "#/$defs/port"
506
+ }
507
+ },
508
+ "additionalProperties": false
509
+ },
510
+ "edge": {
511
+ "type": "object",
512
+ "required": [
513
+ "id",
514
+ "source",
515
+ "target"
516
+ ],
517
+ "properties": {
518
+ "id": {
519
+ "type": "string",
520
+ "minLength": 1
521
+ },
522
+ "source": {
523
+ "$ref": "#/$defs/portEndpoint"
524
+ },
525
+ "target": {
526
+ "$ref": "#/$defs/portEndpoint"
527
+ },
528
+ "resolvedType": {
529
+ "type": "string",
530
+ "minLength": 1
531
+ },
532
+ "order": {
533
+ "type": "integer",
534
+ "minimum": 0
535
+ },
536
+ "enabled": {
537
+ "type": "boolean"
538
+ },
539
+ "adapter": {
540
+ "type": "string",
541
+ "minLength": 1
542
+ },
543
+ "feedback": {
544
+ "$ref": "#/$defs/feedbackPolicy"
545
+ },
546
+ "styleOverride": {
547
+ "type": "string",
548
+ "minLength": 1
549
+ },
550
+ "label": {
551
+ "type": "string"
552
+ },
553
+ "description": {
554
+ "type": "string"
555
+ }
556
+ },
557
+ "additionalProperties": false
558
+ },
559
+ "portEndpoint": {
560
+ "type": "object",
561
+ "required": [
562
+ "nodeId",
563
+ "portId"
564
+ ],
565
+ "properties": {
566
+ "nodeId": {
567
+ "type": "string",
568
+ "minLength": 1
569
+ },
570
+ "portId": {
571
+ "type": "string",
572
+ "minLength": 1
573
+ }
574
+ },
575
+ "additionalProperties": false
576
+ },
577
+ "feedbackPolicy": {
578
+ "type": "object",
579
+ "required": [
580
+ "enabled",
581
+ "boundary"
582
+ ],
583
+ "properties": {
584
+ "enabled": {
585
+ "type": "boolean"
586
+ },
587
+ "boundary": {
588
+ "enum": [
589
+ "same-turn",
590
+ "next-tick",
591
+ "control-frame",
592
+ "audio-sample",
593
+ "audio-block",
594
+ "render-frame",
595
+ "gpu-pingpong",
596
+ "manual"
597
+ ]
598
+ },
599
+ "initialValue": true,
600
+ "recursionLimit": {
601
+ "type": "integer",
602
+ "minimum": 0
603
+ },
604
+ "maxEventsPerTick": {
605
+ "type": "integer",
606
+ "minimum": 1
607
+ },
608
+ "maxIterationsPerFrame": {
609
+ "type": "integer",
610
+ "minimum": 1
611
+ },
612
+ "bufferMode": {
613
+ "enum": [
614
+ "latest",
615
+ "queue",
616
+ "ring",
617
+ "pingpong"
618
+ ]
619
+ },
620
+ "intentional": {
621
+ "type": "boolean"
622
+ },
623
+ "label": {
624
+ "type": "string"
625
+ }
626
+ },
627
+ "additionalProperties": false
628
+ },
629
+ "cableStyleRegistry": {
630
+ "type": "object",
631
+ "additionalProperties": {
632
+ "type": "object",
633
+ "properties": {
634
+ "color": {
635
+ "type": "string"
636
+ },
637
+ "pattern": {
638
+ "enum": [
639
+ "solid",
640
+ "dashed",
641
+ "dotted"
642
+ ]
643
+ },
644
+ "width": {
645
+ "type": "number",
646
+ "exclusiveMinimum": 0
647
+ },
648
+ "marker": {
649
+ "type": "string"
650
+ }
651
+ },
652
+ "additionalProperties": false
653
+ }
654
+ }
655
+ }
656
+ };
657
+ export const viewStateV01Schema = {
658
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
659
+ "$id": "https://skenion.dev/schemas/view/v0.1/view-state.schema.json",
660
+ "title": "Skenion View State v0.1",
661
+ "type": "object",
662
+ "required": [
663
+ "schema",
664
+ "schemaVersion",
665
+ "canvas"
666
+ ],
667
+ "properties": {
668
+ "schema": {
669
+ "const": "skenion.view-state"
670
+ },
671
+ "schemaVersion": {
672
+ "const": "0.1.0"
673
+ },
674
+ "canvas": {
675
+ "type": "object",
676
+ "required": [
677
+ "nodes"
678
+ ],
679
+ "properties": {
680
+ "nodes": {
681
+ "type": "object",
682
+ "additionalProperties": {
683
+ "$ref": "#/$defs/canvasNodeView"
684
+ }
685
+ },
686
+ "viewport": {
687
+ "$ref": "#/$defs/canvasViewport"
688
+ }
689
+ },
690
+ "additionalProperties": false
691
+ }
692
+ },
693
+ "additionalProperties": false,
694
+ "$defs": {
695
+ "canvasNodeView": {
696
+ "type": "object",
697
+ "required": [
698
+ "x",
699
+ "y"
700
+ ],
701
+ "properties": {
702
+ "x": {
703
+ "type": "number"
704
+ },
705
+ "y": {
706
+ "type": "number"
707
+ },
708
+ "width": {
709
+ "type": "number",
710
+ "exclusiveMinimum": 0
711
+ },
712
+ "height": {
713
+ "type": "number",
714
+ "exclusiveMinimum": 0
715
+ },
716
+ "collapsed": {
717
+ "type": "boolean"
718
+ }
719
+ },
720
+ "additionalProperties": false
721
+ },
722
+ "canvasViewport": {
723
+ "type": "object",
724
+ "required": [
725
+ "x",
726
+ "y",
727
+ "zoom"
728
+ ],
729
+ "properties": {
730
+ "x": {
731
+ "type": "number"
732
+ },
733
+ "y": {
734
+ "type": "number"
735
+ },
736
+ "zoom": {
737
+ "type": "number",
738
+ "exclusiveMinimum": 0
739
+ }
740
+ },
741
+ "additionalProperties": false
742
+ }
743
+ }
744
+ };
745
+ export const projectV01Schema = {
746
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
747
+ "$id": "https://skenion.dev/schemas/project/v0.1/project.schema.json",
748
+ "title": "Skenion Project Document v0.1",
749
+ "type": "object",
750
+ "required": [
751
+ "schema",
752
+ "schemaVersion",
753
+ "id",
754
+ "revision",
755
+ "graph",
756
+ "viewState"
757
+ ],
758
+ "properties": {
759
+ "schema": {
760
+ "const": "skenion.project"
761
+ },
762
+ "schemaVersion": {
763
+ "const": "0.1.0"
764
+ },
765
+ "id": {
766
+ "type": "string",
767
+ "minLength": 1
768
+ },
769
+ "revision": {
770
+ "type": "string",
771
+ "minLength": 1
772
+ },
773
+ "metadata": {
774
+ "type": "object",
775
+ "properties": {
776
+ "title": {
777
+ "type": "string"
778
+ },
779
+ "description": {
780
+ "type": "string"
781
+ },
782
+ "createdAt": {
783
+ "type": "string"
784
+ },
785
+ "updatedAt": {
786
+ "type": "string"
787
+ }
788
+ },
789
+ "additionalProperties": true
790
+ },
791
+ "graph": {
792
+ "$ref": "https://skenion.dev/schemas/graph/v0.1/graph.schema.json"
793
+ },
794
+ "viewState": {
795
+ "$ref": "https://skenion.dev/schemas/view/v0.1/view-state.schema.json"
796
+ },
797
+ "tutorial": {
798
+ "type": "object",
799
+ "additionalProperties": true
800
+ },
801
+ "help": {
802
+ "type": "object",
803
+ "additionalProperties": true
804
+ }
805
+ },
806
+ "additionalProperties": false
807
+ };
808
+ export const graphPatchV01Schema = {
809
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
810
+ "$id": "https://skenion.dev/schemas/graph/v0.1/patch.schema.json",
811
+ "title": "Skenion Graph Patch v0.1",
812
+ "type": "object",
813
+ "required": [
814
+ "schema",
815
+ "schemaVersion",
816
+ "id",
817
+ "baseRevision",
818
+ "ops"
819
+ ],
820
+ "properties": {
821
+ "schema": {
822
+ "const": "skenion.graph.patch"
823
+ },
824
+ "schemaVersion": {
825
+ "const": "0.1.0"
826
+ },
827
+ "id": {
828
+ "type": "string",
829
+ "minLength": 1
830
+ },
831
+ "baseRevision": {
832
+ "type": "string",
833
+ "minLength": 1
834
+ },
835
+ "clientId": {
836
+ "type": "string",
837
+ "minLength": 1
838
+ },
839
+ "createdAt": {
840
+ "type": "string",
841
+ "minLength": 1
842
+ },
843
+ "description": {
844
+ "type": "string"
845
+ },
846
+ "ops": {
847
+ "type": "array",
848
+ "items": {
849
+ "oneOf": [
850
+ {
851
+ "$ref": "#/$defs/addNode"
852
+ },
853
+ {
854
+ "$ref": "#/$defs/removeNode"
855
+ },
856
+ {
857
+ "$ref": "#/$defs/replaceNode"
858
+ },
859
+ {
860
+ "$ref": "#/$defs/setNodeParams"
861
+ },
862
+ {
863
+ "$ref": "#/$defs/setNodeParam"
864
+ },
865
+ {
866
+ "$ref": "#/$defs/addEdge"
867
+ },
868
+ {
869
+ "$ref": "#/$defs/removeEdge"
870
+ },
871
+ {
872
+ "$ref": "#/$defs/replaceNodeInterface"
873
+ }
874
+ ]
875
+ }
876
+ }
877
+ },
878
+ "additionalProperties": false,
879
+ "$defs": {
880
+ "addNode": {
881
+ "type": "object",
882
+ "required": [
883
+ "op",
884
+ "node"
885
+ ],
886
+ "properties": {
887
+ "op": {
888
+ "const": "addNode"
889
+ },
890
+ "node": {
891
+ "$ref": "#/$defs/node"
892
+ }
893
+ },
894
+ "additionalProperties": false
895
+ },
896
+ "removeNode": {
897
+ "type": "object",
898
+ "required": [
899
+ "op",
900
+ "nodeId"
901
+ ],
902
+ "properties": {
903
+ "op": {
904
+ "const": "removeNode"
905
+ },
906
+ "nodeId": {
907
+ "type": "string",
908
+ "minLength": 1
909
+ }
910
+ },
911
+ "additionalProperties": false
912
+ },
913
+ "replaceNode": {
914
+ "type": "object",
915
+ "required": [
916
+ "op",
917
+ "nodeId",
918
+ "node",
919
+ "edgePolicy"
920
+ ],
921
+ "properties": {
922
+ "op": {
923
+ "const": "replaceNode"
924
+ },
925
+ "nodeId": {
926
+ "type": "string",
927
+ "minLength": 1
928
+ },
929
+ "node": {
930
+ "$ref": "#/$defs/node"
931
+ },
932
+ "edgePolicy": {
933
+ "const": "removeInvalidEdges"
934
+ }
935
+ },
936
+ "additionalProperties": false
937
+ },
938
+ "setNodeParams": {
939
+ "type": "object",
940
+ "required": [
941
+ "op",
942
+ "nodeId",
943
+ "params"
944
+ ],
945
+ "properties": {
946
+ "op": {
947
+ "const": "setNodeParams"
948
+ },
949
+ "nodeId": {
950
+ "type": "string",
951
+ "minLength": 1
952
+ },
953
+ "params": {
954
+ "type": "object",
955
+ "additionalProperties": true
956
+ }
957
+ },
958
+ "additionalProperties": false
959
+ },
960
+ "setNodeParam": {
961
+ "type": "object",
962
+ "required": [
963
+ "op",
964
+ "nodeId",
965
+ "key",
966
+ "value"
967
+ ],
968
+ "properties": {
969
+ "op": {
970
+ "const": "setNodeParam"
971
+ },
972
+ "nodeId": {
973
+ "type": "string",
974
+ "minLength": 1
975
+ },
976
+ "key": {
977
+ "type": "string",
978
+ "minLength": 1
979
+ },
980
+ "value": true
981
+ },
982
+ "additionalProperties": false
983
+ },
984
+ "addEdge": {
985
+ "type": "object",
986
+ "required": [
987
+ "op",
988
+ "edge"
989
+ ],
990
+ "properties": {
991
+ "op": {
992
+ "const": "addEdge"
993
+ },
994
+ "edge": {
995
+ "$ref": "#/$defs/edge"
996
+ }
997
+ },
998
+ "additionalProperties": false
999
+ },
1000
+ "removeEdge": {
1001
+ "type": "object",
1002
+ "required": [
1003
+ "op",
1004
+ "edge"
1005
+ ],
1006
+ "properties": {
1007
+ "op": {
1008
+ "const": "removeEdge"
1009
+ },
1010
+ "edge": {
1011
+ "$ref": "#/$defs/edge"
1012
+ }
1013
+ },
1014
+ "additionalProperties": false
1015
+ },
1016
+ "replaceNodeInterface": {
1017
+ "type": "object",
1018
+ "required": [
1019
+ "op",
1020
+ "nodeId",
1021
+ "ports",
1022
+ "edgePolicy"
1023
+ ],
1024
+ "properties": {
1025
+ "op": {
1026
+ "const": "replaceNodeInterface"
1027
+ },
1028
+ "nodeId": {
1029
+ "type": "string",
1030
+ "minLength": 1
1031
+ },
1032
+ "ports": {
1033
+ "type": "array",
1034
+ "items": {
1035
+ "$ref": "#/$defs/port"
1036
+ }
1037
+ },
1038
+ "edgePolicy": {
1039
+ "const": "removeInvalidEdges"
1040
+ }
1041
+ },
1042
+ "additionalProperties": false
1043
+ },
1044
+ "node": {
1045
+ "type": "object",
1046
+ "required": [
1047
+ "id",
1048
+ "kind",
1049
+ "kindVersion",
1050
+ "params",
1051
+ "ports"
1052
+ ],
1053
+ "properties": {
1054
+ "id": {
1055
+ "type": "string",
1056
+ "minLength": 1
1057
+ },
1058
+ "kind": {
1059
+ "type": "string",
1060
+ "minLength": 1
1061
+ },
1062
+ "kindVersion": {
1063
+ "type": "string",
1064
+ "minLength": 1
1065
+ },
1066
+ "params": {
1067
+ "type": "object",
1068
+ "additionalProperties": true
1069
+ },
1070
+ "ports": {
1071
+ "type": "array",
1072
+ "items": {
1073
+ "$ref": "#/$defs/port"
1074
+ }
1075
+ }
1076
+ },
1077
+ "additionalProperties": false
1078
+ },
1079
+ "port": {
1080
+ "type": "object",
1081
+ "required": [
1082
+ "id",
1083
+ "direction",
1084
+ "type"
1085
+ ],
1086
+ "properties": {
1087
+ "id": {
1088
+ "type": "string",
1089
+ "minLength": 1
1090
+ },
1091
+ "direction": {
1092
+ "enum": [
1093
+ "input",
1094
+ "output"
1095
+ ]
1096
+ },
1097
+ "label": {
1098
+ "type": "string"
1099
+ },
1100
+ "type": {
1101
+ "$ref": "#/$defs/dataType"
1102
+ },
1103
+ "required": {
1104
+ "type": "boolean"
1105
+ },
1106
+ "default": true,
1107
+ "activation": {
1108
+ "enum": [
1109
+ "trigger",
1110
+ "latched"
1111
+ ]
1112
+ }
1113
+ },
1114
+ "additionalProperties": false
1115
+ },
1116
+ "dataType": {
1117
+ "type": "object",
1118
+ "required": [
1119
+ "flow",
1120
+ "dataKind"
1121
+ ],
1122
+ "properties": {
1123
+ "flow": {
1124
+ "enum": [
1125
+ "value",
1126
+ "event",
1127
+ "signal",
1128
+ "stream",
1129
+ "resource"
1130
+ ]
1131
+ },
1132
+ "dataKind": {
1133
+ "type": "string",
1134
+ "minLength": 1
1135
+ },
1136
+ "unit": {
1137
+ "type": "string"
1138
+ },
1139
+ "range": {
1140
+ "type": "object",
1141
+ "properties": {
1142
+ "min": {
1143
+ "type": "number"
1144
+ },
1145
+ "max": {
1146
+ "type": "number"
1147
+ },
1148
+ "step": {
1149
+ "type": "number",
1150
+ "exclusiveMinimum": 0
1151
+ }
1152
+ },
1153
+ "additionalProperties": false
1154
+ },
1155
+ "shape": {
1156
+ "type": "array",
1157
+ "items": {
1158
+ "type": "integer",
1159
+ "minimum": 1
1160
+ }
1161
+ },
1162
+ "channels": {
1163
+ "type": "integer",
1164
+ "minimum": 1
1165
+ },
1166
+ "sampleRate": {
1167
+ "type": "number",
1168
+ "exclusiveMinimum": 0
1169
+ },
1170
+ "format": {
1171
+ "oneOf": [
1172
+ {
1173
+ "type": "string",
1174
+ "minLength": 1
1175
+ },
1176
+ {
1177
+ "type": "array",
1178
+ "items": {
1179
+ "type": "string",
1180
+ "minLength": 1
1181
+ }
1182
+ }
1183
+ ]
1184
+ },
1185
+ "colorSpace": {
1186
+ "type": "string"
1187
+ },
1188
+ "frameRate": {
1189
+ "type": "number",
1190
+ "exclusiveMinimum": 0
1191
+ },
1192
+ "alphaPolicy": {
1193
+ "enum": [
1194
+ "error",
1195
+ "white",
1196
+ "black",
1197
+ "luminance"
1198
+ ]
1199
+ },
1200
+ "values": {
1201
+ "type": "array",
1202
+ "items": {
1203
+ "oneOf": [
1204
+ {
1205
+ "type": "string"
1206
+ },
1207
+ {
1208
+ "type": "number"
1209
+ },
1210
+ {
1211
+ "type": "boolean"
1212
+ }
1213
+ ]
1214
+ }
1215
+ }
1216
+ },
1217
+ "additionalProperties": false
1218
+ },
1219
+ "edge": {
1220
+ "type": "object",
1221
+ "required": [
1222
+ "from",
1223
+ "to"
1224
+ ],
1225
+ "properties": {
1226
+ "from": {
1227
+ "$ref": "#/$defs/portRef"
1228
+ },
1229
+ "to": {
1230
+ "$ref": "#/$defs/portRef"
1231
+ }
1232
+ },
1233
+ "additionalProperties": false
1234
+ },
1235
+ "portRef": {
1236
+ "type": "object",
1237
+ "required": [
1238
+ "node",
1239
+ "port"
1240
+ ],
1241
+ "properties": {
1242
+ "node": {
1243
+ "type": "string",
1244
+ "minLength": 1
1245
+ },
1246
+ "port": {
1247
+ "type": "string",
1248
+ "minLength": 1
1249
+ }
1250
+ },
1251
+ "additionalProperties": false
1252
+ }
1253
+ }
1254
+ };
1255
+ export const graphPatchEventV01Schema = {
1256
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1257
+ "$id": "https://skenion.dev/schemas/graph/v0.1/patch-event.schema.json",
1258
+ "title": "Skenion Graph Patch Event v0.1",
1259
+ "type": "object",
1260
+ "required": [
1261
+ "schema",
1262
+ "schemaVersion",
1263
+ "id",
1264
+ "sequence",
1265
+ "kind",
1266
+ "patch",
1267
+ "inversePatch",
1268
+ "revisionBefore",
1269
+ "revisionAfter",
1270
+ "createdAt"
1271
+ ],
1272
+ "properties": {
1273
+ "schema": {
1274
+ "const": "skenion.graph.patch.event"
1275
+ },
1276
+ "schemaVersion": {
1277
+ "const": "0.1.0"
1278
+ },
1279
+ "id": {
1280
+ "type": "string",
1281
+ "minLength": 1
1282
+ },
1283
+ "sequence": {
1284
+ "type": "integer",
1285
+ "minimum": 1
1286
+ },
1287
+ "kind": {
1288
+ "enum": [
1289
+ "apply",
1290
+ "undo",
1291
+ "redo"
1292
+ ]
1293
+ },
1294
+ "patch": {
1295
+ "$ref": "https://skenion.dev/schemas/graph/v0.1/patch.schema.json"
1296
+ },
1297
+ "inversePatch": {
1298
+ "$ref": "https://skenion.dev/schemas/graph/v0.1/patch.schema.json"
1299
+ },
1300
+ "revisionBefore": {
1301
+ "type": "string",
1302
+ "minLength": 1
1303
+ },
1304
+ "revisionAfter": {
1305
+ "type": "string",
1306
+ "minLength": 1
1307
+ },
1308
+ "clientId": {
1309
+ "type": "string",
1310
+ "minLength": 1
1311
+ },
1312
+ "description": {
1313
+ "type": "string"
1314
+ },
1315
+ "subjectEventId": {
1316
+ "type": "string",
1317
+ "minLength": 1
1318
+ },
1319
+ "createdAt": {
1320
+ "type": "string",
1321
+ "minLength": 1
1322
+ }
1323
+ },
1324
+ "additionalProperties": false
1325
+ };
1326
+ export const graphPatchHistoryV01Schema = {
1327
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1328
+ "$id": "https://skenion.dev/schemas/graph/v0.1/patch-history.schema.json",
1329
+ "title": "Skenion Graph Patch History v0.1",
1330
+ "type": "object",
1331
+ "required": [
1332
+ "schema",
1333
+ "schemaVersion",
1334
+ "events",
1335
+ "canUndo",
1336
+ "canRedo",
1337
+ "undoDepth",
1338
+ "redoDepth"
1339
+ ],
1340
+ "properties": {
1341
+ "schema": {
1342
+ "const": "skenion.graph.patch.history"
1343
+ },
1344
+ "schemaVersion": {
1345
+ "const": "0.1.0"
1346
+ },
1347
+ "events": {
1348
+ "type": "array",
1349
+ "items": {
1350
+ "$ref": "https://skenion.dev/schemas/graph/v0.1/patch-event.schema.json"
1351
+ }
1352
+ },
1353
+ "canUndo": {
1354
+ "type": "boolean"
1355
+ },
1356
+ "canRedo": {
1357
+ "type": "boolean"
1358
+ },
1359
+ "undoDepth": {
1360
+ "type": "integer",
1361
+ "minimum": 0
1362
+ },
1363
+ "redoDepth": {
1364
+ "type": "integer",
1365
+ "minimum": 0
1366
+ }
1367
+ },
1368
+ "additionalProperties": false
1369
+ };
1370
+ export const nodeDefinitionV01Schema = {
1371
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1372
+ "$id": "https://skenion.dev/schemas/node/v0.1/node-definition.schema.json",
1373
+ "title": "Skenion Node Definition Manifest v0.1",
1374
+ "type": "object",
1375
+ "required": [
1376
+ "schema",
1377
+ "schemaVersion",
1378
+ "id",
1379
+ "version",
1380
+ "displayName",
1381
+ "category",
1382
+ "ports",
1383
+ "execution",
1384
+ "state",
1385
+ "permissions",
1386
+ "capabilities"
1387
+ ],
1388
+ "properties": {
1389
+ "schema": {
1390
+ "const": "skenion.node.definition"
1391
+ },
1392
+ "schemaVersion": {
1393
+ "const": "0.1.0"
1394
+ },
1395
+ "id": {
1396
+ "type": "string",
1397
+ "minLength": 1
1398
+ },
1399
+ "version": {
1400
+ "type": "string",
1401
+ "minLength": 1
1402
+ },
1403
+ "displayName": {
1404
+ "type": "string",
1405
+ "minLength": 1
1406
+ },
1407
+ "category": {
1408
+ "type": "string",
1409
+ "minLength": 1
1410
+ },
1411
+ "scriptApiVersion": {
1412
+ "type": "string",
1413
+ "minLength": 1
1414
+ },
1415
+ "bundleHash": {
1416
+ "type": "string",
1417
+ "minLength": 1
1418
+ },
1419
+ "surface": {
1420
+ "$ref": "#/$defs/surface"
1421
+ },
1422
+ "ports": {
1423
+ "type": "array",
1424
+ "items": {
1425
+ "$ref": "#/$defs/port"
1426
+ }
1427
+ },
1428
+ "execution": {
1429
+ "$ref": "#/$defs/execution"
1430
+ },
1431
+ "state": {
1432
+ "$ref": "#/$defs/state"
1433
+ },
1434
+ "permissions": {
1435
+ "type": "array",
1436
+ "items": {
1437
+ "type": "string"
1438
+ }
1439
+ },
1440
+ "capabilities": {
1441
+ "type": "array",
1442
+ "items": {
1443
+ "type": "string"
1444
+ }
1445
+ }
1446
+ },
1447
+ "additionalProperties": false,
1448
+ "$defs": {
1449
+ "port": {
1450
+ "type": "object",
1451
+ "required": [
1452
+ "id",
1453
+ "direction",
1454
+ "type"
1455
+ ],
1456
+ "properties": {
1457
+ "id": {
1458
+ "type": "string",
1459
+ "minLength": 1
1460
+ },
1461
+ "direction": {
1462
+ "enum": [
1463
+ "input",
1464
+ "output"
1465
+ ]
1466
+ },
1467
+ "label": {
1468
+ "type": "string"
1469
+ },
1470
+ "type": {
1471
+ "$ref": "#/$defs/dataType"
1472
+ },
1473
+ "required": {
1474
+ "type": "boolean"
1475
+ },
1476
+ "default": true,
1477
+ "activation": {
1478
+ "enum": [
1479
+ "trigger",
1480
+ "latched"
1481
+ ]
1482
+ }
1483
+ },
1484
+ "additionalProperties": false
1485
+ },
1486
+ "dataType": {
1487
+ "type": "object",
1488
+ "required": [
1489
+ "flow",
1490
+ "dataKind"
1491
+ ],
1492
+ "properties": {
1493
+ "flow": {
1494
+ "enum": [
1495
+ "value",
1496
+ "event",
1497
+ "signal",
1498
+ "stream",
1499
+ "resource"
1500
+ ]
1501
+ },
1502
+ "dataKind": {
1503
+ "type": "string",
1504
+ "minLength": 1
1505
+ },
1506
+ "unit": {
1507
+ "type": "string"
1508
+ },
1509
+ "range": {
1510
+ "type": "object",
1511
+ "properties": {
1512
+ "min": {
1513
+ "type": "number"
1514
+ },
1515
+ "max": {
1516
+ "type": "number"
1517
+ },
1518
+ "step": {
1519
+ "type": "number",
1520
+ "exclusiveMinimum": 0
1521
+ }
1522
+ },
1523
+ "additionalProperties": false
1524
+ },
1525
+ "shape": {
1526
+ "type": "array",
1527
+ "items": {
1528
+ "type": "integer",
1529
+ "minimum": 1
1530
+ }
1531
+ },
1532
+ "channels": {
1533
+ "type": "integer",
1534
+ "minimum": 1
1535
+ },
1536
+ "sampleRate": {
1537
+ "type": "number",
1538
+ "exclusiveMinimum": 0
1539
+ },
1540
+ "format": {
1541
+ "oneOf": [
1542
+ {
1543
+ "type": "string",
1544
+ "minLength": 1
1545
+ },
1546
+ {
1547
+ "type": "array",
1548
+ "items": {
1549
+ "type": "string",
1550
+ "minLength": 1
1551
+ }
1552
+ }
1553
+ ]
1554
+ },
1555
+ "colorSpace": {
1556
+ "type": "string"
1557
+ },
1558
+ "frameRate": {
1559
+ "type": "number",
1560
+ "exclusiveMinimum": 0
1561
+ },
1562
+ "alphaPolicy": {
1563
+ "enum": [
1564
+ "error",
1565
+ "white",
1566
+ "black",
1567
+ "luminance"
1568
+ ]
1569
+ },
1570
+ "values": {
1571
+ "type": "array",
1572
+ "items": {
1573
+ "oneOf": [
1574
+ {
1575
+ "type": "string"
1576
+ },
1577
+ {
1578
+ "type": "number"
1579
+ },
1580
+ {
1581
+ "type": "boolean"
1582
+ }
1583
+ ]
1584
+ }
1585
+ }
1586
+ },
1587
+ "additionalProperties": false
1588
+ },
1589
+ "execution": {
1590
+ "type": "object",
1591
+ "required": [
1592
+ "model"
1593
+ ],
1594
+ "properties": {
1595
+ "model": {
1596
+ "enum": [
1597
+ "event",
1598
+ "value",
1599
+ "frame",
1600
+ "audio_block",
1601
+ "video_frame",
1602
+ "gpu_pass",
1603
+ "async_resource",
1604
+ "script_control",
1605
+ "native_plugin"
1606
+ ]
1607
+ },
1608
+ "clock": {
1609
+ "enum": [
1610
+ "frame",
1611
+ "audio",
1612
+ "beat",
1613
+ "timecode",
1614
+ "external"
1615
+ ]
1616
+ }
1617
+ },
1618
+ "additionalProperties": false
1619
+ },
1620
+ "surface": {
1621
+ "type": "object",
1622
+ "properties": {
1623
+ "palette": {
1624
+ "enum": [
1625
+ "direct"
1626
+ ]
1627
+ }
1628
+ },
1629
+ "additionalProperties": false
1630
+ },
1631
+ "state": {
1632
+ "type": "object",
1633
+ "required": [
1634
+ "persistent"
1635
+ ],
1636
+ "properties": {
1637
+ "persistent": {
1638
+ "type": "boolean"
1639
+ }
1640
+ },
1641
+ "additionalProperties": false
1642
+ }
1643
+ }
1644
+ };
1645
+ export const nodeDefinitionV02Schema = {
1646
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1647
+ "$id": "https://skenion.dev/schemas/node/v0.2/node-definition.schema.json",
1648
+ "title": "Skenion Node Definition Manifest v0.2",
1649
+ "type": "object",
1650
+ "required": [
1651
+ "schema",
1652
+ "schemaVersion",
1653
+ "id",
1654
+ "version",
1655
+ "displayName",
1656
+ "category",
1657
+ "ports",
1658
+ "execution",
1659
+ "state",
1660
+ "permissions",
1661
+ "capabilities"
1662
+ ],
1663
+ "properties": {
1664
+ "schema": {
1665
+ "const": "skenion.node.definition"
1666
+ },
1667
+ "schemaVersion": {
1668
+ "const": "0.2.0"
1669
+ },
1670
+ "id": {
1671
+ "type": "string",
1672
+ "minLength": 1
1673
+ },
1674
+ "version": {
1675
+ "type": "string",
1676
+ "minLength": 1
1677
+ },
1678
+ "displayName": {
1679
+ "type": "string",
1680
+ "minLength": 1
1681
+ },
1682
+ "category": {
1683
+ "type": "string",
1684
+ "minLength": 1
1685
+ },
1686
+ "scriptApiVersion": {
1687
+ "type": "string",
1688
+ "minLength": 1
1689
+ },
1690
+ "bundleHash": {
1691
+ "type": "string",
1692
+ "minLength": 1
1693
+ },
1694
+ "surface": {
1695
+ "$ref": "#/$defs/surface"
1696
+ },
1697
+ "ports": {
1698
+ "type": "array",
1699
+ "items": {
1700
+ "$ref": "#/$defs/port"
1701
+ }
1702
+ },
1703
+ "portGroups": {
1704
+ "type": "array",
1705
+ "items": {
1706
+ "$ref": "#/$defs/portGroup"
1707
+ }
1708
+ },
1709
+ "execution": {
1710
+ "$ref": "#/$defs/execution"
1711
+ },
1712
+ "state": {
1713
+ "$ref": "#/$defs/state"
1714
+ },
1715
+ "permissions": {
1716
+ "type": "array",
1717
+ "items": {
1718
+ "type": "string"
1719
+ }
1720
+ },
1721
+ "capabilities": {
1722
+ "type": "array",
1723
+ "items": {
1724
+ "type": "string"
1725
+ }
1726
+ }
1727
+ },
1728
+ "additionalProperties": false,
1729
+ "$defs": {
1730
+ "port": {
1731
+ "type": "object",
1732
+ "required": [
1733
+ "id",
1734
+ "direction",
1735
+ "type"
1736
+ ],
1737
+ "properties": {
1738
+ "id": {
1739
+ "type": "string",
1740
+ "minLength": 1
1741
+ },
1742
+ "direction": {
1743
+ "enum": [
1744
+ "input",
1745
+ "output"
1746
+ ]
1747
+ },
1748
+ "type": {
1749
+ "type": "string",
1750
+ "minLength": 1
1751
+ },
1752
+ "label": {
1753
+ "type": "string"
1754
+ },
1755
+ "rate": {
1756
+ "enum": [
1757
+ "event",
1758
+ "control",
1759
+ "audio",
1760
+ "render",
1761
+ "gpu",
1762
+ "resource",
1763
+ "io"
1764
+ ]
1765
+ },
1766
+ "accepts": {
1767
+ "type": "array",
1768
+ "items": {
1769
+ "type": "string",
1770
+ "minLength": 1
1771
+ },
1772
+ "uniqueItems": true
1773
+ },
1774
+ "minConnections": {
1775
+ "type": "integer",
1776
+ "minimum": 0
1777
+ },
1778
+ "maxConnections": {
1779
+ "oneOf": [
1780
+ {
1781
+ "type": "integer",
1782
+ "minimum": 0
1783
+ },
1784
+ {
1785
+ "type": "null"
1786
+ }
1787
+ ]
1788
+ },
1789
+ "mergePolicy": {
1790
+ "enum": [
1791
+ "forbid",
1792
+ "ordered-events",
1793
+ "mix",
1794
+ "array",
1795
+ "latest",
1796
+ "first",
1797
+ "custom"
1798
+ ]
1799
+ },
1800
+ "fanOutPolicy": {
1801
+ "enum": [
1802
+ "allow",
1803
+ "forbid",
1804
+ "copy",
1805
+ "share"
1806
+ ]
1807
+ },
1808
+ "triggerMode": {
1809
+ "enum": [
1810
+ "passive",
1811
+ "trigger",
1812
+ "latched"
1813
+ ]
1814
+ },
1815
+ "defaultValue": true,
1816
+ "latch": {
1817
+ "type": "boolean"
1818
+ },
1819
+ "required": {
1820
+ "type": "boolean"
1821
+ },
1822
+ "styleKey": {
1823
+ "type": "string",
1824
+ "minLength": 1
1825
+ },
1826
+ "group": {
1827
+ "type": "string",
1828
+ "minLength": 1
1829
+ },
1830
+ "description": {
1831
+ "type": "string"
1832
+ }
1833
+ },
1834
+ "additionalProperties": false
1835
+ },
1836
+ "portGroup": {
1837
+ "type": "object",
1838
+ "required": [
1839
+ "id",
1840
+ "direction",
1841
+ "type",
1842
+ "minPorts"
1843
+ ],
1844
+ "properties": {
1845
+ "id": {
1846
+ "type": "string",
1847
+ "minLength": 1
1848
+ },
1849
+ "label": {
1850
+ "type": "string"
1851
+ },
1852
+ "direction": {
1853
+ "enum": [
1854
+ "input",
1855
+ "output"
1856
+ ]
1857
+ },
1858
+ "type": {
1859
+ "type": "string",
1860
+ "minLength": 1
1861
+ },
1862
+ "rate": {
1863
+ "enum": [
1864
+ "event",
1865
+ "control",
1866
+ "audio",
1867
+ "render",
1868
+ "gpu",
1869
+ "resource",
1870
+ "io"
1871
+ ]
1872
+ },
1873
+ "minPorts": {
1874
+ "type": "integer",
1875
+ "minimum": 0
1876
+ },
1877
+ "maxPorts": {
1878
+ "type": "integer",
1879
+ "minimum": 0
1880
+ },
1881
+ "ordered": {
1882
+ "type": "boolean"
1883
+ },
1884
+ "portIdPattern": {
1885
+ "type": "string",
1886
+ "minLength": 1
1887
+ },
1888
+ "createLabel": {
1889
+ "type": "string"
1890
+ },
1891
+ "defaultPortSpec": {
1892
+ "$ref": "#/$defs/port"
1893
+ }
1894
+ },
1895
+ "additionalProperties": false
1896
+ },
1897
+ "execution": {
1898
+ "type": "object",
1899
+ "required": [
1900
+ "model"
1901
+ ],
1902
+ "properties": {
1903
+ "model": {
1904
+ "enum": [
1905
+ "event",
1906
+ "value",
1907
+ "frame",
1908
+ "audio_block",
1909
+ "video_frame",
1910
+ "gpu_pass",
1911
+ "async_resource",
1912
+ "script_control",
1913
+ "native_plugin"
1914
+ ]
1915
+ },
1916
+ "clock": {
1917
+ "enum": [
1918
+ "frame",
1919
+ "audio",
1920
+ "beat",
1921
+ "timecode",
1922
+ "external"
1923
+ ]
1924
+ }
1925
+ },
1926
+ "additionalProperties": false
1927
+ },
1928
+ "surface": {
1929
+ "type": "object",
1930
+ "properties": {
1931
+ "palette": {
1932
+ "enum": [
1933
+ "direct"
1934
+ ]
1935
+ }
1936
+ },
1937
+ "additionalProperties": false
1938
+ },
1939
+ "state": {
1940
+ "type": "object",
1941
+ "required": [
1942
+ "persistent"
1943
+ ],
1944
+ "properties": {
1945
+ "persistent": {
1946
+ "type": "boolean"
1947
+ }
1948
+ },
1949
+ "additionalProperties": false
1950
+ }
1951
+ }
1952
+ };
1953
+ export const shaderInterfaceV01Schema = {
1954
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1955
+ "$id": "https://skenion.dev/schemas/shader/v0.1/shader-interface.schema.json",
1956
+ "title": "Skenion Shader Interface v0.1",
1957
+ "type": "object",
1958
+ "required": [
1959
+ "schema",
1960
+ "schemaVersion",
1961
+ "language",
1962
+ "uniforms"
1963
+ ],
1964
+ "properties": {
1965
+ "schema": {
1966
+ "const": "skenion.shader.interface"
1967
+ },
1968
+ "schemaVersion": {
1969
+ "const": "0.1.0"
1970
+ },
1971
+ "language": {
1972
+ "const": "wgsl"
1973
+ },
1974
+ "uniforms": {
1975
+ "type": "array",
1976
+ "items": {
1977
+ "$ref": "#/$defs/uniform"
1978
+ }
1979
+ }
1980
+ },
1981
+ "additionalProperties": false,
1982
+ "$defs": {
1983
+ "uniform": {
1984
+ "type": "object",
1985
+ "required": [
1986
+ "id",
1987
+ "label",
1988
+ "type",
1989
+ "required"
1990
+ ],
1991
+ "properties": {
1992
+ "id": {
1993
+ "type": "string",
1994
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
1995
+ "not": {
1996
+ "enum": [
1997
+ "out",
1998
+ "in",
1999
+ "set",
2000
+ "bang",
2001
+ "value"
2002
+ ]
2003
+ }
2004
+ },
2005
+ "label": {
2006
+ "type": "string",
2007
+ "minLength": 1
2008
+ },
2009
+ "type": {
2010
+ "$ref": "#/$defs/dataType"
2011
+ },
2012
+ "default": true,
2013
+ "required": {
2014
+ "type": "boolean"
2015
+ }
2016
+ },
2017
+ "additionalProperties": false
2018
+ },
2019
+ "dataType": {
2020
+ "type": "object",
2021
+ "required": [
2022
+ "flow",
2023
+ "dataKind"
2024
+ ],
2025
+ "properties": {
2026
+ "flow": {
2027
+ "const": "value"
2028
+ },
2029
+ "dataKind": {
2030
+ "enum": [
2031
+ "number.float",
2032
+ "number.int",
2033
+ "number.uint",
2034
+ "boolean",
2035
+ "color"
2036
+ ]
2037
+ },
2038
+ "format": {
2039
+ "type": "string"
2040
+ },
2041
+ "colorSpace": {
2042
+ "type": "string"
2043
+ },
2044
+ "range": {
2045
+ "type": "object",
2046
+ "properties": {
2047
+ "min": {
2048
+ "type": "number"
2049
+ },
2050
+ "max": {
2051
+ "type": "number"
2052
+ },
2053
+ "step": {
2054
+ "type": "number",
2055
+ "exclusiveMinimum": 0
2056
+ }
2057
+ },
2058
+ "additionalProperties": false
2059
+ }
2060
+ },
2061
+ "additionalProperties": false
2062
+ }
2063
+ }
2064
+ };
2065
+ export const shaderDiagnosticV01Schema = {
2066
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2067
+ "$id": "https://skenion.dev/schemas/shader/v0.1/shader-diagnostic.schema.json",
2068
+ "title": "Skenion Shader Diagnostic v0.1",
2069
+ "type": "object",
2070
+ "required": [
2071
+ "severity",
2072
+ "phase",
2073
+ "code",
2074
+ "message",
2075
+ "source"
2076
+ ],
2077
+ "properties": {
2078
+ "severity": {
2079
+ "enum": [
2080
+ "error",
2081
+ "warning",
2082
+ "info"
2083
+ ]
2084
+ },
2085
+ "phase": {
2086
+ "enum": [
2087
+ "interface-analysis",
2088
+ "source-sync",
2089
+ "wgsl-generation",
2090
+ "wgsl-compile",
2091
+ "render-pipeline",
2092
+ "render-frame"
2093
+ ]
2094
+ },
2095
+ "code": {
2096
+ "type": "string",
2097
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
2098
+ },
2099
+ "message": {
2100
+ "type": "string",
2101
+ "minLength": 1
2102
+ },
2103
+ "line": {
2104
+ "type": "integer",
2105
+ "minimum": 1
2106
+ },
2107
+ "column": {
2108
+ "type": "integer",
2109
+ "minimum": 1
2110
+ },
2111
+ "endLine": {
2112
+ "type": "integer",
2113
+ "minimum": 1
2114
+ },
2115
+ "endColumn": {
2116
+ "type": "integer",
2117
+ "minimum": 1
2118
+ },
2119
+ "uniformId": {
2120
+ "type": "string",
2121
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
2122
+ },
2123
+ "source": {
2124
+ "enum": [
2125
+ "user",
2126
+ "generated",
2127
+ "runtime"
2128
+ ]
2129
+ }
2130
+ },
2131
+ "additionalProperties": false
2132
+ };
2133
+ export const controlMessageV01Schema = {
2134
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2135
+ "$id": "https://skenion.dev/schemas/control/v0.1/control-message.schema.json",
2136
+ "title": "Skenion Control Message v0.1",
2137
+ "type": "object",
2138
+ "required": [
2139
+ "selector",
2140
+ "atoms"
2141
+ ],
2142
+ "properties": {
2143
+ "selector": {
2144
+ "type": "string",
2145
+ "minLength": 1,
2146
+ "pattern": "^[A-Za-z_][A-Za-z0-9_.:-]*$"
2147
+ },
2148
+ "atoms": {
2149
+ "type": "array",
2150
+ "items": {
2151
+ "$ref": "#/$defs/atom"
2152
+ },
2153
+ "default": []
2154
+ }
2155
+ },
2156
+ "additionalProperties": false,
2157
+ "$defs": {
2158
+ "atom": {
2159
+ "oneOf": [
2160
+ {
2161
+ "type": "object",
2162
+ "required": [
2163
+ "type",
2164
+ "representation",
2165
+ "value"
2166
+ ],
2167
+ "properties": {
2168
+ "type": {
2169
+ "const": "float"
2170
+ },
2171
+ "representation": {
2172
+ "enum": [
2173
+ "f64",
2174
+ "f32",
2175
+ "f16",
2176
+ "f8.e4m3",
2177
+ "f8.e5m2",
2178
+ "ufloat16",
2179
+ "ufloat8"
2180
+ ]
2181
+ },
2182
+ "value": {
2183
+ "type": "number"
2184
+ }
2185
+ },
2186
+ "additionalProperties": false
2187
+ },
2188
+ {
2189
+ "type": "object",
2190
+ "required": [
2191
+ "type",
2192
+ "representation",
2193
+ "value"
2194
+ ],
2195
+ "properties": {
2196
+ "type": {
2197
+ "const": "int"
2198
+ },
2199
+ "representation": {
2200
+ "enum": [
2201
+ "i64",
2202
+ "i32",
2203
+ "i16",
2204
+ "i8"
2205
+ ]
2206
+ },
2207
+ "value": {
2208
+ "type": "integer"
2209
+ }
2210
+ },
2211
+ "additionalProperties": false
2212
+ },
2213
+ {
2214
+ "type": "object",
2215
+ "required": [
2216
+ "type",
2217
+ "representation",
2218
+ "value"
2219
+ ],
2220
+ "properties": {
2221
+ "type": {
2222
+ "const": "uint"
2223
+ },
2224
+ "representation": {
2225
+ "enum": [
2226
+ "u64",
2227
+ "u32",
2228
+ "u16",
2229
+ "u8"
2230
+ ]
2231
+ },
2232
+ "value": {
2233
+ "type": "integer",
2234
+ "minimum": 0
2235
+ }
2236
+ },
2237
+ "additionalProperties": false
2238
+ },
2239
+ {
2240
+ "type": "object",
2241
+ "required": [
2242
+ "type",
2243
+ "value"
2244
+ ],
2245
+ "properties": {
2246
+ "type": {
2247
+ "const": "bool"
2248
+ },
2249
+ "value": {
2250
+ "type": "boolean"
2251
+ }
2252
+ },
2253
+ "additionalProperties": false
2254
+ },
2255
+ {
2256
+ "type": "object",
2257
+ "required": [
2258
+ "type",
2259
+ "value"
2260
+ ],
2261
+ "properties": {
2262
+ "type": {
2263
+ "const": "string"
2264
+ },
2265
+ "value": {
2266
+ "type": "string"
2267
+ }
2268
+ },
2269
+ "additionalProperties": false
2270
+ },
2271
+ {
2272
+ "type": "object",
2273
+ "required": [
2274
+ "type",
2275
+ "representation",
2276
+ "value"
2277
+ ],
2278
+ "properties": {
2279
+ "type": {
2280
+ "const": "color"
2281
+ },
2282
+ "representation": {
2283
+ "enum": [
2284
+ "rgba32f",
2285
+ "rgba16f",
2286
+ "rgba8unorm",
2287
+ "rgb8unorm"
2288
+ ]
2289
+ },
2290
+ "colorSpace": {
2291
+ "enum": [
2292
+ "linear",
2293
+ "srgb"
2294
+ ]
2295
+ },
2296
+ "value": {
2297
+ "type": "array",
2298
+ "prefixItems": [
2299
+ {
2300
+ "type": "number"
2301
+ },
2302
+ {
2303
+ "type": "number"
2304
+ },
2305
+ {
2306
+ "type": "number"
2307
+ },
2308
+ {
2309
+ "type": "number"
2310
+ }
2311
+ ],
2312
+ "minItems": 4,
2313
+ "maxItems": 4
2314
+ }
2315
+ },
2316
+ "additionalProperties": false
2317
+ }
2318
+ ]
2319
+ }
2320
+ }
2321
+ };
2322
+ export const objectTextParseResultV01Schema = {
2323
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2324
+ "$id": "https://skenion.dev/schemas/object-text/v0.1/parse-result.schema.json",
2325
+ "title": "Skenion Object Text Parse Result v0.1",
2326
+ "type": "object",
2327
+ "required": [
2328
+ "schema",
2329
+ "schemaVersion",
2330
+ "input",
2331
+ "ok",
2332
+ "classSymbol",
2333
+ "creationArgs",
2334
+ "resolvedKind",
2335
+ "resolvedKindVersion",
2336
+ "params",
2337
+ "instancePorts",
2338
+ "displayText",
2339
+ "diagnostics"
2340
+ ],
2341
+ "properties": {
2342
+ "schema": {
2343
+ "const": "skenion.object-text.parse-result"
2344
+ },
2345
+ "schemaVersion": {
2346
+ "const": "0.1.0"
2347
+ },
2348
+ "input": {
2349
+ "type": "string",
2350
+ "minLength": 1
2351
+ },
2352
+ "ok": {
2353
+ "type": "boolean"
2354
+ },
2355
+ "classSymbol": {
2356
+ "type": "string",
2357
+ "minLength": 1
2358
+ },
2359
+ "creationArgs": {
2360
+ "type": "array",
2361
+ "items": {
2362
+ "$ref": "#/$defs/atom"
2363
+ }
2364
+ },
2365
+ "resolvedKind": {
2366
+ "type": [
2367
+ "string",
2368
+ "null"
2369
+ ],
2370
+ "minLength": 1
2371
+ },
2372
+ "resolvedKindVersion": {
2373
+ "type": [
2374
+ "string",
2375
+ "null"
2376
+ ],
2377
+ "minLength": 1
2378
+ },
2379
+ "params": {
2380
+ "type": "object",
2381
+ "additionalProperties": true
2382
+ },
2383
+ "instancePorts": {
2384
+ "type": "array",
2385
+ "items": {
2386
+ "$ref": "#/$defs/port"
2387
+ }
2388
+ },
2389
+ "displayText": {
2390
+ "type": "string",
2391
+ "minLength": 1
2392
+ },
2393
+ "diagnostics": {
2394
+ "type": "array",
2395
+ "items": {
2396
+ "$ref": "#/$defs/diagnostic"
2397
+ }
2398
+ }
2399
+ },
2400
+ "additionalProperties": false,
2401
+ "$defs": {
2402
+ "atom": {
2403
+ "type": "object",
2404
+ "required": [
2405
+ "type",
2406
+ "value"
2407
+ ],
2408
+ "properties": {
2409
+ "type": {
2410
+ "enum": [
2411
+ "float",
2412
+ "int",
2413
+ "uint",
2414
+ "bool",
2415
+ "symbol",
2416
+ "string"
2417
+ ]
2418
+ },
2419
+ "value": {
2420
+ "anyOf": [
2421
+ {
2422
+ "type": "number"
2423
+ },
2424
+ {
2425
+ "type": "boolean"
2426
+ },
2427
+ {
2428
+ "type": "string"
2429
+ }
2430
+ ]
2431
+ },
2432
+ "representation": {
2433
+ "type": "string",
2434
+ "minLength": 1
2435
+ }
2436
+ },
2437
+ "additionalProperties": false
2438
+ },
2439
+ "port": {
2440
+ "type": "object",
2441
+ "required": [
2442
+ "id",
2443
+ "direction",
2444
+ "type"
2445
+ ],
2446
+ "properties": {
2447
+ "id": {
2448
+ "type": "string",
2449
+ "minLength": 1
2450
+ },
2451
+ "direction": {
2452
+ "enum": [
2453
+ "input",
2454
+ "output"
2455
+ ]
2456
+ },
2457
+ "type": {
2458
+ "type": "string",
2459
+ "minLength": 1
2460
+ },
2461
+ "rate": {
2462
+ "enum": [
2463
+ "event",
2464
+ "control",
2465
+ "audio",
2466
+ "render",
2467
+ "gpu",
2468
+ "resource",
2469
+ "io"
2470
+ ]
2471
+ },
2472
+ "activation": {
2473
+ "enum": [
2474
+ "trigger",
2475
+ "latched",
2476
+ "passive"
2477
+ ]
2478
+ },
2479
+ "defaultValue": true,
2480
+ "description": {
2481
+ "type": "string"
2482
+ }
2483
+ },
2484
+ "additionalProperties": false
2485
+ },
2486
+ "diagnostic": {
2487
+ "type": "object",
2488
+ "required": [
2489
+ "severity",
2490
+ "code",
2491
+ "message"
2492
+ ],
2493
+ "properties": {
2494
+ "severity": {
2495
+ "enum": [
2496
+ "error",
2497
+ "warning",
2498
+ "info"
2499
+ ]
2500
+ },
2501
+ "code": {
2502
+ "type": "string",
2503
+ "minLength": 1
2504
+ },
2505
+ "message": {
2506
+ "type": "string",
2507
+ "minLength": 1
2508
+ }
2509
+ },
2510
+ "additionalProperties": false
2511
+ }
2512
+ }
2513
+ };
2514
+ export const extensionManifestV01Schema = {
2515
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
2516
+ "$id": "https://skenion.dev/schemas/extension/v0.1/extension-manifest.schema.json",
2517
+ "title": "Skenion Native Extension Manifest v0.1",
2518
+ "type": "object",
2519
+ "required": [
2520
+ "schema",
2521
+ "schemaVersion",
2522
+ "id",
2523
+ "version",
2524
+ "runtimeAbiVersion",
2525
+ "kind",
2526
+ "provides",
2527
+ "permissions"
2528
+ ],
2529
+ "properties": {
2530
+ "schema": {
2531
+ "const": "skenion.extension.manifest"
2532
+ },
2533
+ "schemaVersion": {
2534
+ "const": "0.1.0"
2535
+ },
2536
+ "id": {
2537
+ "type": "string",
2538
+ "pattern": "^[a-z0-9][a-z0-9._-]*(/[a-z0-9][a-z0-9._-]*)*$"
2539
+ },
2540
+ "version": {
2541
+ "type": "string",
2542
+ "minLength": 1
2543
+ },
2544
+ "sdkVersion": {
2545
+ "type": "string",
2546
+ "minLength": 1
2547
+ },
2548
+ "runtimeAbiVersion": {
2549
+ "type": "string",
2550
+ "minLength": 1
2551
+ },
2552
+ "kind": {
2553
+ "enum": [
2554
+ "core-package",
2555
+ "native-runtime",
2556
+ "codec",
2557
+ "node-pack"
2558
+ ]
2559
+ },
2560
+ "native": {
2561
+ "$ref": "#/$defs/nativeBinding"
2562
+ },
2563
+ "provides": {
2564
+ "$ref": "#/$defs/provides"
2565
+ },
2566
+ "permissions": {
2567
+ "type": "array",
2568
+ "items": {
2569
+ "type": "string",
2570
+ "minLength": 1
2571
+ },
2572
+ "uniqueItems": true
2573
+ },
2574
+ "frontend": {
2575
+ "$ref": "#/$defs/frontendMetadata"
2576
+ },
2577
+ "tests": {
2578
+ "type": "array",
2579
+ "items": {
2580
+ "$ref": "#/$defs/test"
2581
+ },
2582
+ "default": []
2583
+ }
2584
+ },
2585
+ "allOf": [
2586
+ {
2587
+ "if": {
2588
+ "properties": {
2589
+ "kind": {
2590
+ "const": "native-runtime"
2591
+ }
2592
+ },
2593
+ "required": [
2594
+ "kind"
2595
+ ]
2596
+ },
2597
+ "then": {
2598
+ "required": [
2599
+ "native"
2600
+ ]
2601
+ }
2602
+ }
2603
+ ],
2604
+ "additionalProperties": false,
2605
+ "$defs": {
2606
+ "nativeBinding": {
2607
+ "type": "object",
2608
+ "required": [
2609
+ "entrypoint",
2610
+ "artifacts"
2611
+ ],
2612
+ "properties": {
2613
+ "entrypoint": {
2614
+ "type": "string",
2615
+ "minLength": 1,
2616
+ "default": "skenion_extension_init"
2617
+ },
2618
+ "artifacts": {
2619
+ "type": "array",
2620
+ "minItems": 1,
2621
+ "items": {
2622
+ "$ref": "#/$defs/nativeArtifact"
2623
+ }
2624
+ }
2625
+ },
2626
+ "additionalProperties": false
2627
+ },
2628
+ "nativeArtifact": {
2629
+ "type": "object",
2630
+ "required": [
2631
+ "os",
2632
+ "arch",
2633
+ "abi",
2634
+ "path"
2635
+ ],
2636
+ "properties": {
2637
+ "os": {
2638
+ "type": "string",
2639
+ "minLength": 1
2640
+ },
2641
+ "arch": {
2642
+ "type": "string",
2643
+ "minLength": 1
2644
+ },
2645
+ "abi": {
2646
+ "const": "c"
2647
+ },
2648
+ "path": {
2649
+ "type": "string",
2650
+ "minLength": 1
2651
+ },
2652
+ "sha256": {
2653
+ "type": "string",
2654
+ "pattern": "^[a-fA-F0-9]{64}$"
2655
+ }
2656
+ },
2657
+ "additionalProperties": false
2658
+ },
2659
+ "provides": {
2660
+ "type": "object",
2661
+ "properties": {
2662
+ "nodes": {
2663
+ "type": "array",
2664
+ "items": {
2665
+ "$ref": "https://skenion.dev/schemas/node/v0.1/node-definition.schema.json"
2666
+ },
2667
+ "default": []
2668
+ },
2669
+ "codecs": {
2670
+ "type": "array",
2671
+ "items": {
2672
+ "$ref": "#/$defs/codec"
2673
+ },
2674
+ "default": []
2675
+ },
2676
+ "transports": {
2677
+ "type": "array",
2678
+ "items": {
2679
+ "$ref": "#/$defs/transport"
2680
+ },
2681
+ "default": []
2682
+ },
2683
+ "help": {
2684
+ "type": "array",
2685
+ "items": {
2686
+ "$ref": "#/$defs/helpEntry"
2687
+ },
2688
+ "default": []
2689
+ }
2690
+ },
2691
+ "additionalProperties": false
2692
+ },
2693
+ "codec": {
2694
+ "type": "object",
2695
+ "required": [
2696
+ "id",
2697
+ "version",
2698
+ "transportKinds",
2699
+ "direction"
2700
+ ],
2701
+ "properties": {
2702
+ "id": {
2703
+ "type": "string",
2704
+ "minLength": 1
2705
+ },
2706
+ "version": {
2707
+ "type": "string",
2708
+ "minLength": 1
2709
+ },
2710
+ "transportKinds": {
2711
+ "type": "array",
2712
+ "items": {
2713
+ "enum": [
2714
+ "midi",
2715
+ "hid",
2716
+ "serial",
2717
+ "inline"
2718
+ ]
2719
+ },
2720
+ "minItems": 1,
2721
+ "uniqueItems": true
2722
+ },
2723
+ "direction": {
2724
+ "enum": [
2725
+ "decode",
2726
+ "encode",
2727
+ "duplex"
2728
+ ]
2729
+ }
2730
+ },
2731
+ "additionalProperties": false
2732
+ },
2733
+ "transport": {
2734
+ "type": "object",
2735
+ "required": [
2736
+ "id",
2737
+ "version",
2738
+ "kind"
2739
+ ],
2740
+ "properties": {
2741
+ "id": {
2742
+ "type": "string",
2743
+ "minLength": 1
2744
+ },
2745
+ "version": {
2746
+ "type": "string",
2747
+ "minLength": 1
2748
+ },
2749
+ "kind": {
2750
+ "type": "string",
2751
+ "minLength": 1
2752
+ }
2753
+ },
2754
+ "additionalProperties": false
2755
+ },
2756
+ "helpEntry": {
2757
+ "type": "object",
2758
+ "required": [
2759
+ "nodeId"
2760
+ ],
2761
+ "properties": {
2762
+ "nodeId": {
2763
+ "type": "string",
2764
+ "minLength": 1
2765
+ },
2766
+ "nodeVersion": {
2767
+ "type": "string",
2768
+ "minLength": 1
2769
+ },
2770
+ "title": {
2771
+ "type": "string"
2772
+ },
2773
+ "markdownPath": {
2774
+ "type": "string",
2775
+ "minLength": 1
2776
+ },
2777
+ "graphPath": {
2778
+ "type": "string",
2779
+ "minLength": 1
2780
+ }
2781
+ },
2782
+ "additionalProperties": false
2783
+ },
2784
+ "test": {
2785
+ "type": "object",
2786
+ "required": [
2787
+ "id",
2788
+ "kind",
2789
+ "target"
2790
+ ],
2791
+ "properties": {
2792
+ "id": {
2793
+ "type": "string",
2794
+ "minLength": 1
2795
+ },
2796
+ "kind": {
2797
+ "enum": [
2798
+ "node",
2799
+ "codec",
2800
+ "extension"
2801
+ ]
2802
+ },
2803
+ "target": {
2804
+ "type": "string",
2805
+ "minLength": 1
2806
+ },
2807
+ "fixturePath": {
2808
+ "type": "string",
2809
+ "minLength": 1
2810
+ },
2811
+ "expectedPath": {
2812
+ "type": "string",
2813
+ "minLength": 1
2814
+ }
2815
+ },
2816
+ "additionalProperties": false
2817
+ },
2818
+ "frontendMetadata": {
2819
+ "type": "object",
2820
+ "properties": {
2821
+ "displayName": {
2822
+ "type": "string"
2823
+ },
2824
+ "description": {
2825
+ "type": "string"
2826
+ },
2827
+ "tags": {
2828
+ "type": "array",
2829
+ "items": {
2830
+ "type": "string"
2831
+ },
2832
+ "uniqueItems": true
2833
+ }
2834
+ },
2835
+ "additionalProperties": false
2836
+ }
2837
+ }
2838
+ };
2839
+ //# sourceMappingURL=schemas.js.map