@typecaast/schema 0.1.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.
@@ -0,0 +1,1148 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://typecaast.com/schema/v1/typecaast.schema.json",
4
+ "title": "Typecaast config",
5
+ "type": "object",
6
+ "properties": {
7
+ "version": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "meta": {
12
+ "type": "object",
13
+ "properties": {
14
+ "canvas": {
15
+ "type": "object",
16
+ "properties": {
17
+ "width": {
18
+ "type": "integer",
19
+ "exclusiveMinimum": 0,
20
+ "maximum": 9007199254740991
21
+ },
22
+ "height": {
23
+ "type": "integer",
24
+ "exclusiveMinimum": 0,
25
+ "maximum": 9007199254740991
26
+ }
27
+ },
28
+ "required": [
29
+ "width",
30
+ "height"
31
+ ],
32
+ "additionalProperties": false
33
+ },
34
+ "fps": {
35
+ "default": 30,
36
+ "type": "integer",
37
+ "exclusiveMinimum": 0,
38
+ "maximum": 9007199254740991
39
+ },
40
+ "fit": {
41
+ "default": "reflow",
42
+ "type": "string",
43
+ "enum": [
44
+ "reflow",
45
+ "scale",
46
+ "fixed"
47
+ ]
48
+ },
49
+ "theme": {
50
+ "default": "auto",
51
+ "type": "string",
52
+ "enum": [
53
+ "light",
54
+ "dark",
55
+ "auto"
56
+ ]
57
+ },
58
+ "skin": {
59
+ "type": "object",
60
+ "properties": {
61
+ "id": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ },
65
+ "options": {
66
+ "type": "object",
67
+ "propertyNames": {
68
+ "type": "string"
69
+ },
70
+ "additionalProperties": {}
71
+ }
72
+ },
73
+ "required": [
74
+ "id"
75
+ ],
76
+ "additionalProperties": false
77
+ },
78
+ "seed": {
79
+ "default": 42,
80
+ "type": "integer",
81
+ "minimum": -9007199254740991,
82
+ "maximum": 9007199254740991
83
+ },
84
+ "background": {
85
+ "default": "transparent",
86
+ "type": "string"
87
+ },
88
+ "assets": {
89
+ "default": "inline",
90
+ "type": "string",
91
+ "enum": [
92
+ "inline",
93
+ "url"
94
+ ]
95
+ }
96
+ },
97
+ "required": [
98
+ "canvas",
99
+ "fps",
100
+ "fit",
101
+ "theme",
102
+ "skin",
103
+ "seed",
104
+ "background",
105
+ "assets"
106
+ ],
107
+ "additionalProperties": false
108
+ },
109
+ "participants": {
110
+ "type": "array",
111
+ "items": {
112
+ "type": "object",
113
+ "properties": {
114
+ "id": {
115
+ "type": "string",
116
+ "minLength": 1
117
+ },
118
+ "name": {
119
+ "type": "string",
120
+ "minLength": 1
121
+ },
122
+ "avatar": {
123
+ "type": "string"
124
+ },
125
+ "color": {
126
+ "type": "string"
127
+ },
128
+ "isSelf": {
129
+ "type": "boolean"
130
+ },
131
+ "kind": {
132
+ "default": "person",
133
+ "type": "string",
134
+ "enum": [
135
+ "person",
136
+ "app"
137
+ ]
138
+ }
139
+ },
140
+ "required": [
141
+ "id",
142
+ "name",
143
+ "kind"
144
+ ],
145
+ "additionalProperties": false
146
+ }
147
+ },
148
+ "pacing": {
149
+ "default": {
150
+ "readingWpm": 240,
151
+ "typingCps": 14,
152
+ "reactionDelayMs": 700,
153
+ "interMessageGapMs": 900,
154
+ "humanize": 0.15,
155
+ "startDelayMs": 400
156
+ },
157
+ "type": "object",
158
+ "properties": {
159
+ "readingWpm": {
160
+ "default": 240,
161
+ "type": "number",
162
+ "exclusiveMinimum": 0
163
+ },
164
+ "typingCps": {
165
+ "default": 14,
166
+ "type": "number",
167
+ "exclusiveMinimum": 0
168
+ },
169
+ "reactionDelayMs": {
170
+ "default": 700,
171
+ "type": "number",
172
+ "minimum": 0
173
+ },
174
+ "interMessageGapMs": {
175
+ "default": 900,
176
+ "type": "number",
177
+ "minimum": 0
178
+ },
179
+ "humanize": {
180
+ "default": 0.15,
181
+ "type": "number",
182
+ "minimum": 0,
183
+ "maximum": 1
184
+ },
185
+ "startDelayMs": {
186
+ "default": 400,
187
+ "type": "number",
188
+ "minimum": 0
189
+ }
190
+ },
191
+ "required": [
192
+ "readingWpm",
193
+ "typingCps",
194
+ "reactionDelayMs",
195
+ "interMessageGapMs",
196
+ "humanize",
197
+ "startDelayMs"
198
+ ],
199
+ "additionalProperties": false
200
+ },
201
+ "timeline": {
202
+ "type": "array",
203
+ "items": {
204
+ "oneOf": [
205
+ {
206
+ "type": "object",
207
+ "properties": {
208
+ "type": {
209
+ "type": "string",
210
+ "const": "message"
211
+ },
212
+ "from": {
213
+ "type": "string"
214
+ },
215
+ "typing": {
216
+ "anyOf": [
217
+ {
218
+ "type": "boolean"
219
+ },
220
+ {
221
+ "type": "object",
222
+ "properties": {
223
+ "showTypingFor": {
224
+ "type": "number",
225
+ "minimum": 0
226
+ }
227
+ },
228
+ "additionalProperties": false
229
+ }
230
+ ]
231
+ },
232
+ "text": {
233
+ "type": "string"
234
+ },
235
+ "images": {
236
+ "type": "array",
237
+ "items": {
238
+ "type": "object",
239
+ "properties": {
240
+ "src": {
241
+ "type": "string"
242
+ },
243
+ "alt": {
244
+ "type": "string"
245
+ },
246
+ "width": {
247
+ "type": "number",
248
+ "exclusiveMinimum": 0
249
+ },
250
+ "height": {
251
+ "type": "number",
252
+ "exclusiveMinimum": 0
253
+ }
254
+ },
255
+ "required": [
256
+ "src"
257
+ ],
258
+ "additionalProperties": false
259
+ }
260
+ },
261
+ "content": {
262
+ "type": "array",
263
+ "items": {
264
+ "anyOf": [
265
+ {
266
+ "type": "object",
267
+ "properties": {
268
+ "type": {
269
+ "type": "string",
270
+ "const": "text"
271
+ },
272
+ "spans": {
273
+ "type": "array",
274
+ "items": {
275
+ "oneOf": [
276
+ {
277
+ "type": "object",
278
+ "properties": {
279
+ "type": {
280
+ "type": "string",
281
+ "const": "text"
282
+ },
283
+ "value": {
284
+ "type": "string"
285
+ }
286
+ },
287
+ "required": [
288
+ "type",
289
+ "value"
290
+ ],
291
+ "additionalProperties": false
292
+ },
293
+ {
294
+ "type": "object",
295
+ "properties": {
296
+ "type": {
297
+ "type": "string",
298
+ "const": "code"
299
+ },
300
+ "value": {
301
+ "type": "string"
302
+ }
303
+ },
304
+ "required": [
305
+ "type",
306
+ "value"
307
+ ],
308
+ "additionalProperties": false
309
+ },
310
+ {
311
+ "type": "object",
312
+ "properties": {
313
+ "type": {
314
+ "type": "string",
315
+ "const": "link"
316
+ },
317
+ "href": {
318
+ "type": "string"
319
+ },
320
+ "label": {
321
+ "type": "string"
322
+ }
323
+ },
324
+ "required": [
325
+ "type",
326
+ "href"
327
+ ],
328
+ "additionalProperties": false
329
+ },
330
+ {
331
+ "type": "object",
332
+ "properties": {
333
+ "type": {
334
+ "type": "string",
335
+ "const": "mention"
336
+ },
337
+ "label": {
338
+ "type": "string"
339
+ },
340
+ "id": {
341
+ "type": "string"
342
+ }
343
+ },
344
+ "required": [
345
+ "type",
346
+ "label"
347
+ ],
348
+ "additionalProperties": false
349
+ },
350
+ {
351
+ "type": "object",
352
+ "properties": {
353
+ "type": {
354
+ "type": "string",
355
+ "const": "emoji"
356
+ },
357
+ "value": {
358
+ "type": "string"
359
+ },
360
+ "shortcode": {
361
+ "type": "string"
362
+ }
363
+ },
364
+ "required": [
365
+ "type",
366
+ "value"
367
+ ],
368
+ "additionalProperties": false
369
+ }
370
+ ]
371
+ }
372
+ }
373
+ },
374
+ "required": [
375
+ "type",
376
+ "spans"
377
+ ],
378
+ "additionalProperties": false
379
+ },
380
+ {
381
+ "type": "object",
382
+ "properties": {
383
+ "type": {
384
+ "type": "string",
385
+ "const": "image"
386
+ },
387
+ "src": {
388
+ "type": "string"
389
+ },
390
+ "alt": {
391
+ "type": "string"
392
+ },
393
+ "width": {
394
+ "type": "number",
395
+ "exclusiveMinimum": 0
396
+ },
397
+ "height": {
398
+ "type": "number",
399
+ "exclusiveMinimum": 0
400
+ }
401
+ },
402
+ "required": [
403
+ "type",
404
+ "src"
405
+ ],
406
+ "additionalProperties": false
407
+ },
408
+ {
409
+ "type": "object",
410
+ "properties": {
411
+ "type": {
412
+ "type": "string"
413
+ }
414
+ },
415
+ "required": [
416
+ "type"
417
+ ],
418
+ "additionalProperties": {}
419
+ }
420
+ ]
421
+ }
422
+ },
423
+ "id": {
424
+ "type": "string"
425
+ },
426
+ "delay": {
427
+ "type": "number"
428
+ },
429
+ "instant": {
430
+ "type": "boolean"
431
+ },
432
+ "holdAfter": {
433
+ "type": "number",
434
+ "minimum": 0
435
+ }
436
+ },
437
+ "required": [
438
+ "type",
439
+ "from"
440
+ ],
441
+ "additionalProperties": false
442
+ },
443
+ {
444
+ "type": "object",
445
+ "properties": {
446
+ "type": {
447
+ "type": "string",
448
+ "const": "reaction"
449
+ },
450
+ "target": {
451
+ "type": "string"
452
+ },
453
+ "emoji": {
454
+ "type": "string"
455
+ },
456
+ "from": {
457
+ "type": "string"
458
+ },
459
+ "id": {
460
+ "type": "string"
461
+ },
462
+ "delay": {
463
+ "type": "number"
464
+ },
465
+ "instant": {
466
+ "type": "boolean"
467
+ },
468
+ "holdAfter": {
469
+ "type": "number",
470
+ "minimum": 0
471
+ }
472
+ },
473
+ "required": [
474
+ "type",
475
+ "target",
476
+ "emoji"
477
+ ],
478
+ "additionalProperties": false
479
+ },
480
+ {
481
+ "type": "object",
482
+ "properties": {
483
+ "type": {
484
+ "type": "string",
485
+ "const": "typing"
486
+ },
487
+ "from": {
488
+ "type": "string"
489
+ },
490
+ "showTypingFor": {
491
+ "type": "number",
492
+ "minimum": 0
493
+ },
494
+ "id": {
495
+ "type": "string"
496
+ },
497
+ "delay": {
498
+ "type": "number"
499
+ },
500
+ "instant": {
501
+ "type": "boolean"
502
+ },
503
+ "holdAfter": {
504
+ "type": "number",
505
+ "minimum": 0
506
+ }
507
+ },
508
+ "required": [
509
+ "type",
510
+ "from"
511
+ ],
512
+ "additionalProperties": false
513
+ },
514
+ {
515
+ "type": "object",
516
+ "properties": {
517
+ "type": {
518
+ "type": "string",
519
+ "const": "composerType"
520
+ },
521
+ "from": {
522
+ "type": "string"
523
+ },
524
+ "text": {
525
+ "type": "string"
526
+ },
527
+ "typingDuration": {
528
+ "type": "number",
529
+ "minimum": 0
530
+ },
531
+ "id": {
532
+ "type": "string"
533
+ },
534
+ "delay": {
535
+ "type": "number"
536
+ },
537
+ "instant": {
538
+ "type": "boolean"
539
+ },
540
+ "holdAfter": {
541
+ "type": "number",
542
+ "minimum": 0
543
+ }
544
+ },
545
+ "required": [
546
+ "type",
547
+ "from",
548
+ "text"
549
+ ],
550
+ "additionalProperties": false
551
+ },
552
+ {
553
+ "type": "object",
554
+ "properties": {
555
+ "type": {
556
+ "type": "string",
557
+ "const": "send"
558
+ },
559
+ "from": {
560
+ "type": "string"
561
+ },
562
+ "id": {
563
+ "type": "string"
564
+ },
565
+ "delay": {
566
+ "type": "number"
567
+ },
568
+ "instant": {
569
+ "type": "boolean"
570
+ },
571
+ "holdAfter": {
572
+ "type": "number",
573
+ "minimum": 0
574
+ }
575
+ },
576
+ "required": [
577
+ "type"
578
+ ],
579
+ "additionalProperties": false
580
+ },
581
+ {
582
+ "type": "object",
583
+ "properties": {
584
+ "type": {
585
+ "type": "string",
586
+ "const": "edit"
587
+ },
588
+ "target": {
589
+ "type": "string"
590
+ },
591
+ "text": {
592
+ "type": "string"
593
+ },
594
+ "images": {
595
+ "type": "array",
596
+ "items": {
597
+ "type": "object",
598
+ "properties": {
599
+ "src": {
600
+ "type": "string"
601
+ },
602
+ "alt": {
603
+ "type": "string"
604
+ },
605
+ "width": {
606
+ "type": "number",
607
+ "exclusiveMinimum": 0
608
+ },
609
+ "height": {
610
+ "type": "number",
611
+ "exclusiveMinimum": 0
612
+ }
613
+ },
614
+ "required": [
615
+ "src"
616
+ ],
617
+ "additionalProperties": false
618
+ }
619
+ },
620
+ "content": {
621
+ "type": "array",
622
+ "items": {
623
+ "anyOf": [
624
+ {
625
+ "type": "object",
626
+ "properties": {
627
+ "type": {
628
+ "type": "string",
629
+ "const": "text"
630
+ },
631
+ "spans": {
632
+ "type": "array",
633
+ "items": {
634
+ "oneOf": [
635
+ {
636
+ "type": "object",
637
+ "properties": {
638
+ "type": {
639
+ "type": "string",
640
+ "const": "text"
641
+ },
642
+ "value": {
643
+ "type": "string"
644
+ }
645
+ },
646
+ "required": [
647
+ "type",
648
+ "value"
649
+ ],
650
+ "additionalProperties": false
651
+ },
652
+ {
653
+ "type": "object",
654
+ "properties": {
655
+ "type": {
656
+ "type": "string",
657
+ "const": "code"
658
+ },
659
+ "value": {
660
+ "type": "string"
661
+ }
662
+ },
663
+ "required": [
664
+ "type",
665
+ "value"
666
+ ],
667
+ "additionalProperties": false
668
+ },
669
+ {
670
+ "type": "object",
671
+ "properties": {
672
+ "type": {
673
+ "type": "string",
674
+ "const": "link"
675
+ },
676
+ "href": {
677
+ "type": "string"
678
+ },
679
+ "label": {
680
+ "type": "string"
681
+ }
682
+ },
683
+ "required": [
684
+ "type",
685
+ "href"
686
+ ],
687
+ "additionalProperties": false
688
+ },
689
+ {
690
+ "type": "object",
691
+ "properties": {
692
+ "type": {
693
+ "type": "string",
694
+ "const": "mention"
695
+ },
696
+ "label": {
697
+ "type": "string"
698
+ },
699
+ "id": {
700
+ "type": "string"
701
+ }
702
+ },
703
+ "required": [
704
+ "type",
705
+ "label"
706
+ ],
707
+ "additionalProperties": false
708
+ },
709
+ {
710
+ "type": "object",
711
+ "properties": {
712
+ "type": {
713
+ "type": "string",
714
+ "const": "emoji"
715
+ },
716
+ "value": {
717
+ "type": "string"
718
+ },
719
+ "shortcode": {
720
+ "type": "string"
721
+ }
722
+ },
723
+ "required": [
724
+ "type",
725
+ "value"
726
+ ],
727
+ "additionalProperties": false
728
+ }
729
+ ]
730
+ }
731
+ }
732
+ },
733
+ "required": [
734
+ "type",
735
+ "spans"
736
+ ],
737
+ "additionalProperties": false
738
+ },
739
+ {
740
+ "type": "object",
741
+ "properties": {
742
+ "type": {
743
+ "type": "string",
744
+ "const": "image"
745
+ },
746
+ "src": {
747
+ "type": "string"
748
+ },
749
+ "alt": {
750
+ "type": "string"
751
+ },
752
+ "width": {
753
+ "type": "number",
754
+ "exclusiveMinimum": 0
755
+ },
756
+ "height": {
757
+ "type": "number",
758
+ "exclusiveMinimum": 0
759
+ }
760
+ },
761
+ "required": [
762
+ "type",
763
+ "src"
764
+ ],
765
+ "additionalProperties": false
766
+ },
767
+ {
768
+ "type": "object",
769
+ "properties": {
770
+ "type": {
771
+ "type": "string"
772
+ }
773
+ },
774
+ "required": [
775
+ "type"
776
+ ],
777
+ "additionalProperties": {}
778
+ }
779
+ ]
780
+ }
781
+ },
782
+ "id": {
783
+ "type": "string"
784
+ },
785
+ "delay": {
786
+ "type": "number"
787
+ },
788
+ "instant": {
789
+ "type": "boolean"
790
+ },
791
+ "holdAfter": {
792
+ "type": "number",
793
+ "minimum": 0
794
+ }
795
+ },
796
+ "required": [
797
+ "type",
798
+ "target"
799
+ ],
800
+ "additionalProperties": false
801
+ },
802
+ {
803
+ "type": "object",
804
+ "properties": {
805
+ "type": {
806
+ "type": "string",
807
+ "const": "delete"
808
+ },
809
+ "target": {
810
+ "type": "string"
811
+ },
812
+ "id": {
813
+ "type": "string"
814
+ },
815
+ "delay": {
816
+ "type": "number"
817
+ },
818
+ "instant": {
819
+ "type": "boolean"
820
+ },
821
+ "holdAfter": {
822
+ "type": "number",
823
+ "minimum": 0
824
+ }
825
+ },
826
+ "required": [
827
+ "type",
828
+ "target"
829
+ ],
830
+ "additionalProperties": false
831
+ },
832
+ {
833
+ "type": "object",
834
+ "properties": {
835
+ "type": {
836
+ "type": "string",
837
+ "const": "readReceipt"
838
+ },
839
+ "by": {
840
+ "type": "string"
841
+ },
842
+ "target": {
843
+ "type": "string"
844
+ },
845
+ "id": {
846
+ "type": "string"
847
+ },
848
+ "delay": {
849
+ "type": "number"
850
+ },
851
+ "instant": {
852
+ "type": "boolean"
853
+ },
854
+ "holdAfter": {
855
+ "type": "number",
856
+ "minimum": 0
857
+ }
858
+ },
859
+ "required": [
860
+ "type"
861
+ ],
862
+ "additionalProperties": false
863
+ },
864
+ {
865
+ "type": "object",
866
+ "properties": {
867
+ "type": {
868
+ "type": "string",
869
+ "const": "system"
870
+ },
871
+ "from": {
872
+ "type": "string"
873
+ },
874
+ "card": {
875
+ "type": "string"
876
+ },
877
+ "actions": {
878
+ "type": "array",
879
+ "items": {
880
+ "type": "object",
881
+ "properties": {
882
+ "label": {
883
+ "type": "string"
884
+ },
885
+ "href": {
886
+ "type": "string"
887
+ }
888
+ },
889
+ "required": [
890
+ "label"
891
+ ],
892
+ "additionalProperties": false
893
+ }
894
+ },
895
+ "text": {
896
+ "type": "string"
897
+ },
898
+ "images": {
899
+ "type": "array",
900
+ "items": {
901
+ "type": "object",
902
+ "properties": {
903
+ "src": {
904
+ "type": "string"
905
+ },
906
+ "alt": {
907
+ "type": "string"
908
+ },
909
+ "width": {
910
+ "type": "number",
911
+ "exclusiveMinimum": 0
912
+ },
913
+ "height": {
914
+ "type": "number",
915
+ "exclusiveMinimum": 0
916
+ }
917
+ },
918
+ "required": [
919
+ "src"
920
+ ],
921
+ "additionalProperties": false
922
+ }
923
+ },
924
+ "content": {
925
+ "type": "array",
926
+ "items": {
927
+ "anyOf": [
928
+ {
929
+ "type": "object",
930
+ "properties": {
931
+ "type": {
932
+ "type": "string",
933
+ "const": "text"
934
+ },
935
+ "spans": {
936
+ "type": "array",
937
+ "items": {
938
+ "oneOf": [
939
+ {
940
+ "type": "object",
941
+ "properties": {
942
+ "type": {
943
+ "type": "string",
944
+ "const": "text"
945
+ },
946
+ "value": {
947
+ "type": "string"
948
+ }
949
+ },
950
+ "required": [
951
+ "type",
952
+ "value"
953
+ ],
954
+ "additionalProperties": false
955
+ },
956
+ {
957
+ "type": "object",
958
+ "properties": {
959
+ "type": {
960
+ "type": "string",
961
+ "const": "code"
962
+ },
963
+ "value": {
964
+ "type": "string"
965
+ }
966
+ },
967
+ "required": [
968
+ "type",
969
+ "value"
970
+ ],
971
+ "additionalProperties": false
972
+ },
973
+ {
974
+ "type": "object",
975
+ "properties": {
976
+ "type": {
977
+ "type": "string",
978
+ "const": "link"
979
+ },
980
+ "href": {
981
+ "type": "string"
982
+ },
983
+ "label": {
984
+ "type": "string"
985
+ }
986
+ },
987
+ "required": [
988
+ "type",
989
+ "href"
990
+ ],
991
+ "additionalProperties": false
992
+ },
993
+ {
994
+ "type": "object",
995
+ "properties": {
996
+ "type": {
997
+ "type": "string",
998
+ "const": "mention"
999
+ },
1000
+ "label": {
1001
+ "type": "string"
1002
+ },
1003
+ "id": {
1004
+ "type": "string"
1005
+ }
1006
+ },
1007
+ "required": [
1008
+ "type",
1009
+ "label"
1010
+ ],
1011
+ "additionalProperties": false
1012
+ },
1013
+ {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "type": {
1017
+ "type": "string",
1018
+ "const": "emoji"
1019
+ },
1020
+ "value": {
1021
+ "type": "string"
1022
+ },
1023
+ "shortcode": {
1024
+ "type": "string"
1025
+ }
1026
+ },
1027
+ "required": [
1028
+ "type",
1029
+ "value"
1030
+ ],
1031
+ "additionalProperties": false
1032
+ }
1033
+ ]
1034
+ }
1035
+ }
1036
+ },
1037
+ "required": [
1038
+ "type",
1039
+ "spans"
1040
+ ],
1041
+ "additionalProperties": false
1042
+ },
1043
+ {
1044
+ "type": "object",
1045
+ "properties": {
1046
+ "type": {
1047
+ "type": "string",
1048
+ "const": "image"
1049
+ },
1050
+ "src": {
1051
+ "type": "string"
1052
+ },
1053
+ "alt": {
1054
+ "type": "string"
1055
+ },
1056
+ "width": {
1057
+ "type": "number",
1058
+ "exclusiveMinimum": 0
1059
+ },
1060
+ "height": {
1061
+ "type": "number",
1062
+ "exclusiveMinimum": 0
1063
+ }
1064
+ },
1065
+ "required": [
1066
+ "type",
1067
+ "src"
1068
+ ],
1069
+ "additionalProperties": false
1070
+ },
1071
+ {
1072
+ "type": "object",
1073
+ "properties": {
1074
+ "type": {
1075
+ "type": "string"
1076
+ }
1077
+ },
1078
+ "required": [
1079
+ "type"
1080
+ ],
1081
+ "additionalProperties": {}
1082
+ }
1083
+ ]
1084
+ }
1085
+ },
1086
+ "id": {
1087
+ "type": "string"
1088
+ },
1089
+ "delay": {
1090
+ "type": "number"
1091
+ },
1092
+ "instant": {
1093
+ "type": "boolean"
1094
+ },
1095
+ "holdAfter": {
1096
+ "type": "number",
1097
+ "minimum": 0
1098
+ }
1099
+ },
1100
+ "required": [
1101
+ "type"
1102
+ ],
1103
+ "additionalProperties": false
1104
+ },
1105
+ {
1106
+ "type": "object",
1107
+ "properties": {
1108
+ "type": {
1109
+ "type": "string",
1110
+ "const": "beat"
1111
+ },
1112
+ "duration": {
1113
+ "type": "number",
1114
+ "minimum": 0
1115
+ },
1116
+ "id": {
1117
+ "type": "string"
1118
+ },
1119
+ "delay": {
1120
+ "type": "number"
1121
+ },
1122
+ "instant": {
1123
+ "type": "boolean"
1124
+ },
1125
+ "holdAfter": {
1126
+ "type": "number",
1127
+ "minimum": 0
1128
+ }
1129
+ },
1130
+ "required": [
1131
+ "type",
1132
+ "duration"
1133
+ ],
1134
+ "additionalProperties": false
1135
+ }
1136
+ ]
1137
+ }
1138
+ }
1139
+ },
1140
+ "required": [
1141
+ "version",
1142
+ "meta",
1143
+ "participants",
1144
+ "pacing",
1145
+ "timeline"
1146
+ ],
1147
+ "additionalProperties": false
1148
+ }