@indreamai/openclaw-plugin 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.
Files changed (31) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +6 -0
  3. package/dist/chunk-ENGUNMFI.js +196 -0
  4. package/dist/index.d.ts +11 -0
  5. package/dist/index.js +781 -0
  6. package/dist/setup-entry.d.ts +11 -0
  7. package/dist/setup-entry.js +20 -0
  8. package/openclaw.plugin.json +98 -0
  9. package/package.json +58 -0
  10. package/skills/indream-editor-json/SKILL.md +157 -0
  11. package/skills/indream-editor-json/references/asset-mapping.md +147 -0
  12. package/skills/indream-editor-json/references/common-items.md +280 -0
  13. package/skills/indream-editor-json/references/editor-state.v1.schema.json +1491 -0
  14. package/skills/indream-editor-json/references/keyframes.md +102 -0
  15. package/skills/indream-editor-json/references/material-libraries.md +97 -0
  16. package/skills/indream-editor-json/references/minimal-editor-state.json +36 -0
  17. package/skills/indream-editor-json/references/motion-effects-and-transitions.md +235 -0
  18. package/skills/indream-editor-json/references/recipes.md +122 -0
  19. package/skills/indream-editor-json/references/structure-and-principles.md +159 -0
  20. package/skills/indream-editor-json/references/template-catalog.md +45 -0
  21. package/skills/indream-editor-json/references/templates/chart-showcase.json +654 -0
  22. package/skills/indream-editor-json/references/templates/gallery-carousel.json +538 -0
  23. package/skills/indream-editor-json/references/templates/hello-world.json +212 -0
  24. package/skills/indream-editor-json/references/templates/illustration-board.json +480 -0
  25. package/skills/indream-editor-json/references/templates/keyframe-motion-lab.json +362 -0
  26. package/skills/indream-editor-json/references/templates/product-intro.json +614 -0
  27. package/skills/indream-editor-json/references/templates/subtitle-promo.json +341 -0
  28. package/skills/indream-editor-json/references/text-and-captions.md +211 -0
  29. package/skills/indream-editor-json/references/validation-repair.md +134 -0
  30. package/skills/indream-render-workflow/SKILL.md +57 -0
  31. package/skills/indream-render-workflow/references/workflow.md +19 -0
@@ -0,0 +1,1491 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://api.indream.ai/schemas/editor-state.v1.schema.json",
4
+ "title": "IndreamEditorStateV1",
5
+ "type": "object",
6
+ "required": [
7
+ "compositionWidth",
8
+ "compositionHeight",
9
+ "timebaseTicksPerSecond",
10
+ "tracks",
11
+ "assets",
12
+ "items",
13
+ "transitions"
14
+ ],
15
+ "properties": {
16
+ "compositionWidth": {
17
+ "type": "integer",
18
+ "minimum": 50,
19
+ "maximum": 1920
20
+ },
21
+ "compositionHeight": {
22
+ "type": "integer",
23
+ "minimum": 50,
24
+ "maximum": 1920
25
+ },
26
+ "timebaseTicksPerSecond": {
27
+ "type": "integer",
28
+ "const": 240000
29
+ },
30
+ "outputRatio": {
31
+ "type": "string",
32
+ "enum": ["16:9", "9:16", "1:1", "4:3", "3:4", "custom"]
33
+ },
34
+ "tracks": {
35
+ "type": "array",
36
+ "minItems": 1,
37
+ "items": {
38
+ "$ref": "#/definitions/track"
39
+ }
40
+ },
41
+ "assets": {
42
+ "type": "object",
43
+ "additionalProperties": {
44
+ "oneOf": [
45
+ {
46
+ "$ref": "#/definitions/imageAsset"
47
+ },
48
+ {
49
+ "$ref": "#/definitions/videoAsset"
50
+ },
51
+ {
52
+ "$ref": "#/definitions/gifAsset"
53
+ },
54
+ {
55
+ "$ref": "#/definitions/audioAsset"
56
+ },
57
+ {
58
+ "$ref": "#/definitions/captionAsset"
59
+ },
60
+ {
61
+ "$ref": "#/definitions/lottieAsset"
62
+ }
63
+ ]
64
+ }
65
+ },
66
+ "items": {
67
+ "type": "object",
68
+ "additionalProperties": {
69
+ "oneOf": [
70
+ {
71
+ "$ref": "#/definitions/imageItem"
72
+ },
73
+ {
74
+ "$ref": "#/definitions/videoItem"
75
+ },
76
+ {
77
+ "$ref": "#/definitions/gifItem"
78
+ },
79
+ {
80
+ "$ref": "#/definitions/lottieItem"
81
+ },
82
+ {
83
+ "$ref": "#/definitions/audioItem"
84
+ },
85
+ {
86
+ "$ref": "#/definitions/textItem"
87
+ },
88
+ {
89
+ "$ref": "#/definitions/textTemplateItem"
90
+ },
91
+ {
92
+ "$ref": "#/definitions/captionsItem"
93
+ },
94
+ {
95
+ "$ref": "#/definitions/solidItem"
96
+ },
97
+ {
98
+ "$ref": "#/definitions/illustrationItem"
99
+ },
100
+ {
101
+ "$ref": "#/definitions/effectItem"
102
+ },
103
+ {
104
+ "$ref": "#/definitions/filterItem"
105
+ },
106
+ {
107
+ "$ref": "#/definitions/chartItem"
108
+ }
109
+ ]
110
+ }
111
+ },
112
+ "transitions": {
113
+ "type": "object",
114
+ "additionalProperties": {
115
+ "$ref": "#/definitions/transition"
116
+ }
117
+ },
118
+ "globalBackground": {
119
+ "$ref": "#/definitions/globalBackground"
120
+ },
121
+ "brandRuntime": {
122
+ "$ref": "#/definitions/brandRuntime"
123
+ },
124
+ "deletedAssets": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "object",
128
+ "additionalProperties": true
129
+ }
130
+ }
131
+ },
132
+ "additionalProperties": true,
133
+ "definitions": {
134
+ "primitive": {
135
+ "oneOf": [
136
+ {
137
+ "type": "string"
138
+ },
139
+ {
140
+ "type": "number"
141
+ },
142
+ {
143
+ "type": "boolean"
144
+ }
145
+ ]
146
+ },
147
+ "baseAsset": {
148
+ "type": "object",
149
+ "required": ["id", "type", "filename", "size", "mimeType"],
150
+ "properties": {
151
+ "id": {
152
+ "type": "string",
153
+ "minLength": 1
154
+ },
155
+ "type": {
156
+ "type": "string"
157
+ },
158
+ "filename": {
159
+ "type": "string",
160
+ "minLength": 1
161
+ },
162
+ "size": {
163
+ "type": "number",
164
+ "minimum": 0
165
+ },
166
+ "remoteUrl": {
167
+ "type": ["string", "null"]
168
+ },
169
+ "remoteKey": {
170
+ "type": ["string", "null"]
171
+ },
172
+ "mimeType": {
173
+ "type": "string",
174
+ "minLength": 1
175
+ }
176
+ },
177
+ "additionalProperties": true
178
+ },
179
+ "imageAsset": {
180
+ "allOf": [
181
+ {
182
+ "$ref": "#/definitions/baseAsset"
183
+ },
184
+ {
185
+ "type": "object",
186
+ "required": ["type", "width", "height"],
187
+ "properties": {
188
+ "type": {
189
+ "const": "image"
190
+ },
191
+ "width": {
192
+ "type": "number",
193
+ "minimum": 1
194
+ },
195
+ "height": {
196
+ "type": "number",
197
+ "minimum": 1
198
+ }
199
+ }
200
+ }
201
+ ]
202
+ },
203
+ "videoAsset": {
204
+ "allOf": [
205
+ {
206
+ "$ref": "#/definitions/baseAsset"
207
+ },
208
+ {
209
+ "type": "object",
210
+ "required": ["type", "durationInSeconds", "hasAudioTrack", "width", "height"],
211
+ "properties": {
212
+ "type": {
213
+ "const": "video"
214
+ },
215
+ "durationInSeconds": {
216
+ "type": "number",
217
+ "minimum": 0
218
+ },
219
+ "hasAudioTrack": {
220
+ "type": "boolean"
221
+ },
222
+ "width": {
223
+ "type": "number",
224
+ "minimum": 1
225
+ },
226
+ "height": {
227
+ "type": "number",
228
+ "minimum": 1
229
+ }
230
+ }
231
+ }
232
+ ]
233
+ },
234
+ "gifAsset": {
235
+ "allOf": [
236
+ {
237
+ "$ref": "#/definitions/baseAsset"
238
+ },
239
+ {
240
+ "type": "object",
241
+ "required": ["type", "durationInSeconds", "width", "height", "loopBehavior"],
242
+ "properties": {
243
+ "type": {
244
+ "const": "gif"
245
+ },
246
+ "durationInSeconds": {
247
+ "type": "number",
248
+ "minimum": 0
249
+ },
250
+ "width": {
251
+ "type": "number",
252
+ "minimum": 1
253
+ },
254
+ "height": {
255
+ "type": "number",
256
+ "minimum": 1
257
+ },
258
+ "loopBehavior": {
259
+ "type": "string",
260
+ "enum": ["finite", "loop"]
261
+ }
262
+ }
263
+ }
264
+ ]
265
+ },
266
+ "audioAsset": {
267
+ "allOf": [
268
+ {
269
+ "$ref": "#/definitions/baseAsset"
270
+ },
271
+ {
272
+ "type": "object",
273
+ "required": ["type", "durationInSeconds"],
274
+ "properties": {
275
+ "type": {
276
+ "const": "audio"
277
+ },
278
+ "durationInSeconds": {
279
+ "type": "number",
280
+ "minimum": 0
281
+ }
282
+ }
283
+ }
284
+ ]
285
+ },
286
+ "lottieAsset": {
287
+ "allOf": [
288
+ {
289
+ "$ref": "#/definitions/baseAsset"
290
+ },
291
+ {
292
+ "type": "object",
293
+ "required": [
294
+ "type",
295
+ "durationInSeconds",
296
+ "width",
297
+ "height",
298
+ "resourceType"
299
+ ],
300
+ "properties": {
301
+ "type": {
302
+ "const": "lottie"
303
+ },
304
+ "durationInSeconds": {
305
+ "type": "number",
306
+ "minimum": 0
307
+ },
308
+ "width": {
309
+ "type": "number",
310
+ "minimum": 1
311
+ },
312
+ "height": {
313
+ "type": "number",
314
+ "minimum": 1
315
+ },
316
+ "resourceType": {
317
+ "type": "string",
318
+ "enum": ["lottie", "svg"]
319
+ },
320
+ "resourceJson": {
321
+ "type": ["object", "null"],
322
+ "additionalProperties": true
323
+ },
324
+ "resourceComponentId": {
325
+ "type": ["string", "null"]
326
+ },
327
+ "materialConfig": {
328
+ "type": ["object", "null"],
329
+ "additionalProperties": true
330
+ }
331
+ }
332
+ }
333
+ ]
334
+ },
335
+ "captionAsset": {
336
+ "allOf": [
337
+ {
338
+ "$ref": "#/definitions/baseAsset"
339
+ },
340
+ {
341
+ "type": "object",
342
+ "required": ["type", "captions", "timingGranularity"],
343
+ "properties": {
344
+ "type": {
345
+ "const": "caption"
346
+ },
347
+ "captions": {
348
+ "type": "array",
349
+ "items": {
350
+ "type": "object",
351
+ "additionalProperties": true
352
+ }
353
+ },
354
+ "timingGranularity": {
355
+ "type": "string",
356
+ "enum": ["word", "line"]
357
+ }
358
+ }
359
+ }
360
+ ]
361
+ },
362
+ "track": {
363
+ "type": "object",
364
+ "required": ["id", "items", "hidden", "muted"],
365
+ "properties": {
366
+ "id": {
367
+ "type": "string",
368
+ "minLength": 1
369
+ },
370
+ "items": {
371
+ "type": "array",
372
+ "items": {
373
+ "type": "string",
374
+ "minLength": 1
375
+ }
376
+ },
377
+ "hidden": {
378
+ "type": "boolean"
379
+ },
380
+ "muted": {
381
+ "type": "boolean"
382
+ }
383
+ },
384
+ "additionalProperties": true
385
+ },
386
+ "animationSpec": {
387
+ "type": "object",
388
+ "required": ["type", "durationTicks"],
389
+ "properties": {
390
+ "type": {
391
+ "type": "string",
392
+ "enum": ["fade", "slide-up", "slide-down", "slide-left", "slide-right", "zoom-in", "zoom-out"]
393
+ },
394
+ "durationTicks": {
395
+ "type": "integer",
396
+ "minimum": 1
397
+ },
398
+ "easing": {
399
+ "type": "string",
400
+ "enum": ["linear", "ease-in", "ease-out", "ease-in-out"]
401
+ },
402
+ "params": {
403
+ "type": "object",
404
+ "additionalProperties": {
405
+ "$ref": "#/definitions/primitive"
406
+ }
407
+ }
408
+ },
409
+ "additionalProperties": true
410
+ },
411
+ "clipAnimations": {
412
+ "type": "object",
413
+ "properties": {
414
+ "in": {
415
+ "$ref": "#/definitions/animationSpec"
416
+ },
417
+ "out": {
418
+ "$ref": "#/definitions/animationSpec"
419
+ }
420
+ },
421
+ "additionalProperties": false
422
+ },
423
+ "captionAnimationSpec": {
424
+ "type": "object",
425
+ "required": ["type", "durationTicks"],
426
+ "properties": {
427
+ "type": {
428
+ "type": "string",
429
+ "enum": [
430
+ "converge",
431
+ "elastic-pop",
432
+ "typewriter",
433
+ "lay-down",
434
+ "center-type-out",
435
+ "curtain-close",
436
+ "jitter",
437
+ "rainbow",
438
+ "sweep-shine"
439
+ ]
440
+ },
441
+ "durationTicks": {
442
+ "type": "integer",
443
+ "minimum": 1
444
+ },
445
+ "easing": {
446
+ "type": "string",
447
+ "enum": ["linear", "ease-in", "ease-out", "ease-in-out"]
448
+ },
449
+ "params": {
450
+ "type": "object",
451
+ "additionalProperties": {
452
+ "$ref": "#/definitions/primitive"
453
+ }
454
+ }
455
+ },
456
+ "additionalProperties": true
457
+ },
458
+ "captionClipAnimations": {
459
+ "type": "object",
460
+ "properties": {
461
+ "in": {
462
+ "$ref": "#/definitions/captionAnimationSpec"
463
+ },
464
+ "out": {
465
+ "$ref": "#/definitions/captionAnimationSpec"
466
+ },
467
+ "loop": {
468
+ "$ref": "#/definitions/captionAnimationSpec"
469
+ }
470
+ },
471
+ "additionalProperties": false
472
+ },
473
+ "keyframePoint": {
474
+ "type": "object",
475
+ "required": ["timeTicks", "value"],
476
+ "properties": {
477
+ "timeTicks": {
478
+ "type": "integer",
479
+ "minimum": 0
480
+ },
481
+ "value": {
482
+ "type": "number"
483
+ }
484
+ },
485
+ "additionalProperties": false
486
+ },
487
+ "animatedNumberTrack": {
488
+ "type": "object",
489
+ "required": ["value", "keyframes"],
490
+ "properties": {
491
+ "value": {
492
+ "type": "number"
493
+ },
494
+ "keyframes": {
495
+ "type": "array",
496
+ "items": {
497
+ "$ref": "#/definitions/keyframePoint"
498
+ }
499
+ }
500
+ },
501
+ "additionalProperties": false
502
+ },
503
+ "timelineItemBase": {
504
+ "type": "object",
505
+ "required": [
506
+ "id",
507
+ "type",
508
+ "durationTicks",
509
+ "startTicks",
510
+ "isDraggingInTimeline"
511
+ ],
512
+ "properties": {
513
+ "id": {
514
+ "type": "string",
515
+ "minLength": 1
516
+ },
517
+ "type": {
518
+ "type": "string"
519
+ },
520
+ "durationTicks": {
521
+ "type": "integer",
522
+ "minimum": 1
523
+ },
524
+ "startTicks": {
525
+ "type": "integer",
526
+ "minimum": 0
527
+ },
528
+ "isDraggingInTimeline": {
529
+ "type": "boolean"
530
+ }
531
+ },
532
+ "additionalProperties": true
533
+ },
534
+ "geometryItemBase": {
535
+ "type": "object",
536
+ "required": [
537
+ "top",
538
+ "left",
539
+ "width",
540
+ "height",
541
+ "scaleX",
542
+ "scaleY",
543
+ "opacity"
544
+ ],
545
+ "properties": {
546
+ "top": {
547
+ "$ref": "#/definitions/animatedNumberTrack"
548
+ },
549
+ "left": {
550
+ "$ref": "#/definitions/animatedNumberTrack"
551
+ },
552
+ "width": {
553
+ "$ref": "#/definitions/animatedNumberTrack"
554
+ },
555
+ "height": {
556
+ "$ref": "#/definitions/animatedNumberTrack"
557
+ },
558
+ "scaleX": {
559
+ "$ref": "#/definitions/animatedNumberTrack"
560
+ },
561
+ "scaleY": {
562
+ "$ref": "#/definitions/animatedNumberTrack"
563
+ },
564
+ "opacity": {
565
+ "$ref": "#/definitions/animatedNumberTrack"
566
+ }
567
+ },
568
+ "additionalProperties": true
569
+ },
570
+ "baseItem": {
571
+ "allOf": [
572
+ {
573
+ "$ref": "#/definitions/timelineItemBase"
574
+ },
575
+ {
576
+ "$ref": "#/definitions/geometryItemBase"
577
+ }
578
+ ]
579
+ },
580
+ "imageItem": {
581
+ "allOf": [
582
+ {
583
+ "$ref": "#/definitions/baseItem"
584
+ },
585
+ {
586
+ "type": "object",
587
+ "required": ["type", "assetId", "keepAspectRatio", "borderRadius", "rotation"],
588
+ "properties": {
589
+ "type": {
590
+ "const": "image"
591
+ },
592
+ "assetId": {
593
+ "type": "string",
594
+ "minLength": 1
595
+ },
596
+ "stickerId": {
597
+ "type": ["string", "null"],
598
+ "minLength": 1
599
+ },
600
+ "stickerVersion": {
601
+ "type": ["integer", "null"],
602
+ "minimum": 1
603
+ },
604
+ "keepAspectRatio": {
605
+ "type": "boolean"
606
+ },
607
+ "borderRadius": {
608
+ "$ref": "#/definitions/animatedNumberTrack"
609
+ },
610
+ "rotation": {
611
+ "$ref": "#/definitions/animatedNumberTrack"
612
+ },
613
+ "cropLeft": {
614
+ "$ref": "#/definitions/animatedNumberTrack"
615
+ },
616
+ "cropTop": {
617
+ "$ref": "#/definitions/animatedNumberTrack"
618
+ },
619
+ "cropRight": {
620
+ "$ref": "#/definitions/animatedNumberTrack"
621
+ },
622
+ "cropBottom": {
623
+ "$ref": "#/definitions/animatedNumberTrack"
624
+ },
625
+ "animations": {
626
+ "$ref": "#/definitions/clipAnimations"
627
+ }
628
+ }
629
+ }
630
+ ]
631
+ },
632
+ "videoItem": {
633
+ "allOf": [
634
+ {
635
+ "$ref": "#/definitions/baseItem"
636
+ },
637
+ {
638
+ "type": "object",
639
+ "required": [
640
+ "type",
641
+ "assetId",
642
+ "keepAspectRatio",
643
+ "borderRadius",
644
+ "rotation",
645
+ "videoStartFromInSeconds",
646
+ "decibelAdjustment",
647
+ "playbackRate",
648
+ "audioFadeInDurationInSeconds",
649
+ "audioFadeOutDurationInSeconds"
650
+ ],
651
+ "properties": {
652
+ "type": {
653
+ "const": "video"
654
+ },
655
+ "assetId": {
656
+ "type": "string",
657
+ "minLength": 1
658
+ },
659
+ "keepAspectRatio": {
660
+ "type": "boolean"
661
+ },
662
+ "borderRadius": {
663
+ "$ref": "#/definitions/animatedNumberTrack"
664
+ },
665
+ "rotation": {
666
+ "$ref": "#/definitions/animatedNumberTrack"
667
+ },
668
+ "videoStartFromInSeconds": {
669
+ "type": "number",
670
+ "minimum": 0
671
+ },
672
+ "decibelAdjustment": {
673
+ "$ref": "#/definitions/animatedNumberTrack"
674
+ },
675
+ "playbackRate": {
676
+ "type": "number",
677
+ "minimum": 0.01
678
+ },
679
+ "audioFadeInDurationInSeconds": {
680
+ "type": "number",
681
+ "minimum": 0
682
+ },
683
+ "audioFadeOutDurationInSeconds": {
684
+ "type": "number",
685
+ "minimum": 0
686
+ },
687
+ "cropLeft": {
688
+ "$ref": "#/definitions/animatedNumberTrack"
689
+ },
690
+ "cropTop": {
691
+ "$ref": "#/definitions/animatedNumberTrack"
692
+ },
693
+ "cropRight": {
694
+ "$ref": "#/definitions/animatedNumberTrack"
695
+ },
696
+ "cropBottom": {
697
+ "$ref": "#/definitions/animatedNumberTrack"
698
+ },
699
+ "animations": {
700
+ "$ref": "#/definitions/clipAnimations"
701
+ }
702
+ }
703
+ }
704
+ ]
705
+ },
706
+ "gifItem": {
707
+ "allOf": [
708
+ {
709
+ "$ref": "#/definitions/baseItem"
710
+ },
711
+ {
712
+ "type": "object",
713
+ "required": [
714
+ "type",
715
+ "assetId",
716
+ "keepAspectRatio",
717
+ "borderRadius",
718
+ "rotation",
719
+ "gifStartFromInSeconds",
720
+ "playbackRate"
721
+ ],
722
+ "properties": {
723
+ "type": {
724
+ "const": "gif"
725
+ },
726
+ "assetId": {
727
+ "type": "string",
728
+ "minLength": 1
729
+ },
730
+ "keepAspectRatio": {
731
+ "type": "boolean"
732
+ },
733
+ "borderRadius": {
734
+ "$ref": "#/definitions/animatedNumberTrack"
735
+ },
736
+ "rotation": {
737
+ "$ref": "#/definitions/animatedNumberTrack"
738
+ },
739
+ "gifStartFromInSeconds": {
740
+ "type": "number",
741
+ "minimum": 0
742
+ },
743
+ "playbackRate": {
744
+ "type": "number",
745
+ "minimum": 0.01
746
+ },
747
+ "cropLeft": {
748
+ "$ref": "#/definitions/animatedNumberTrack"
749
+ },
750
+ "cropTop": {
751
+ "$ref": "#/definitions/animatedNumberTrack"
752
+ },
753
+ "cropRight": {
754
+ "$ref": "#/definitions/animatedNumberTrack"
755
+ },
756
+ "cropBottom": {
757
+ "$ref": "#/definitions/animatedNumberTrack"
758
+ },
759
+ "animations": {
760
+ "$ref": "#/definitions/clipAnimations"
761
+ }
762
+ }
763
+ }
764
+ ]
765
+ },
766
+ "lottieItem": {
767
+ "allOf": [
768
+ {
769
+ "$ref": "#/definitions/baseItem"
770
+ },
771
+ {
772
+ "type": "object",
773
+ "required": [
774
+ "type",
775
+ "assetId",
776
+ "keepAspectRatio",
777
+ "rotation",
778
+ "lottieStartFromInSeconds",
779
+ "playbackRate"
780
+ ],
781
+ "properties": {
782
+ "type": {
783
+ "const": "lottie"
784
+ },
785
+ "assetId": {
786
+ "type": "string",
787
+ "minLength": 1
788
+ },
789
+ "keepAspectRatio": {
790
+ "type": "boolean"
791
+ },
792
+ "rotation": {
793
+ "$ref": "#/definitions/animatedNumberTrack"
794
+ },
795
+ "lottieStartFromInSeconds": {
796
+ "type": "number",
797
+ "minimum": 0
798
+ },
799
+ "playbackRate": {
800
+ "type": "number",
801
+ "minimum": 0.01
802
+ },
803
+ "animations": {
804
+ "$ref": "#/definitions/clipAnimations"
805
+ }
806
+ }
807
+ }
808
+ ]
809
+ },
810
+ "audioItem": {
811
+ "allOf": [
812
+ {
813
+ "$ref": "#/definitions/baseItem"
814
+ },
815
+ {
816
+ "type": "object",
817
+ "required": [
818
+ "type",
819
+ "assetId",
820
+ "audioStartFromInSeconds",
821
+ "decibelAdjustment",
822
+ "playbackRate",
823
+ "audioFadeInDurationInSeconds",
824
+ "audioFadeOutDurationInSeconds"
825
+ ],
826
+ "properties": {
827
+ "type": {
828
+ "const": "audio"
829
+ },
830
+ "assetId": {
831
+ "type": "string",
832
+ "minLength": 1
833
+ },
834
+ "audioStartFromInSeconds": {
835
+ "type": "number",
836
+ "minimum": 0
837
+ },
838
+ "decibelAdjustment": {
839
+ "$ref": "#/definitions/animatedNumberTrack"
840
+ },
841
+ "playbackRate": {
842
+ "type": "number",
843
+ "minimum": 0.01
844
+ },
845
+ "audioFadeInDurationInSeconds": {
846
+ "type": "number",
847
+ "minimum": 0
848
+ },
849
+ "audioFadeOutDurationInSeconds": {
850
+ "type": "number",
851
+ "minimum": 0
852
+ }
853
+ }
854
+ }
855
+ ]
856
+ },
857
+ "textItem": {
858
+ "allOf": [
859
+ {
860
+ "$ref": "#/definitions/baseItem"
861
+ },
862
+ {
863
+ "type": "object",
864
+ "required": [
865
+ "type",
866
+ "text",
867
+ "color",
868
+ "align",
869
+ "fontFamily",
870
+ "fontStyle",
871
+ "fontSize",
872
+ "lineHeight",
873
+ "letterSpacing",
874
+ "resizeOnEdit",
875
+ "direction",
876
+ "strokeWidth",
877
+ "strokeColor"
878
+ ],
879
+ "properties": {
880
+ "type": {
881
+ "const": "text"
882
+ },
883
+ "text": {
884
+ "type": "string"
885
+ },
886
+ "color": {
887
+ "type": "string"
888
+ },
889
+ "align": {
890
+ "type": "string",
891
+ "enum": ["left", "center", "right"]
892
+ },
893
+ "fontFamily": {
894
+ "type": "string"
895
+ },
896
+ "fontStyle": {
897
+ "type": "object",
898
+ "required": ["variant", "weight"],
899
+ "properties": {
900
+ "variant": {
901
+ "type": "string"
902
+ },
903
+ "weight": {
904
+ "type": "string"
905
+ }
906
+ },
907
+ "additionalProperties": true
908
+ },
909
+ "fontSize": {
910
+ "type": "number",
911
+ "minimum": 1
912
+ },
913
+ "lineHeight": {
914
+ "type": "number",
915
+ "minimum": 0
916
+ },
917
+ "letterSpacing": {
918
+ "type": "number"
919
+ },
920
+ "resizeOnEdit": {
921
+ "type": "boolean"
922
+ },
923
+ "direction": {
924
+ "type": "string",
925
+ "enum": ["ltr", "rtl"]
926
+ },
927
+ "strokeWidth": {
928
+ "type": "number",
929
+ "minimum": 0
930
+ },
931
+ "strokeColor": {
932
+ "type": "string"
933
+ },
934
+ "background": {
935
+ "oneOf": [
936
+ {
937
+ "type": "null"
938
+ },
939
+ {
940
+ "type": "object",
941
+ "required": ["color", "horizontalPadding", "borderRadius"],
942
+ "properties": {
943
+ "color": {
944
+ "type": "string"
945
+ },
946
+ "horizontalPadding": {
947
+ "type": "number",
948
+ "minimum": 0
949
+ },
950
+ "borderRadius": {
951
+ "type": "number",
952
+ "minimum": 0
953
+ }
954
+ },
955
+ "additionalProperties": true
956
+ }
957
+ ]
958
+ },
959
+ "rotation": {
960
+ "$ref": "#/definitions/animatedNumberTrack"
961
+ },
962
+ "animations": {
963
+ "$ref": "#/definitions/clipAnimations"
964
+ },
965
+ "captionAnimations": {
966
+ "$ref": "#/definitions/captionClipAnimations"
967
+ }
968
+ }
969
+ }
970
+ ]
971
+ },
972
+ "textTemplateItem": {
973
+ "allOf": [
974
+ {
975
+ "$ref": "#/definitions/baseItem"
976
+ },
977
+ {
978
+ "type": "object",
979
+ "required": ["type", "schemaVersion", "templateId", "templateCategory", "nodes"],
980
+ "properties": {
981
+ "type": {
982
+ "const": "text-template"
983
+ },
984
+ "schemaVersion": {
985
+ "type": "integer",
986
+ "const": 2
987
+ },
988
+ "templateId": {
989
+ "type": "string"
990
+ },
991
+ "templateCategory": {
992
+ "type": "string"
993
+ },
994
+ "nodes": {
995
+ "type": "array",
996
+ "minItems": 2,
997
+ "items": {
998
+ "type": "object",
999
+ "required": ["type"],
1000
+ "properties": {
1001
+ "type": {
1002
+ "type": "string",
1003
+ "enum": ["image", "text"]
1004
+ }
1005
+ },
1006
+ "additionalProperties": true
1007
+ }
1008
+ },
1009
+ "rotation": {
1010
+ "$ref": "#/definitions/animatedNumberTrack"
1011
+ },
1012
+ "animations": {
1013
+ "$ref": "#/definitions/clipAnimations"
1014
+ }
1015
+ }
1016
+ }
1017
+ ]
1018
+ },
1019
+ "captionsItem": {
1020
+ "allOf": [
1021
+ {
1022
+ "$ref": "#/definitions/baseItem"
1023
+ },
1024
+ {
1025
+ "type": "object",
1026
+ "required": [
1027
+ "type",
1028
+ "assetId",
1029
+ "fontFamily",
1030
+ "fontStyle",
1031
+ "lineHeight",
1032
+ "letterSpacing",
1033
+ "fontSize",
1034
+ "align",
1035
+ "color",
1036
+ "highlightColor",
1037
+ "strokeWidth",
1038
+ "strokeColor",
1039
+ "direction",
1040
+ "pageDurationInMilliseconds",
1041
+ "captionStartInSeconds",
1042
+ "maxLines",
1043
+ "source",
1044
+ "captionGroupId",
1045
+ "background"
1046
+ ],
1047
+ "properties": {
1048
+ "type": {
1049
+ "const": "captions"
1050
+ },
1051
+ "assetId": {
1052
+ "type": "string"
1053
+ },
1054
+ "fontFamily": {
1055
+ "type": "string"
1056
+ },
1057
+ "fontStyle": {
1058
+ "type": "object",
1059
+ "required": ["variant", "weight"],
1060
+ "properties": {
1061
+ "variant": {
1062
+ "type": "string"
1063
+ },
1064
+ "weight": {
1065
+ "type": "string"
1066
+ }
1067
+ },
1068
+ "additionalProperties": true
1069
+ },
1070
+ "lineHeight": {
1071
+ "type": "number",
1072
+ "minimum": 0
1073
+ },
1074
+ "letterSpacing": {
1075
+ "type": "number"
1076
+ },
1077
+ "fontSize": {
1078
+ "type": "number",
1079
+ "minimum": 1
1080
+ },
1081
+ "align": {
1082
+ "type": "string",
1083
+ "enum": ["left", "center", "right"]
1084
+ },
1085
+ "color": {
1086
+ "type": "string"
1087
+ },
1088
+ "highlightColor": {
1089
+ "type": "string"
1090
+ },
1091
+ "strokeWidth": {
1092
+ "type": "number",
1093
+ "minimum": 0
1094
+ },
1095
+ "strokeColor": {
1096
+ "type": "string"
1097
+ },
1098
+ "direction": {
1099
+ "type": "string",
1100
+ "enum": ["ltr", "rtl"]
1101
+ },
1102
+ "pageDurationInMilliseconds": {
1103
+ "type": "number",
1104
+ "minimum": 1
1105
+ },
1106
+ "captionStartInSeconds": {
1107
+ "type": "number",
1108
+ "minimum": 0
1109
+ },
1110
+ "maxLines": {
1111
+ "type": "integer",
1112
+ "minimum": 1
1113
+ },
1114
+ "source": {
1115
+ "type": "string",
1116
+ "enum": ["manual", "auto", "upload"]
1117
+ },
1118
+ "captionGroupId": {
1119
+ "type": ["string", "null"]
1120
+ },
1121
+ "background": {
1122
+ "oneOf": [
1123
+ {
1124
+ "type": "null"
1125
+ },
1126
+ {
1127
+ "type": "object",
1128
+ "required": ["color", "horizontalPadding", "borderRadius"],
1129
+ "properties": {
1130
+ "color": {
1131
+ "type": "string"
1132
+ },
1133
+ "horizontalPadding": {
1134
+ "type": "number",
1135
+ "minimum": 0
1136
+ },
1137
+ "borderRadius": {
1138
+ "type": "number",
1139
+ "minimum": 0
1140
+ }
1141
+ },
1142
+ "additionalProperties": true
1143
+ }
1144
+ ]
1145
+ },
1146
+ "rotation": {
1147
+ "$ref": "#/definitions/animatedNumberTrack"
1148
+ },
1149
+ "animations": {
1150
+ "$ref": "#/definitions/clipAnimations"
1151
+ },
1152
+ "captionAnimations": {
1153
+ "$ref": "#/definitions/captionClipAnimations"
1154
+ }
1155
+ }
1156
+ }
1157
+ ]
1158
+ },
1159
+ "solidItem": {
1160
+ "allOf": [
1161
+ {
1162
+ "$ref": "#/definitions/baseItem"
1163
+ },
1164
+ {
1165
+ "type": "object",
1166
+ "required": ["type", "color", "shape", "keepAspectRatio", "borderRadius", "rotation"],
1167
+ "properties": {
1168
+ "type": {
1169
+ "const": "solid"
1170
+ },
1171
+ "color": {
1172
+ "type": "string"
1173
+ },
1174
+ "shape": {
1175
+ "type": "string",
1176
+ "enum": ["rectangle", "circle", "triangle", "star"]
1177
+ },
1178
+ "keepAspectRatio": {
1179
+ "type": "boolean"
1180
+ },
1181
+ "borderRadius": {
1182
+ "$ref": "#/definitions/animatedNumberTrack"
1183
+ },
1184
+ "rotation": {
1185
+ "$ref": "#/definitions/animatedNumberTrack"
1186
+ },
1187
+ "animations": {
1188
+ "$ref": "#/definitions/clipAnimations"
1189
+ }
1190
+ }
1191
+ }
1192
+ ]
1193
+ },
1194
+ "illustrationItem": {
1195
+ "allOf": [
1196
+ {
1197
+ "$ref": "#/definitions/baseItem"
1198
+ },
1199
+ {
1200
+ "type": "object",
1201
+ "required": [
1202
+ "type",
1203
+ "illustrationName",
1204
+ "color",
1205
+ "keepAspectRatio",
1206
+ "rotation"
1207
+ ],
1208
+ "properties": {
1209
+ "type": {
1210
+ "const": "illustration"
1211
+ },
1212
+ "illustrationName": {
1213
+ "type": "string",
1214
+ "minLength": 1
1215
+ },
1216
+ "color": {
1217
+ "type": "string"
1218
+ },
1219
+ "keepAspectRatio": {
1220
+ "type": "boolean"
1221
+ },
1222
+ "rotation": {
1223
+ "$ref": "#/definitions/animatedNumberTrack"
1224
+ },
1225
+ "animations": {
1226
+ "$ref": "#/definitions/clipAnimations"
1227
+ }
1228
+ }
1229
+ }
1230
+ ]
1231
+ },
1232
+ "effectItem": {
1233
+ "allOf": [
1234
+ {
1235
+ "$ref": "#/definitions/timelineItemBase"
1236
+ },
1237
+ {
1238
+ "type": "object",
1239
+ "required": ["type", "effectType", "intensity"],
1240
+ "properties": {
1241
+ "type": {
1242
+ "const": "effect"
1243
+ },
1244
+ "effectType": {
1245
+ "type": "string",
1246
+ "enum": ["flash-to-black", "blur", "blurred-opening", "fade-in", "fade-out"]
1247
+ },
1248
+ "intensity": {
1249
+ "type": "number",
1250
+ "minimum": 0
1251
+ },
1252
+ "params": {
1253
+ "type": "object",
1254
+ "additionalProperties": {
1255
+ "$ref": "#/definitions/primitive"
1256
+ }
1257
+ }
1258
+ }
1259
+ }
1260
+ ]
1261
+ },
1262
+ "filterItem": {
1263
+ "allOf": [
1264
+ {
1265
+ "$ref": "#/definitions/timelineItemBase"
1266
+ },
1267
+ {
1268
+ "type": "object",
1269
+ "required": ["type", "filterType", "intensity"],
1270
+ "properties": {
1271
+ "type": {
1272
+ "const": "filter"
1273
+ },
1274
+ "filterType": {
1275
+ "type": "string",
1276
+ "enum": [
1277
+ "verdant-glow",
1278
+ "cyberpunk-neon",
1279
+ "vaporwave-blue",
1280
+ "sunset-orange",
1281
+ "lemon-cyan",
1282
+ "absolute-red",
1283
+ "sakura-pink",
1284
+ "twilight-dusk"
1285
+ ]
1286
+ },
1287
+ "intensity": {
1288
+ "type": "number",
1289
+ "minimum": 0
1290
+ },
1291
+ "params": {
1292
+ "type": "object",
1293
+ "additionalProperties": {
1294
+ "$ref": "#/definitions/primitive"
1295
+ }
1296
+ }
1297
+ }
1298
+ }
1299
+ ]
1300
+ },
1301
+ "chartItem": {
1302
+ "allOf": [
1303
+ {
1304
+ "$ref": "#/definitions/baseItem"
1305
+ },
1306
+ {
1307
+ "type": "object",
1308
+ "required": [
1309
+ "type",
1310
+ "chartType",
1311
+ "themeColor",
1312
+ "data",
1313
+ "animationDurationTicks",
1314
+ "keepAspectRatio",
1315
+ "rotation"
1316
+ ],
1317
+ "properties": {
1318
+ "type": {
1319
+ "const": "chart"
1320
+ },
1321
+ "chartType": {
1322
+ "type": "string"
1323
+ },
1324
+ "themeColor": {
1325
+ "type": "string"
1326
+ },
1327
+ "data": {
1328
+ "type": "object",
1329
+ "additionalProperties": true
1330
+ },
1331
+ "animationDurationTicks": {
1332
+ "type": "integer",
1333
+ "minimum": 0
1334
+ },
1335
+ "keepAspectRatio": {
1336
+ "type": "boolean"
1337
+ },
1338
+ "rotation": {
1339
+ "$ref": "#/definitions/animatedNumberTrack"
1340
+ },
1341
+ "animations": {
1342
+ "$ref": "#/definitions/clipAnimations"
1343
+ }
1344
+ }
1345
+ }
1346
+ ]
1347
+ },
1348
+ "transition": {
1349
+ "type": "object",
1350
+ "required": ["id", "trackId", "fromClipId", "toClipId", "type", "durationTicks"],
1351
+ "properties": {
1352
+ "id": {
1353
+ "type": "string",
1354
+ "minLength": 1
1355
+ },
1356
+ "trackId": {
1357
+ "type": "string",
1358
+ "minLength": 1
1359
+ },
1360
+ "fromClipId": {
1361
+ "type": "string",
1362
+ "minLength": 1
1363
+ },
1364
+ "toClipId": {
1365
+ "type": "string",
1366
+ "minLength": 1
1367
+ },
1368
+ "type": {
1369
+ "type": "string",
1370
+ "enum": ["fade", "slide", "wipe", "flip", "clock-wipe", "iris"]
1371
+ },
1372
+ "durationTicks": {
1373
+ "type": "integer",
1374
+ "minimum": 1
1375
+ },
1376
+ "easing": {
1377
+ "type": "string",
1378
+ "enum": ["linear", "ease-in", "ease-out", "ease-in-out"]
1379
+ },
1380
+ "params": {
1381
+ "type": "object",
1382
+ "additionalProperties": {
1383
+ "$ref": "#/definitions/primitive"
1384
+ }
1385
+ }
1386
+ },
1387
+ "additionalProperties": true
1388
+ },
1389
+ "globalBackground": {
1390
+ "oneOf": [
1391
+ {
1392
+ "type": "object",
1393
+ "required": ["type"],
1394
+ "properties": {
1395
+ "type": {
1396
+ "const": "none"
1397
+ }
1398
+ },
1399
+ "additionalProperties": false
1400
+ },
1401
+ {
1402
+ "type": "object",
1403
+ "required": ["type", "color", "gradient"],
1404
+ "properties": {
1405
+ "type": {
1406
+ "const": "color"
1407
+ },
1408
+ "color": {
1409
+ "type": "string"
1410
+ },
1411
+ "gradient": {
1412
+ "type": ["string", "null"]
1413
+ }
1414
+ },
1415
+ "additionalProperties": true
1416
+ },
1417
+ {
1418
+ "type": "object",
1419
+ "required": ["type", "level"],
1420
+ "properties": {
1421
+ "type": {
1422
+ "const": "blur"
1423
+ },
1424
+ "level": {
1425
+ "type": "integer",
1426
+ "enum": [0, 1, 2, 3, 4]
1427
+ }
1428
+ },
1429
+ "additionalProperties": false
1430
+ },
1431
+ {
1432
+ "type": "object",
1433
+ "required": ["type", "imageAssetId", "imageUrl", "source"],
1434
+ "properties": {
1435
+ "type": {
1436
+ "const": "image"
1437
+ },
1438
+ "imageAssetId": {
1439
+ "type": ["string", "null"]
1440
+ },
1441
+ "imageUrl": {
1442
+ "type": "string",
1443
+ "minLength": 1
1444
+ },
1445
+ "source": {
1446
+ "type": "string",
1447
+ "enum": ["preset", "custom"]
1448
+ }
1449
+ },
1450
+ "additionalProperties": true
1451
+ }
1452
+ ]
1453
+ },
1454
+ "brandRuntime": {
1455
+ "type": ["object", "null"],
1456
+ "properties": {
1457
+ "brandId": {
1458
+ "type": ["string", "null"]
1459
+ },
1460
+ "logoX": {
1461
+ "type": "number"
1462
+ },
1463
+ "logoY": {
1464
+ "type": "number"
1465
+ },
1466
+ "managedItemIds": {
1467
+ "type": "array",
1468
+ "items": {
1469
+ "type": "string"
1470
+ }
1471
+ },
1472
+ "managedAssetIds": {
1473
+ "type": "array",
1474
+ "items": {
1475
+ "type": "string"
1476
+ }
1477
+ },
1478
+ "introShiftInFrames": {
1479
+ "type": "integer"
1480
+ },
1481
+ "overlayTrackId": {
1482
+ "type": ["string", "null"]
1483
+ },
1484
+ "underlayTrackId": {
1485
+ "type": ["string", "null"]
1486
+ }
1487
+ },
1488
+ "additionalProperties": true
1489
+ }
1490
+ }
1491
+ }