@oim-media/spec 0.0.0-stage → 1.27.8

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 (130) hide show
  1. package/BINARY_SPEC.md +186 -0
  2. package/CANONICAL_SPEC.md +409 -0
  3. package/LICENSE +55 -0
  4. package/NOTICE +6 -0
  5. package/README.md +444 -3
  6. package/action-cases.json +13 -0
  7. package/artistic-text-cases.json +690 -0
  8. package/keyframe-cases.json +32 -0
  9. package/keys.json +22 -0
  10. package/marks-cases.json +34 -0
  11. package/package.json +45 -3
  12. package/pattern-cases.json +552 -0
  13. package/schema/oim.schema.json +2920 -0
  14. package/schema/ovm.schema.json +2701 -0
  15. package/text-effect-cases.json +835 -0
  16. package/tools/parity-core.mjs +122 -0
  17. package/tools/parity.mjs +86 -0
  18. package/vectors/README.md +103 -0
  19. package/vectors/accessibility.expected.json +67 -0
  20. package/vectors/accessibility.oim.png +0 -0
  21. package/vectors/artistic-text.expected.json +84 -0
  22. package/vectors/artistic-text.oim.png +0 -0
  23. package/vectors/asymmetric-borders.expected.json +29 -0
  24. package/vectors/asymmetric-borders.oim.png +0 -0
  25. package/vectors/background-pattern-order.expected.json +95 -0
  26. package/vectors/background-pattern-order.oim.png +0 -0
  27. package/vectors/basic-text.expected.json +29 -0
  28. package/vectors/basic-text.oim.png +0 -0
  29. package/vectors/color-blending-opacity.expected.json +47 -0
  30. package/vectors/color-blending-opacity.oim.png +0 -0
  31. package/vectors/crop.expected.json +32 -0
  32. package/vectors/crop.oim.png +0 -0
  33. package/vectors/embedded-font-woff.expected.json +57 -0
  34. package/vectors/embedded-font-woff.oim.png +0 -0
  35. package/vectors/extreme-aspect-ratios.expected.json +29 -0
  36. package/vectors/extreme-aspect-ratios.oim.png +0 -0
  37. package/vectors/filter-effects.expected.json +33 -0
  38. package/vectors/filter-effects.oim.png +0 -0
  39. package/vectors/flip.expected.json +47 -0
  40. package/vectors/flip.oim.png +0 -0
  41. package/vectors/frame-shapes.expected.json +73 -0
  42. package/vectors/frame-shapes.oim.png +0 -0
  43. package/vectors/full-monty-composite.expected.json +96 -0
  44. package/vectors/full-monty-composite.oim.png +0 -0
  45. package/vectors/golden/accessibility.web.png +0 -0
  46. package/vectors/golden/artistic-text.web.png +0 -0
  47. package/vectors/golden/asymmetric-borders.web.png +0 -0
  48. package/vectors/golden/background-pattern-order.web.png +0 -0
  49. package/vectors/golden/basic-text.web.png +0 -0
  50. package/vectors/golden/color-blending-opacity.web.png +0 -0
  51. package/vectors/golden/crop.web.png +0 -0
  52. package/vectors/golden/embedded-font-woff.web.png +0 -0
  53. package/vectors/golden/exceptions.json +3 -0
  54. package/vectors/golden/extreme-aspect-ratios.web.png +0 -0
  55. package/vectors/golden/filter-effects.web.png +0 -0
  56. package/vectors/golden/flip.web.png +0 -0
  57. package/vectors/golden/frame-shapes.web.png +0 -0
  58. package/vectors/golden/full-monty-composite.web.png +0 -0
  59. package/vectors/golden/groups-and-parallax.web.png +0 -0
  60. package/vectors/golden/image-fill.web.png +0 -0
  61. package/vectors/golden/interactive-chained-actions.web.png +0 -0
  62. package/vectors/golden/interactive-hover.web.png +0 -0
  63. package/vectors/golden/interactive.web.png +0 -0
  64. package/vectors/golden/layer-blur.web.png +0 -0
  65. package/vectors/golden/layer-grain.web.png +0 -0
  66. package/vectors/golden/layer-ordering-zindex.web.png +0 -0
  67. package/vectors/golden/legacy-text-chunk.web.png +0 -0
  68. package/vectors/golden/media-filters.web.png +0 -0
  69. package/vectors/golden/multi-container-layout.web.png +0 -0
  70. package/vectors/golden/multilang-cjk-rtl.web.png +0 -0
  71. package/vectors/golden/nested-groups.web.png +0 -0
  72. package/vectors/golden/palettes.web.png +0 -0
  73. package/vectors/golden/parallax-infinite.web.png +0 -0
  74. package/vectors/golden/pattern-color-roles.web.png +0 -0
  75. package/vectors/golden/reedit-english.web.png +0 -0
  76. package/vectors/golden/reveal-and-play.web.png +0 -0
  77. package/vectors/golden/shadow-effects.web.png +0 -0
  78. package/vectors/golden/shape-shadows.web.png +0 -0
  79. package/vectors/golden/strokes-and-borders.web.png +0 -0
  80. package/vectors/golden/text-runs-precalculated.web.png +0 -0
  81. package/vectors/golden/transparent-background.web.png +0 -0
  82. package/vectors/golden/typography-styling.web.png +0 -0
  83. package/vectors/groups-and-parallax.expected.json +90 -0
  84. package/vectors/groups-and-parallax.oim.png +0 -0
  85. package/vectors/image-fill.expected.json +54 -0
  86. package/vectors/image-fill.oim.png +0 -0
  87. package/vectors/interactive-chained-actions.expected.json +77 -0
  88. package/vectors/interactive-chained-actions.oim.png +0 -0
  89. package/vectors/interactive-hover.expected.json +36 -0
  90. package/vectors/interactive-hover.oim.png +0 -0
  91. package/vectors/interactive.expected.json +121 -0
  92. package/vectors/interactive.oim.png +0 -0
  93. package/vectors/layer-blur.expected.json +48 -0
  94. package/vectors/layer-blur.oim.png +0 -0
  95. package/vectors/layer-grain.expected.json +52 -0
  96. package/vectors/layer-grain.oim.png +0 -0
  97. package/vectors/layer-ordering-zindex.expected.json +62 -0
  98. package/vectors/layer-ordering-zindex.oim.png +0 -0
  99. package/vectors/legacy-text-chunk.expected.json +29 -0
  100. package/vectors/legacy-text-chunk.oim.png +0 -0
  101. package/vectors/media-filters.expected.json +50 -0
  102. package/vectors/media-filters.oim.png +0 -0
  103. package/vectors/multi-container-layout.expected.json +45 -0
  104. package/vectors/multi-container-layout.oim.png +0 -0
  105. package/vectors/multilang-cjk-rtl.expected.json +30 -0
  106. package/vectors/multilang-cjk-rtl.oim.png +0 -0
  107. package/vectors/nested-groups.expected.json +68 -0
  108. package/vectors/nested-groups.oim.png +0 -0
  109. package/vectors/palettes.expected.json +57 -0
  110. package/vectors/palettes.oim.png +0 -0
  111. package/vectors/parallax-infinite.expected.json +39 -0
  112. package/vectors/parallax-infinite.oim.png +0 -0
  113. package/vectors/pattern-color-roles.expected.json +68 -0
  114. package/vectors/pattern-color-roles.oim.png +0 -0
  115. package/vectors/reedit-english.expected.json +45 -0
  116. package/vectors/reedit-english.oim.png +0 -0
  117. package/vectors/reveal-and-play.expected.json +107 -0
  118. package/vectors/reveal-and-play.oim.png +0 -0
  119. package/vectors/shadow-effects.expected.json +34 -0
  120. package/vectors/shadow-effects.oim.png +0 -0
  121. package/vectors/shape-shadows.expected.json +62 -0
  122. package/vectors/shape-shadows.oim.png +0 -0
  123. package/vectors/strokes-and-borders.expected.json +31 -0
  124. package/vectors/strokes-and-borders.oim.png +0 -0
  125. package/vectors/text-runs-precalculated.expected.json +46 -0
  126. package/vectors/text-runs-precalculated.oim.png +0 -0
  127. package/vectors/transparent-background.expected.json +30 -0
  128. package/vectors/transparent-background.oim.png +0 -0
  129. package/vectors/typography-styling.expected.json +34 -0
  130. package/vectors/typography-styling.oim.png +0 -0
@@ -0,0 +1,2920 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://oim.media/spec/1.27.8/oim.schema.json",
4
+ "title": "OIM document metadata",
5
+ "specVersion": "1.27.8",
6
+ "type": "object",
7
+ "properties": {
8
+ "description": {
9
+ "type": "object",
10
+ "propertyNames": {
11
+ "$ref": "#/$defs/__schema0"
12
+ },
13
+ "additionalProperties": {
14
+ "type": "string",
15
+ "maxLength": 1000
16
+ }
17
+ },
18
+ "oim": {
19
+ "type": "string"
20
+ },
21
+ "version": {
22
+ "type": "string"
23
+ },
24
+ "min_player": {
25
+ "type": "string",
26
+ "maxLength": 16
27
+ },
28
+ "image": {
29
+ "type": "string"
30
+ },
31
+ "oim_id": {
32
+ "type": "string",
33
+ "maxLength": 128
34
+ },
35
+ "media_type": {
36
+ "type": "string",
37
+ "enum": [
38
+ "image",
39
+ "video"
40
+ ]
41
+ },
42
+ "image_hash": {
43
+ "type": "string",
44
+ "maxLength": 64
45
+ },
46
+ "image_hash_alg": {
47
+ "type": "string",
48
+ "maxLength": 32
49
+ },
50
+ "immutable_lock": {
51
+ "type": "boolean"
52
+ },
53
+ "reedit": {
54
+ "type": "string",
55
+ "enum": [
56
+ "public",
57
+ "author_only",
58
+ "sealed"
59
+ ]
60
+ },
61
+ "reedicion": {
62
+ "type": "string",
63
+ "enum": [
64
+ "publico",
65
+ "solo_autor",
66
+ "sellado"
67
+ ],
68
+ "deprecated": true,
69
+ "description": "Renamed to `reedit` in 1.23.0. Read forever as a legacy alias; never written."
70
+ },
71
+ "name": {
72
+ "type": "string",
73
+ "maxLength": 256
74
+ },
75
+ "redirect_membership_verified": {
76
+ "type": "boolean",
77
+ "deprecated": true,
78
+ "description": "Retired in 1.1.0 with allow_external_urls. A new reader must not write it."
79
+ },
80
+ "terms_accepted": {
81
+ "type": "boolean",
82
+ "deprecated": true,
83
+ "description": "Retired in 1.1.0 with allow_external_urls. A new reader must not write it."
84
+ },
85
+ "allowed_domains": {
86
+ "type": "array",
87
+ "items": {
88
+ "$ref": "#/$defs/__schema1"
89
+ },
90
+ "deprecated": true,
91
+ "description": "Retired in 1.7.0: players do not enforce it. A new writer must not write it."
92
+ },
93
+ "canvas": {
94
+ "type": "object",
95
+ "properties": {
96
+ "natural_width": {
97
+ "type": "number",
98
+ "exclusiveMinimum": 0
99
+ },
100
+ "natural_height": {
101
+ "type": "number",
102
+ "exclusiveMinimum": 0
103
+ }
104
+ },
105
+ "required": [
106
+ "natural_width",
107
+ "natural_height"
108
+ ]
109
+ },
110
+ "lang": {
111
+ "type": "array",
112
+ "items": {
113
+ "$ref": "#/$defs/__schema0"
114
+ }
115
+ },
116
+ "languages": {
117
+ "type": "array",
118
+ "items": {
119
+ "$ref": "#/$defs/__schema0"
120
+ }
121
+ },
122
+ "palettes": {
123
+ "type": "object",
124
+ "propertyNames": {
125
+ "$ref": "#/$defs/__schema2"
126
+ },
127
+ "additionalProperties": {
128
+ "$ref": "#/$defs/__schema3"
129
+ },
130
+ "maxProperties": 6
131
+ },
132
+ "defaultPalette": {
133
+ "type": "string"
134
+ },
135
+ "zones": {
136
+ "type": "array",
137
+ "items": {
138
+ "$ref": "#/$defs/zone"
139
+ }
140
+ },
141
+ "slots": {
142
+ "maxItems": 150,
143
+ "type": "array",
144
+ "items": {
145
+ "$ref": "#/$defs/slot"
146
+ }
147
+ },
148
+ "elements": {
149
+ "maxItems": 150,
150
+ "type": "array",
151
+ "items": {
152
+ "$ref": "#/$defs/slot"
153
+ },
154
+ "deprecated": true,
155
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): slots is the one name; readers still accept it."
156
+ },
157
+ "layers": {
158
+ "maxItems": 150,
159
+ "type": "array",
160
+ "items": {
161
+ "$ref": "#/$defs/slot"
162
+ },
163
+ "deprecated": true,
164
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): slots is the one name; readers still accept it."
165
+ },
166
+ "capabilities": {
167
+ "type": "array",
168
+ "items": {
169
+ "type": "string",
170
+ "enum": [
171
+ "vector_parallax",
172
+ "infinite_parallax",
173
+ "text_marks",
174
+ "image_fill",
175
+ "media_filters",
176
+ "frame_shapes"
177
+ ]
178
+ }
179
+ },
180
+ "capabilities_required": {
181
+ "type": "array",
182
+ "items": {
183
+ "type": "string",
184
+ "enum": [
185
+ "vector_parallax",
186
+ "infinite_parallax",
187
+ "text_marks",
188
+ "image_fill",
189
+ "media_filters",
190
+ "frame_shapes"
191
+ ]
192
+ }
193
+ },
194
+ "fonts": {
195
+ "maxItems": 32,
196
+ "type": "array",
197
+ "items": {
198
+ "$ref": "#/$defs/embeddedFont"
199
+ }
200
+ },
201
+ "grain": {
202
+ "type": "object",
203
+ "properties": {
204
+ "enabled": {
205
+ "$ref": "#/$defs/__schema159"
206
+ },
207
+ "intensity": {
208
+ "$ref": "#/$defs/__schema160"
209
+ },
210
+ "baseFrequency": {
211
+ "$ref": "#/$defs/__schema161"
212
+ },
213
+ "blendMode": {
214
+ "$ref": "#/$defs/__schema162"
215
+ },
216
+ "color": {
217
+ "$ref": "#/$defs/__schema163"
218
+ }
219
+ },
220
+ "additionalProperties": {
221
+ "$ref": "#/$defs/__schema164"
222
+ },
223
+ "deprecated": true,
224
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): the background grain is baked into the base image."
225
+ },
226
+ "effects": {
227
+ "maxItems": 8,
228
+ "type": "array",
229
+ "items": {
230
+ "$ref": "#/$defs/__schema7"
231
+ },
232
+ "deprecated": true,
233
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): the background grain is baked into the base image."
234
+ },
235
+ "signature": {
236
+ "type": "string"
237
+ },
238
+ "key_version": {
239
+ "type": "string"
240
+ },
241
+ "signed_at": {
242
+ "type": "string",
243
+ "format": "date-time",
244
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
245
+ },
246
+ "timestamp": {
247
+ "type": "string",
248
+ "format": "date-time",
249
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
250
+ }
251
+ },
252
+ "required": [
253
+ "slots"
254
+ ],
255
+ "additionalProperties": {},
256
+ "$defs": {
257
+ "__schema0": {
258
+ "type": "string",
259
+ "maxLength": 10
260
+ },
261
+ "__schema1": {
262
+ "type": "string",
263
+ "maxLength": 253
264
+ },
265
+ "__schema2": {
266
+ "type": "string",
267
+ "pattern": "^[a-z][a-z0-9-]{0,23}$"
268
+ },
269
+ "__schema3": {
270
+ "type": "object",
271
+ "propertyNames": {
272
+ "type": "string",
273
+ "enum": [
274
+ "primary",
275
+ "on-primary",
276
+ "secondary",
277
+ "on-secondary",
278
+ "surface",
279
+ "on-surface",
280
+ "outline",
281
+ "accent",
282
+ "text-primary",
283
+ "text-secondary",
284
+ "text-muted",
285
+ "text-on-accent"
286
+ ]
287
+ },
288
+ "additionalProperties": {
289
+ "type": "string",
290
+ "maxLength": 128
291
+ }
292
+ },
293
+ "zone": {
294
+ "type": "object",
295
+ "properties": {
296
+ "id": {
297
+ "type": "string",
298
+ "minLength": 1,
299
+ "maxLength": 128
300
+ },
301
+ "position": {
302
+ "type": "array",
303
+ "prefixItems": [
304
+ {
305
+ "type": "number",
306
+ "minimum": 0,
307
+ "maximum": 100
308
+ },
309
+ {
310
+ "type": "number",
311
+ "minimum": 0,
312
+ "maximum": 100
313
+ }
314
+ ],
315
+ "items": false,
316
+ "minItems": 2,
317
+ "maxItems": 2
318
+ },
319
+ "size": {
320
+ "type": "array",
321
+ "prefixItems": [
322
+ {
323
+ "type": "number",
324
+ "minimum": 0,
325
+ "maximum": 100
326
+ },
327
+ {
328
+ "type": "number",
329
+ "minimum": 0,
330
+ "maximum": 100
331
+ }
332
+ ],
333
+ "items": false,
334
+ "minItems": 2,
335
+ "maxItems": 2
336
+ },
337
+ "style": {
338
+ "type": "object",
339
+ "propertyNames": {
340
+ "type": "string"
341
+ },
342
+ "additionalProperties": {}
343
+ }
344
+ },
345
+ "required": [
346
+ "id",
347
+ "position",
348
+ "size"
349
+ ]
350
+ },
351
+ "slot": {
352
+ "type": "object",
353
+ "properties": {
354
+ "id": {
355
+ "type": "string",
356
+ "minLength": 1,
357
+ "maxLength": 128
358
+ },
359
+ "type": {
360
+ "type": "string",
361
+ "enum": [
362
+ "text",
363
+ "image",
364
+ "lottie",
365
+ "zone",
366
+ "geo",
367
+ "shape",
368
+ "draw",
369
+ "filter",
370
+ "container",
371
+ "group",
372
+ "component",
373
+ "mask",
374
+ "svg",
375
+ "pattern",
376
+ "artistic-text"
377
+ ]
378
+ },
379
+ "languages": {
380
+ "default": [
381
+ "*"
382
+ ],
383
+ "type": "array",
384
+ "items": {
385
+ "$ref": "#/$defs/__schema0"
386
+ }
387
+ },
388
+ "pendingTranslation": {
389
+ "type": "array",
390
+ "items": {
391
+ "$ref": "#/$defs/__schema0"
392
+ }
393
+ },
394
+ "align": {
395
+ "type": "string",
396
+ "enum": [
397
+ "left",
398
+ "center",
399
+ "right"
400
+ ]
401
+ },
402
+ "content": {
403
+ "$ref": "#/$defs/content"
404
+ },
405
+ "style": {
406
+ "$ref": "#/$defs/style"
407
+ },
408
+ "position": {
409
+ "$ref": "#/$defs/position"
410
+ },
411
+ "parallax": {
412
+ "$ref": "#/$defs/parallax"
413
+ },
414
+ "tracking_data": {
415
+ "type": "array",
416
+ "items": {
417
+ "$ref": "#/$defs/trackingKeyframe"
418
+ }
419
+ },
420
+ "width_px": {
421
+ "type": "number"
422
+ },
423
+ "height_px": {
424
+ "type": "number"
425
+ },
426
+ "zone_id": {
427
+ "type": "string",
428
+ "maxLength": 128
429
+ },
430
+ "name": {
431
+ "type": "string",
432
+ "maxLength": 256
433
+ },
434
+ "interaction": {
435
+ "$ref": "#/$defs/interaction"
436
+ },
437
+ "p": {
438
+ "deprecated": true,
439
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): use position.",
440
+ "$ref": "#/$defs/position"
441
+ },
442
+ "s": {
443
+ "type": "array",
444
+ "prefixItems": [
445
+ {
446
+ "type": "number"
447
+ },
448
+ {
449
+ "type": "number"
450
+ }
451
+ ],
452
+ "items": false,
453
+ "minItems": 2,
454
+ "maxItems": 2,
455
+ "deprecated": true,
456
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): no writer emits it."
457
+ },
458
+ "st": {
459
+ "deprecated": true,
460
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): use style.",
461
+ "$ref": "#/$defs/style"
462
+ },
463
+ "c": {
464
+ "deprecated": true,
465
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): use content.",
466
+ "$ref": "#/$defs/content"
467
+ },
468
+ "t": {
469
+ "type": "array",
470
+ "items": {
471
+ "$ref": "#/$defs/trackingKeyframe"
472
+ },
473
+ "deprecated": true,
474
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): use tracking_data."
475
+ }
476
+ },
477
+ "required": [
478
+ "id"
479
+ ]
480
+ },
481
+ "content": {
482
+ "type": "object",
483
+ "propertyNames": {
484
+ "type": "string"
485
+ },
486
+ "additionalProperties": {
487
+ "$ref": "#/$defs/__schema5"
488
+ }
489
+ },
490
+ "__schema5": {
491
+ "type": "string",
492
+ "maxLength": 10000000
493
+ },
494
+ "style": {
495
+ "type": "object",
496
+ "properties": {
497
+ "effects": {
498
+ "$ref": "#/$defs/__schema6"
499
+ },
500
+ "lineHeight": {
501
+ "$ref": "#/$defs/__schema8"
502
+ },
503
+ "fontSize": {
504
+ "$ref": "#/$defs/__schema9"
505
+ },
506
+ "fontWeight": {
507
+ "type": [
508
+ "string",
509
+ "number"
510
+ ]
511
+ },
512
+ "fontStyle": {
513
+ "$ref": "#/$defs/__schema11"
514
+ },
515
+ "textDecoration": {
516
+ "$ref": "#/$defs/__schema12"
517
+ },
518
+ "textTransform": {
519
+ "$ref": "#/$defs/__schema13"
520
+ },
521
+ "fontSizes": {
522
+ "$ref": "#/$defs/__schema14"
523
+ },
524
+ "maxWidths": {
525
+ "$ref": "#/$defs/__schema15"
526
+ },
527
+ "textRuns": {
528
+ "$ref": "#/$defs/__schema16"
529
+ },
530
+ "outline": {
531
+ "$ref": "#/$defs/__schema18"
532
+ },
533
+ "objectFit": {
534
+ "$ref": "#/$defs/__schema19"
535
+ },
536
+ "imageCrop": {
537
+ "$ref": "#/$defs/__schema20"
538
+ },
539
+ "alt": {
540
+ "$ref": "#/$defs/__schema21"
541
+ },
542
+ "decorative": {
543
+ "type": "boolean"
544
+ },
545
+ "verticalAlign": {
546
+ "$ref": "#/$defs/__schema23"
547
+ },
548
+ "animation": {
549
+ "$ref": "#/$defs/__schema24"
550
+ },
551
+ "reveal": {
552
+ "$ref": "#/$defs/__schema26"
553
+ },
554
+ "shader_fx": {
555
+ "$ref": "#/$defs/__schema27"
556
+ },
557
+ "isInteractive": {
558
+ "type": "boolean"
559
+ },
560
+ "states": {
561
+ "$ref": "#/$defs/__schema32"
562
+ },
563
+ "grain": {
564
+ "$ref": "#/$defs/__schema35"
565
+ },
566
+ "grainIntensity": {
567
+ "$ref": "#/$defs/__schema36"
568
+ },
569
+ "grainSize": {
570
+ "$ref": "#/$defs/__schema37"
571
+ },
572
+ "grainBlend": {
573
+ "$ref": "#/$defs/__schema38"
574
+ },
575
+ "effect": {
576
+ "$ref": "#/$defs/__schema39"
577
+ },
578
+ "effectColor": {
579
+ "$ref": "#/$defs/__schema40"
580
+ },
581
+ "effectRadius": {
582
+ "$ref": "#/$defs/__schema41"
583
+ },
584
+ "textAlign": {
585
+ "$ref": "#/$defs/__schema42"
586
+ },
587
+ "fontFamily": {
588
+ "$ref": "#/$defs/__schema43"
589
+ },
590
+ "width": {
591
+ "$ref": "#/$defs/__schema44"
592
+ },
593
+ "height": {
594
+ "$ref": "#/$defs/__schema45"
595
+ },
596
+ "maxWidth": {
597
+ "$ref": "#/$defs/__schema46"
598
+ },
599
+ "borderRadius": {
600
+ "$ref": "#/$defs/__schema47"
601
+ },
602
+ "fillColor": {
603
+ "$ref": "#/$defs/__schema48"
604
+ },
605
+ "strokeStyle": {
606
+ "$ref": "#/$defs/__schema49"
607
+ },
608
+ "textStrokeColor": {
609
+ "$ref": "#/$defs/__schema50"
610
+ },
611
+ "shadowEnabled": {
612
+ "type": "boolean"
613
+ },
614
+ "shadowColor": {
615
+ "$ref": "#/$defs/__schema52"
616
+ },
617
+ "shadowColorRole": {
618
+ "$ref": "#/$defs/__schema53"
619
+ },
620
+ "shadowBlur": {
621
+ "$ref": "#/$defs/__schema54"
622
+ },
623
+ "shadowOffsetX": {
624
+ "$ref": "#/$defs/__schema55"
625
+ },
626
+ "shadowOffsetY": {
627
+ "$ref": "#/$defs/__schema56"
628
+ },
629
+ "shadowOpacity": {
630
+ "$ref": "#/$defs/__schema57"
631
+ },
632
+ "blendMode": {
633
+ "$ref": "#/$defs/__schema58"
634
+ },
635
+ "layerBlur": {
636
+ "$ref": "#/$defs/__schema59"
637
+ },
638
+ "maskCoverage": {
639
+ "$ref": "#/$defs/__schema60"
640
+ },
641
+ "maskInvert": {
642
+ "type": "boolean"
643
+ },
644
+ "strokeColor": {
645
+ "$ref": "#/$defs/__schema62"
646
+ },
647
+ "strokeWidth": {
648
+ "$ref": "#/$defs/__schema63"
649
+ },
650
+ "textStrokeWidth": {
651
+ "$ref": "#/$defs/__schema64"
652
+ },
653
+ "geoShape": {
654
+ "$ref": "#/$defs/__schema65"
655
+ },
656
+ "svgPath": {
657
+ "$ref": "#/$defs/__schema66"
658
+ },
659
+ "svgViewBox": {
660
+ "$ref": "#/$defs/__schema67"
661
+ },
662
+ "svgRawXml": {
663
+ "type": "string"
664
+ },
665
+ "artisticPreset": {
666
+ "$ref": "#/$defs/__schema69"
667
+ },
668
+ "curveAmount": {
669
+ "$ref": "#/$defs/__schema70"
670
+ },
671
+ "curveType": {
672
+ "$ref": "#/$defs/__schema71"
673
+ },
674
+ "extrusionDepth": {
675
+ "$ref": "#/$defs/__schema72"
676
+ },
677
+ "extrusionAngle": {
678
+ "$ref": "#/$defs/__schema73"
679
+ },
680
+ "extrusionColor": {
681
+ "$ref": "#/$defs/__schema74"
682
+ },
683
+ "extrusionShading": {
684
+ "type": "boolean"
685
+ },
686
+ "outerStrokeColor": {
687
+ "$ref": "#/$defs/__schema76"
688
+ },
689
+ "outerStrokeWidth": {
690
+ "$ref": "#/$defs/__schema77"
691
+ },
692
+ "innerStrokeColor": {
693
+ "$ref": "#/$defs/__schema78"
694
+ },
695
+ "innerStrokeWidth": {
696
+ "$ref": "#/$defs/__schema79"
697
+ },
698
+ "maskMode": {
699
+ "$ref": "#/$defs/__schema80"
700
+ },
701
+ "maskShape": {
702
+ "$ref": "#/$defs/__schema81"
703
+ },
704
+ "maskBgColor": {
705
+ "$ref": "#/$defs/__schema82"
706
+ },
707
+ "maskStrokeColor": {
708
+ "$ref": "#/$defs/__schema83"
709
+ },
710
+ "maskStrokeWidth": {
711
+ "$ref": "#/$defs/__schema84"
712
+ },
713
+ "filterPreset": {
714
+ "$ref": "#/$defs/__schema85"
715
+ },
716
+ "cssAnimation": {
717
+ "$ref": "#/$defs/__schema86"
718
+ },
719
+ "filterBlur": {
720
+ "$ref": "#/$defs/__schema87"
721
+ },
722
+ "filterBrightness": {
723
+ "$ref": "#/$defs/__schema88"
724
+ },
725
+ "filterContrast": {
726
+ "$ref": "#/$defs/__schema89"
727
+ },
728
+ "filterSaturate": {
729
+ "$ref": "#/$defs/__schema90"
730
+ },
731
+ "filterHueRotate": {
732
+ "$ref": "#/$defs/__schema91"
733
+ },
734
+ "textAnimationType": {
735
+ "$ref": "#/$defs/__schema92"
736
+ },
737
+ "textAnimationSpeed": {
738
+ "$ref": "#/$defs/__schema93"
739
+ },
740
+ "textAnimationDelay": {
741
+ "$ref": "#/$defs/__schema94"
742
+ },
743
+ "textAnimationIntensity": {
744
+ "$ref": "#/$defs/__schema95"
745
+ },
746
+ "typewriterCursor": {
747
+ "type": "boolean"
748
+ },
749
+ "textHighlight": {
750
+ "$ref": "#/$defs/__schema97"
751
+ },
752
+ "dropCap": {
753
+ "$ref": "#/$defs/__schema98"
754
+ },
755
+ "marks": {
756
+ "$ref": "#/$defs/__schema99"
757
+ },
758
+ "customBlobPath": {
759
+ "type": "string"
760
+ },
761
+ "maskFeather": {
762
+ "$ref": "#/$defs/__schema103"
763
+ },
764
+ "maskSvgPath": {
765
+ "type": "string"
766
+ },
767
+ "cuts": {
768
+ "$ref": "#/$defs/__schema105"
769
+ },
770
+ "trimStart": {
771
+ "$ref": "#/$defs/__schema106"
772
+ },
773
+ "trimEnd": {
774
+ "$ref": "#/$defs/__schema107"
775
+ },
776
+ "trimDuration": {
777
+ "$ref": "#/$defs/__schema108"
778
+ },
779
+ "groupId": {
780
+ "$ref": "#/$defs/__schema109"
781
+ },
782
+ "rotation": {
783
+ "type": "number"
784
+ },
785
+ "flipX": {
786
+ "type": "boolean"
787
+ },
788
+ "flipY": {
789
+ "type": "boolean"
790
+ },
791
+ "opacity": {
792
+ "$ref": "#/$defs/__schema113"
793
+ },
794
+ "isVisible": {
795
+ "type": "boolean"
796
+ },
797
+ "textGradientType": {
798
+ "$ref": "#/$defs/__schema115"
799
+ },
800
+ "fillColorRole": {
801
+ "$ref": "#/$defs/__schema116"
802
+ },
803
+ "strokeColorRole": {
804
+ "$ref": "#/$defs/__schema117"
805
+ },
806
+ "colorRole": {
807
+ "$ref": "#/$defs/__schema118"
808
+ },
809
+ "textStrokeColorRole": {
810
+ "$ref": "#/$defs/__schema119"
811
+ },
812
+ "effectColorRole": {
813
+ "$ref": "#/$defs/__schema120"
814
+ },
815
+ "maskBgColorRole": {
816
+ "$ref": "#/$defs/__schema121"
817
+ },
818
+ "maskStrokeColorRole": {
819
+ "$ref": "#/$defs/__schema122"
820
+ },
821
+ "fillGenerative": {
822
+ "$ref": "#/$defs/__schema123"
823
+ },
824
+ "fillGradient": {
825
+ "$ref": "#/$defs/__schema124"
826
+ },
827
+ "fillPatternType": {
828
+ "$ref": "#/$defs/__schema125"
829
+ },
830
+ "fillPatternColor": {
831
+ "$ref": "#/$defs/__schema126"
832
+ },
833
+ "fillPatternColorRole": {
834
+ "$ref": "#/$defs/__schema127"
835
+ },
836
+ "fillPatternBgColor": {
837
+ "$ref": "#/$defs/__schema128"
838
+ },
839
+ "fillPatternBgColorRole": {
840
+ "$ref": "#/$defs/__schema129"
841
+ },
842
+ "fillPatternSpeed": {
843
+ "type": "number"
844
+ },
845
+ "fillPatternScale": {
846
+ "type": "number"
847
+ },
848
+ "fillPatternDirection": {
849
+ "$ref": "#/$defs/__schema132"
850
+ },
851
+ "fillPatternSvgs": {
852
+ "$ref": "#/$defs/__schema133"
853
+ },
854
+ "fillPatternColors": {
855
+ "$ref": "#/$defs/__schema135"
856
+ },
857
+ "fillPatternSizes": {
858
+ "$ref": "#/$defs/__schema136"
859
+ },
860
+ "fillPatternCounts": {
861
+ "$ref": "#/$defs/__schema138"
862
+ },
863
+ "fillPatternDispersions": {
864
+ "$ref": "#/$defs/__schema140"
865
+ },
866
+ "backgroundType": {
867
+ "$ref": "#/$defs/__schema142"
868
+ },
869
+ "backgroundPatternColor": {
870
+ "$ref": "#/$defs/__schema143"
871
+ },
872
+ "backgroundPatternColorRole": {
873
+ "$ref": "#/$defs/__schema144"
874
+ },
875
+ "backgroundPatternBgColor": {
876
+ "$ref": "#/$defs/__schema145"
877
+ },
878
+ "backgroundPatternBgColorRole": {
879
+ "$ref": "#/$defs/__schema146"
880
+ },
881
+ "backgroundPatternColors": {
882
+ "$ref": "#/$defs/__schema147"
883
+ },
884
+ "fillType": {
885
+ "$ref": "#/$defs/__schema148"
886
+ },
887
+ "fillImage": {
888
+ "$ref": "#/$defs/__schema149"
889
+ },
890
+ "fillImageCrop": {
891
+ "$ref": "#/$defs/__schema150"
892
+ },
893
+ "fillImageFlipX": {
894
+ "type": "boolean"
895
+ },
896
+ "fillImageFlipY": {
897
+ "type": "boolean"
898
+ }
899
+ },
900
+ "additionalProperties": {
901
+ "$ref": "#/$defs/__schema153"
902
+ }
903
+ },
904
+ "__schema6": {
905
+ "maxItems": 8,
906
+ "type": "array",
907
+ "items": {
908
+ "$ref": "#/$defs/__schema7"
909
+ }
910
+ },
911
+ "__schema7": {
912
+ "oneOf": [
913
+ {
914
+ "type": "object",
915
+ "properties": {
916
+ "type": {
917
+ "type": "string",
918
+ "const": "texture"
919
+ },
920
+ "preset": {
921
+ "type": "string",
922
+ "enum": [
923
+ "film-grain-35mm",
924
+ "fine-noise",
925
+ "dust-scratches",
926
+ "vintage-paper",
927
+ "rough-canvas",
928
+ "halftone-dots",
929
+ "scanlines",
930
+ "concentric-rings"
931
+ ]
932
+ },
933
+ "intensity": {
934
+ "default": 30,
935
+ "type": "number",
936
+ "minimum": 0,
937
+ "maximum": 100
938
+ },
939
+ "blend": {
940
+ "default": "overlay",
941
+ "type": "string",
942
+ "enum": [
943
+ "normal",
944
+ "overlay",
945
+ "soft-light",
946
+ "multiply",
947
+ "screen",
948
+ "color-dodge",
949
+ "darken",
950
+ "lighten"
951
+ ]
952
+ },
953
+ "scale": {
954
+ "default": 1,
955
+ "type": "number",
956
+ "minimum": 0.2,
957
+ "maximum": 5
958
+ },
959
+ "color": {
960
+ "$ref": "#/$defs/cssColor"
961
+ },
962
+ "colorRole": {
963
+ "type": "string",
964
+ "enum": [
965
+ "primary",
966
+ "on-primary",
967
+ "secondary",
968
+ "on-secondary",
969
+ "surface",
970
+ "on-surface",
971
+ "outline",
972
+ "accent",
973
+ "text-primary",
974
+ "text-secondary",
975
+ "text-muted",
976
+ "text-on-accent"
977
+ ]
978
+ },
979
+ "enabled": {
980
+ "default": true,
981
+ "type": "boolean"
982
+ }
983
+ },
984
+ "required": [
985
+ "type",
986
+ "preset"
987
+ ]
988
+ },
989
+ {
990
+ "type": "object",
991
+ "properties": {
992
+ "type": {
993
+ "type": "string",
994
+ "const": "drop-shadow"
995
+ },
996
+ "x": {
997
+ "default": 0,
998
+ "type": "number"
999
+ },
1000
+ "y": {
1001
+ "default": 4,
1002
+ "type": "number"
1003
+ },
1004
+ "blur": {
1005
+ "default": 12,
1006
+ "type": "number",
1007
+ "minimum": 0,
1008
+ "maximum": 200
1009
+ },
1010
+ "spread": {
1011
+ "default": 0,
1012
+ "type": "number"
1013
+ },
1014
+ "color": {
1015
+ "default": "rgba(0, 0, 0, 0.35)",
1016
+ "$ref": "#/$defs/cssColor"
1017
+ },
1018
+ "colorRole": {
1019
+ "type": "string",
1020
+ "enum": [
1021
+ "primary",
1022
+ "on-primary",
1023
+ "secondary",
1024
+ "on-secondary",
1025
+ "surface",
1026
+ "on-surface",
1027
+ "outline",
1028
+ "accent",
1029
+ "text-primary",
1030
+ "text-secondary",
1031
+ "text-muted",
1032
+ "text-on-accent"
1033
+ ]
1034
+ },
1035
+ "enabled": {
1036
+ "default": true,
1037
+ "type": "boolean"
1038
+ }
1039
+ },
1040
+ "required": [
1041
+ "type"
1042
+ ]
1043
+ },
1044
+ {
1045
+ "type": "object",
1046
+ "properties": {
1047
+ "type": {
1048
+ "type": "string",
1049
+ "const": "blur"
1050
+ },
1051
+ "radius": {
1052
+ "default": 8,
1053
+ "type": "number",
1054
+ "minimum": 0,
1055
+ "maximum": 100
1056
+ },
1057
+ "enabled": {
1058
+ "default": true,
1059
+ "type": "boolean"
1060
+ }
1061
+ },
1062
+ "required": [
1063
+ "type"
1064
+ ]
1065
+ },
1066
+ {
1067
+ "type": "object",
1068
+ "properties": {
1069
+ "type": {
1070
+ "type": "string",
1071
+ "const": "glow"
1072
+ },
1073
+ "color": {
1074
+ "default": "#f59e0b",
1075
+ "$ref": "#/$defs/cssColor"
1076
+ },
1077
+ "colorRole": {
1078
+ "type": "string",
1079
+ "enum": [
1080
+ "primary",
1081
+ "on-primary",
1082
+ "secondary",
1083
+ "on-secondary",
1084
+ "surface",
1085
+ "on-surface",
1086
+ "outline",
1087
+ "accent",
1088
+ "text-primary",
1089
+ "text-secondary",
1090
+ "text-muted",
1091
+ "text-on-accent"
1092
+ ]
1093
+ },
1094
+ "radius": {
1095
+ "default": 16,
1096
+ "type": "number",
1097
+ "minimum": 0,
1098
+ "maximum": 100
1099
+ },
1100
+ "intensity": {
1101
+ "default": 50,
1102
+ "type": "number",
1103
+ "minimum": 0,
1104
+ "maximum": 100
1105
+ },
1106
+ "enabled": {
1107
+ "default": true,
1108
+ "type": "boolean"
1109
+ }
1110
+ },
1111
+ "required": [
1112
+ "type"
1113
+ ]
1114
+ },
1115
+ {
1116
+ "type": "object",
1117
+ "properties": {
1118
+ "type": {
1119
+ "type": "string",
1120
+ "const": "color-grade"
1121
+ },
1122
+ "preset": {
1123
+ "type": "string",
1124
+ "enum": [
1125
+ "warm-vintage",
1126
+ "cool-cinema",
1127
+ "cyberpunk",
1128
+ "monochrome-contrast"
1129
+ ]
1130
+ },
1131
+ "intensity": {
1132
+ "default": 50,
1133
+ "type": "number",
1134
+ "minimum": 0,
1135
+ "maximum": 100
1136
+ },
1137
+ "enabled": {
1138
+ "default": true,
1139
+ "type": "boolean"
1140
+ }
1141
+ },
1142
+ "required": [
1143
+ "type",
1144
+ "preset"
1145
+ ]
1146
+ }
1147
+ ]
1148
+ },
1149
+ "cssColor": {
1150
+ "type": "string",
1151
+ "maxLength": 128,
1152
+ "pattern": "^(?:(?:#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})|(?:rgb|rgba|hsl|hsla)\\(\\s*[0-9a-zA-Z.,%/\\s+-]*\\)|(?:transparent|currentColor|currentcolor|none|inherit))|var\\(\\s*--[A-Za-z0-9_-]+\\s*\\)|var\\(\\s*--[A-Za-z0-9_-]+\\s*,\\s*(?:(?:#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})|(?:rgb|rgba|hsl|hsla)\\(\\s*[0-9a-zA-Z.,%/\\s+-]*\\)|(?:transparent|currentColor|currentcolor|none|inherit))|var\\(\\s*--[A-Za-z0-9_-]+\\s*\\))\\s*\\)|var\\(\\s*--[A-Za-z0-9_-]+\\s*,\\s*(?:(?:#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})|(?:rgb|rgba|hsl|hsla)\\(\\s*[0-9a-zA-Z.,%/\\s+-]*\\)|(?:transparent|currentColor|currentcolor|none|inherit))|var\\(\\s*--[A-Za-z0-9_-]+\\s*\\)|var\\(\\s*--[A-Za-z0-9_-]+\\s*,\\s*(?:(?:#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})|(?:rgb|rgba|hsl|hsla)\\(\\s*[0-9a-zA-Z.,%/\\s+-]*\\)|(?:transparent|currentColor|currentcolor|none|inherit))|var\\(\\s*--[A-Za-z0-9_-]+\\s*\\))\\s*\\))\\s*\\))$"
1153
+ },
1154
+ "__schema8": {
1155
+ "anyOf": [
1156
+ {
1157
+ "type": "number"
1158
+ },
1159
+ {
1160
+ "type": "string",
1161
+ "maxLength": 16
1162
+ }
1163
+ ]
1164
+ },
1165
+ "__schema9": {
1166
+ "anyOf": [
1167
+ {
1168
+ "type": "string",
1169
+ "maxLength": 16
1170
+ },
1171
+ {
1172
+ "type": "number",
1173
+ "minimum": 0
1174
+ }
1175
+ ]
1176
+ },
1177
+ "__schema11": {
1178
+ "type": "string",
1179
+ "enum": [
1180
+ "normal",
1181
+ "italic",
1182
+ "oblique"
1183
+ ]
1184
+ },
1185
+ "__schema12": {
1186
+ "type": "string",
1187
+ "maxLength": 64
1188
+ },
1189
+ "__schema13": {
1190
+ "type": "string",
1191
+ "enum": [
1192
+ "none",
1193
+ "uppercase",
1194
+ "lowercase",
1195
+ "capitalize"
1196
+ ],
1197
+ "deprecated": true,
1198
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): no renderer applied it; the case is written into the text."
1199
+ },
1200
+ "__schema14": {
1201
+ "type": "object",
1202
+ "propertyNames": {
1203
+ "type": "string"
1204
+ },
1205
+ "additionalProperties": {
1206
+ "type": "string"
1207
+ }
1208
+ },
1209
+ "__schema15": {
1210
+ "type": "object",
1211
+ "propertyNames": {
1212
+ "type": "string"
1213
+ },
1214
+ "additionalProperties": {
1215
+ "type": "string"
1216
+ }
1217
+ },
1218
+ "__schema16": {
1219
+ "type": "object",
1220
+ "propertyNames": {
1221
+ "type": "string"
1222
+ },
1223
+ "additionalProperties": {
1224
+ "type": "object",
1225
+ "properties": {
1226
+ "fontSize": {
1227
+ "type": "number",
1228
+ "minimum": 0
1229
+ },
1230
+ "lineHeight": {
1231
+ "type": "number",
1232
+ "minimum": 0
1233
+ },
1234
+ "lines": {
1235
+ "maxItems": 500,
1236
+ "type": "array",
1237
+ "items": {
1238
+ "$ref": "#/$defs/__schema17"
1239
+ }
1240
+ }
1241
+ },
1242
+ "required": [
1243
+ "lines"
1244
+ ],
1245
+ "additionalProperties": {}
1246
+ }
1247
+ },
1248
+ "__schema17": {
1249
+ "type": "object",
1250
+ "properties": {
1251
+ "text": {
1252
+ "type": "string",
1253
+ "maxLength": 10000
1254
+ },
1255
+ "width": {
1256
+ "type": "number",
1257
+ "minimum": 0
1258
+ },
1259
+ "yOffset": {
1260
+ "type": "number"
1261
+ }
1262
+ },
1263
+ "required": [
1264
+ "text",
1265
+ "width",
1266
+ "yOffset"
1267
+ ],
1268
+ "additionalProperties": {}
1269
+ },
1270
+ "__schema18": {
1271
+ "type": "string",
1272
+ "maxLength": 128
1273
+ },
1274
+ "__schema19": {
1275
+ "type": "string",
1276
+ "enum": [
1277
+ "contain",
1278
+ "cover",
1279
+ "fill",
1280
+ "none",
1281
+ "scale-down"
1282
+ ]
1283
+ },
1284
+ "__schema20": {
1285
+ "type": "object",
1286
+ "properties": {
1287
+ "x": {
1288
+ "type": "number",
1289
+ "minimum": 0,
1290
+ "maximum": 100
1291
+ },
1292
+ "y": {
1293
+ "type": "number",
1294
+ "minimum": 0,
1295
+ "maximum": 100
1296
+ },
1297
+ "zoom": {
1298
+ "type": "number",
1299
+ "minimum": 1,
1300
+ "maximum": 10
1301
+ }
1302
+ },
1303
+ "required": [
1304
+ "x",
1305
+ "y",
1306
+ "zoom"
1307
+ ]
1308
+ },
1309
+ "__schema21": {
1310
+ "type": "object",
1311
+ "propertyNames": {
1312
+ "$ref": "#/$defs/__schema0"
1313
+ },
1314
+ "additionalProperties": {
1315
+ "type": "string",
1316
+ "maxLength": 300
1317
+ }
1318
+ },
1319
+ "__schema23": {
1320
+ "type": "string",
1321
+ "enum": [
1322
+ "top",
1323
+ "center",
1324
+ "bottom",
1325
+ "mixed",
1326
+ "justify"
1327
+ ],
1328
+ "deprecated": true,
1329
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): no writer and no reader."
1330
+ },
1331
+ "__schema24": {
1332
+ "type": "object",
1333
+ "properties": {
1334
+ "loop": {
1335
+ "type": "string",
1336
+ "enum": [
1337
+ "none",
1338
+ "pulse",
1339
+ "float",
1340
+ "bounce",
1341
+ "spin",
1342
+ "glow",
1343
+ "custom"
1344
+ ]
1345
+ },
1346
+ "hover": {
1347
+ "type": "string",
1348
+ "enum": [
1349
+ "none",
1350
+ "grow",
1351
+ "shrink",
1352
+ "lift",
1353
+ "glow",
1354
+ "custom"
1355
+ ]
1356
+ },
1357
+ "custom_loop_css": {
1358
+ "type": "string",
1359
+ "maxLength": 500,
1360
+ "deprecated": true,
1361
+ "description": "Retired in 1.9.0: players do not apply raw CSS. A new writer must not write it."
1362
+ },
1363
+ "custom_keyframes": {
1364
+ "type": "string",
1365
+ "maxLength": 2000,
1366
+ "deprecated": true,
1367
+ "description": "Retired in 1.9.0: players do not apply raw CSS. A new writer must not write it."
1368
+ },
1369
+ "custom_hover_css": {
1370
+ "type": "string",
1371
+ "maxLength": 500,
1372
+ "deprecated": true,
1373
+ "description": "Retired in 1.9.0: players do not apply raw CSS. A new writer must not write it."
1374
+ },
1375
+ "duration": {
1376
+ "type": "number",
1377
+ "minimum": 0.1,
1378
+ "maximum": 20
1379
+ },
1380
+ "delay": {
1381
+ "type": "number",
1382
+ "minimum": 0,
1383
+ "maximum": 10
1384
+ },
1385
+ "keyframes": {
1386
+ "maxItems": 240,
1387
+ "type": "array",
1388
+ "items": {
1389
+ "$ref": "#/$defs/keyframe"
1390
+ }
1391
+ },
1392
+ "trigger": {
1393
+ "type": "string",
1394
+ "enum": [
1395
+ "load",
1396
+ "action"
1397
+ ]
1398
+ }
1399
+ }
1400
+ },
1401
+ "keyframe": {
1402
+ "type": "object",
1403
+ "properties": {
1404
+ "t": {
1405
+ "type": "number",
1406
+ "minimum": 0,
1407
+ "maximum": 60
1408
+ },
1409
+ "o": {
1410
+ "type": "number",
1411
+ "minimum": 0,
1412
+ "maximum": 2
1413
+ },
1414
+ "s": {
1415
+ "type": "number",
1416
+ "minimum": 0,
1417
+ "maximum": 10
1418
+ },
1419
+ "r": {
1420
+ "type": "number",
1421
+ "minimum": -3600,
1422
+ "maximum": 3600
1423
+ },
1424
+ "x": {
1425
+ "type": "number"
1426
+ },
1427
+ "y": {
1428
+ "type": "number"
1429
+ },
1430
+ "b": {
1431
+ "type": "number",
1432
+ "minimum": 0,
1433
+ "maximum": 50
1434
+ },
1435
+ "e": {
1436
+ "$ref": "#/$defs/__schema25"
1437
+ }
1438
+ },
1439
+ "required": [
1440
+ "t"
1441
+ ]
1442
+ },
1443
+ "__schema25": {
1444
+ "anyOf": [
1445
+ {
1446
+ "type": "string",
1447
+ "enum": [
1448
+ "linear",
1449
+ "ease-in",
1450
+ "ease-out",
1451
+ "ease-in-out",
1452
+ "steps(1, end)"
1453
+ ]
1454
+ },
1455
+ {
1456
+ "type": "array",
1457
+ "prefixItems": [
1458
+ {
1459
+ "type": "number"
1460
+ },
1461
+ {
1462
+ "type": "number"
1463
+ },
1464
+ {
1465
+ "type": "number"
1466
+ },
1467
+ {
1468
+ "type": "number"
1469
+ }
1470
+ ],
1471
+ "items": false,
1472
+ "minItems": 4,
1473
+ "maxItems": 4
1474
+ }
1475
+ ]
1476
+ },
1477
+ "__schema26": {
1478
+ "type": "object",
1479
+ "properties": {
1480
+ "effect": {
1481
+ "type": "string",
1482
+ "enum": [
1483
+ "fade",
1484
+ "slide-up",
1485
+ "slide-down",
1486
+ "slide-left",
1487
+ "slide-right",
1488
+ "scale"
1489
+ ]
1490
+ },
1491
+ "duration": {
1492
+ "type": "number",
1493
+ "minimum": 0,
1494
+ "maximum": 2000
1495
+ },
1496
+ "easing": {
1497
+ "$ref": "#/$defs/__schema25"
1498
+ }
1499
+ },
1500
+ "required": [
1501
+ "effect",
1502
+ "duration"
1503
+ ]
1504
+ },
1505
+ "__schema27": {
1506
+ "type": "object",
1507
+ "properties": {
1508
+ "blur": {
1509
+ "$ref": "#/$defs/__schema28"
1510
+ },
1511
+ "grain": {
1512
+ "$ref": "#/$defs/__schema29"
1513
+ },
1514
+ "crt_curve": {
1515
+ "type": "boolean"
1516
+ }
1517
+ },
1518
+ "deprecated": true,
1519
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): no writer and no reader."
1520
+ },
1521
+ "__schema28": {
1522
+ "type": "number",
1523
+ "minimum": 0,
1524
+ "maximum": 10
1525
+ },
1526
+ "__schema29": {
1527
+ "type": "number",
1528
+ "minimum": 0,
1529
+ "maximum": 1
1530
+ },
1531
+ "__schema32": {
1532
+ "type": "object",
1533
+ "properties": {
1534
+ "hover": {
1535
+ "$ref": "#/$defs/__schema33"
1536
+ },
1537
+ "active": {
1538
+ "$ref": "#/$defs/__schema33"
1539
+ }
1540
+ },
1541
+ "additionalProperties": {}
1542
+ },
1543
+ "__schema33": {
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "scale": {
1547
+ "type": "number",
1548
+ "minimum": 0,
1549
+ "maximum": 1000
1550
+ },
1551
+ "rotation": {
1552
+ "type": "number",
1553
+ "minimum": -360,
1554
+ "maximum": 360
1555
+ },
1556
+ "opacity": {
1557
+ "type": "number",
1558
+ "minimum": 0,
1559
+ "maximum": 100
1560
+ },
1561
+ "transitionDuration": {
1562
+ "type": "number",
1563
+ "minimum": 0,
1564
+ "maximum": 10000
1565
+ },
1566
+ "actions": {
1567
+ "maxItems": 64,
1568
+ "type": "array",
1569
+ "items": {
1570
+ "$ref": "#/$defs/__schema34"
1571
+ }
1572
+ }
1573
+ },
1574
+ "additionalProperties": {}
1575
+ },
1576
+ "__schema34": {
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "target": {
1580
+ "type": "string",
1581
+ "minLength": 1,
1582
+ "maxLength": 128
1583
+ },
1584
+ "type": {
1585
+ "type": "string",
1586
+ "enum": [
1587
+ "show",
1588
+ "hide",
1589
+ "toggle",
1590
+ "setText",
1591
+ "play"
1592
+ ]
1593
+ },
1594
+ "value": {
1595
+ "type": "string",
1596
+ "maxLength": 10000
1597
+ }
1598
+ },
1599
+ "required": [
1600
+ "target",
1601
+ "type"
1602
+ ]
1603
+ },
1604
+ "__schema35": {
1605
+ "type": "boolean",
1606
+ "deprecated": true,
1607
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): a layer's grain is a texture in style.effects."
1608
+ },
1609
+ "__schema36": {
1610
+ "type": "number",
1611
+ "minimum": 1,
1612
+ "maximum": 100,
1613
+ "deprecated": true,
1614
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): see grain."
1615
+ },
1616
+ "__schema37": {
1617
+ "type": "number",
1618
+ "minimum": 1,
1619
+ "maximum": 100,
1620
+ "deprecated": true,
1621
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): see grain."
1622
+ },
1623
+ "__schema38": {
1624
+ "type": "string",
1625
+ "enum": [
1626
+ "overlay",
1627
+ "soft-light",
1628
+ "multiply"
1629
+ ],
1630
+ "deprecated": true,
1631
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): see grain."
1632
+ },
1633
+ "__schema39": {
1634
+ "type": "string",
1635
+ "enum": [
1636
+ "none",
1637
+ "neon",
1638
+ "shadow"
1639
+ ]
1640
+ },
1641
+ "__schema40": {
1642
+ "$ref": "#/$defs/cssColor"
1643
+ },
1644
+ "__schema41": {
1645
+ "type": "number",
1646
+ "minimum": 0,
1647
+ "maximum": 100
1648
+ },
1649
+ "__schema42": {
1650
+ "type": "string",
1651
+ "enum": [
1652
+ "left",
1653
+ "center",
1654
+ "right",
1655
+ "justify"
1656
+ ]
1657
+ },
1658
+ "__schema43": {
1659
+ "type": "string",
1660
+ "maxLength": 128
1661
+ },
1662
+ "__schema44": {
1663
+ "anyOf": [
1664
+ {
1665
+ "type": "string",
1666
+ "maxLength": 32
1667
+ },
1668
+ {
1669
+ "type": "number",
1670
+ "minimum": 0
1671
+ }
1672
+ ]
1673
+ },
1674
+ "__schema45": {
1675
+ "anyOf": [
1676
+ {
1677
+ "type": "string",
1678
+ "maxLength": 32
1679
+ },
1680
+ {
1681
+ "type": "number",
1682
+ "minimum": 0
1683
+ }
1684
+ ]
1685
+ },
1686
+ "__schema46": {
1687
+ "anyOf": [
1688
+ {
1689
+ "type": "string",
1690
+ "maxLength": 32
1691
+ },
1692
+ {
1693
+ "type": "number",
1694
+ "minimum": 0
1695
+ }
1696
+ ]
1697
+ },
1698
+ "__schema47": {
1699
+ "anyOf": [
1700
+ {
1701
+ "type": "string",
1702
+ "maxLength": 128
1703
+ },
1704
+ {
1705
+ "type": "number",
1706
+ "minimum": 0
1707
+ }
1708
+ ]
1709
+ },
1710
+ "__schema48": {
1711
+ "$ref": "#/$defs/cssColor"
1712
+ },
1713
+ "__schema49": {
1714
+ "type": "string",
1715
+ "enum": [
1716
+ "solid",
1717
+ "dashed",
1718
+ "dotted"
1719
+ ]
1720
+ },
1721
+ "__schema50": {
1722
+ "$ref": "#/$defs/cssColor"
1723
+ },
1724
+ "__schema52": {
1725
+ "$ref": "#/$defs/cssColor"
1726
+ },
1727
+ "__schema53": {
1728
+ "type": "string",
1729
+ "enum": [
1730
+ "primary",
1731
+ "on-primary",
1732
+ "secondary",
1733
+ "on-secondary",
1734
+ "surface",
1735
+ "on-surface",
1736
+ "outline",
1737
+ "accent",
1738
+ "text-primary",
1739
+ "text-secondary",
1740
+ "text-muted",
1741
+ "text-on-accent"
1742
+ ]
1743
+ },
1744
+ "__schema54": {
1745
+ "type": "number",
1746
+ "minimum": 0,
1747
+ "maximum": 200
1748
+ },
1749
+ "__schema55": {
1750
+ "type": "number",
1751
+ "minimum": -500,
1752
+ "maximum": 500
1753
+ },
1754
+ "__schema56": {
1755
+ "type": "number",
1756
+ "minimum": -500,
1757
+ "maximum": 500
1758
+ },
1759
+ "__schema57": {
1760
+ "type": "number",
1761
+ "minimum": 0,
1762
+ "maximum": 100
1763
+ },
1764
+ "__schema58": {
1765
+ "type": "string",
1766
+ "enum": [
1767
+ "normal",
1768
+ "multiply",
1769
+ "screen",
1770
+ "overlay",
1771
+ "darken",
1772
+ "lighten",
1773
+ "color-dodge",
1774
+ "color-burn",
1775
+ "difference"
1776
+ ],
1777
+ "deprecated": true,
1778
+ "description": "Retired in 1.12.0 (contract audit, 10 Oct 2026): layer blend did not show in the editor or the player; readers draw the layer as normal."
1779
+ },
1780
+ "__schema59": {
1781
+ "type": "number",
1782
+ "minimum": 0,
1783
+ "maximum": 100
1784
+ },
1785
+ "__schema60": {
1786
+ "type": "string",
1787
+ "maxLength": 32
1788
+ },
1789
+ "__schema62": {
1790
+ "$ref": "#/$defs/cssColor"
1791
+ },
1792
+ "__schema63": {
1793
+ "type": "number",
1794
+ "minimum": 0
1795
+ },
1796
+ "__schema64": {
1797
+ "type": "number",
1798
+ "minimum": 0,
1799
+ "maximum": 100
1800
+ },
1801
+ "__schema65": {
1802
+ "type": "string",
1803
+ "enum": [
1804
+ "rectangle",
1805
+ "circle",
1806
+ "triangle",
1807
+ "star",
1808
+ "line",
1809
+ "arrow",
1810
+ "diamond",
1811
+ "hexagon",
1812
+ "heart",
1813
+ "blob",
1814
+ "scribble",
1815
+ "custom",
1816
+ "pill",
1817
+ "octagon",
1818
+ "pentagon",
1819
+ "cross",
1820
+ "moon",
1821
+ "cloud",
1822
+ "drop",
1823
+ "bolt",
1824
+ "bubble",
1825
+ "flower",
1826
+ "burst",
1827
+ "arch"
1828
+ ]
1829
+ },
1830
+ "__schema66": {
1831
+ "type": "string",
1832
+ "maxLength": 20000,
1833
+ "pattern": "^[MmLlHhVvCcSsQqTtAaZz0-9eE.,\\s+-]*$"
1834
+ },
1835
+ "__schema67": {
1836
+ "type": "string",
1837
+ "maxLength": 64,
1838
+ "pattern": "^-?\\d+(\\.\\d+)?([\\s,]+-?\\d+(\\.\\d+)?){3}$"
1839
+ },
1840
+ "__schema69": {
1841
+ "type": "string",
1842
+ "enum": [
1843
+ "neon-cyberpunk",
1844
+ "retro-wave-3d",
1845
+ "comic-pop-extrusion",
1846
+ "vintage-emboss",
1847
+ "chrome-metallic",
1848
+ "arcade-80s",
1849
+ "custom"
1850
+ ]
1851
+ },
1852
+ "__schema70": {
1853
+ "type": "number",
1854
+ "minimum": -100,
1855
+ "maximum": 100
1856
+ },
1857
+ "__schema71": {
1858
+ "type": "string",
1859
+ "enum": [
1860
+ "arc",
1861
+ "wave",
1862
+ "arch"
1863
+ ]
1864
+ },
1865
+ "__schema72": {
1866
+ "type": "number",
1867
+ "minimum": 0,
1868
+ "maximum": 100
1869
+ },
1870
+ "__schema73": {
1871
+ "type": "number",
1872
+ "minimum": 0,
1873
+ "maximum": 360
1874
+ },
1875
+ "__schema74": {
1876
+ "$ref": "#/$defs/cssColor"
1877
+ },
1878
+ "__schema76": {
1879
+ "$ref": "#/$defs/cssColor"
1880
+ },
1881
+ "__schema77": {
1882
+ "type": "number",
1883
+ "minimum": 0
1884
+ },
1885
+ "__schema78": {
1886
+ "$ref": "#/$defs/cssColor"
1887
+ },
1888
+ "__schema79": {
1889
+ "type": "number",
1890
+ "minimum": 0
1891
+ },
1892
+ "__schema80": {
1893
+ "type": "string",
1894
+ "enum": [
1895
+ "window",
1896
+ "cutout"
1897
+ ]
1898
+ },
1899
+ "__schema81": {
1900
+ "type": "string",
1901
+ "enum": [
1902
+ "circle",
1903
+ "rectangle",
1904
+ "triangle",
1905
+ "star",
1906
+ "line",
1907
+ "arrow",
1908
+ "diamond",
1909
+ "hexagon",
1910
+ "heart",
1911
+ "blob",
1912
+ "custom"
1913
+ ]
1914
+ },
1915
+ "__schema82": {
1916
+ "$ref": "#/$defs/cssColor"
1917
+ },
1918
+ "__schema83": {
1919
+ "$ref": "#/$defs/cssColor"
1920
+ },
1921
+ "__schema84": {
1922
+ "type": "number",
1923
+ "minimum": 0
1924
+ },
1925
+ "__schema85": {
1926
+ "type": "string",
1927
+ "enum": [
1928
+ "none",
1929
+ "duotone",
1930
+ "grayscale",
1931
+ "sepia",
1932
+ "high-contrast",
1933
+ "vintage",
1934
+ "cool",
1935
+ "warm",
1936
+ "faded",
1937
+ "cinema",
1938
+ "nordic",
1939
+ "sunset",
1940
+ "noir",
1941
+ "dramatic",
1942
+ "cyberpunk",
1943
+ "pastel",
1944
+ "vhs"
1945
+ ]
1946
+ },
1947
+ "__schema86": {
1948
+ "type": "string",
1949
+ "maxLength": 128,
1950
+ "pattern": "^background-animation-(?:right|left|up|down|zoom-in|zoom-out|pulse|none) \\d+(?:\\.\\d+)?s linear infinite$"
1951
+ },
1952
+ "__schema87": {
1953
+ "type": "number",
1954
+ "minimum": 0,
1955
+ "maximum": 100
1956
+ },
1957
+ "__schema88": {
1958
+ "type": "number",
1959
+ "minimum": 0,
1960
+ "maximum": 500
1961
+ },
1962
+ "__schema89": {
1963
+ "type": "number",
1964
+ "minimum": 0,
1965
+ "maximum": 500
1966
+ },
1967
+ "__schema90": {
1968
+ "type": "number",
1969
+ "minimum": 0,
1970
+ "maximum": 500
1971
+ },
1972
+ "__schema91": {
1973
+ "type": "number",
1974
+ "minimum": 0,
1975
+ "maximum": 360
1976
+ },
1977
+ "__schema92": {
1978
+ "type": "string",
1979
+ "enum": [
1980
+ "none",
1981
+ "typewriter",
1982
+ "fade-chars",
1983
+ "slide-up",
1984
+ "blur-chars",
1985
+ "bounce-chars",
1986
+ "wave-chars",
1987
+ "glitch-cyberpunk",
1988
+ "glitch-slice",
1989
+ "reveal-mask",
1990
+ "scale-in",
1991
+ "rise-words"
1992
+ ]
1993
+ },
1994
+ "__schema93": {
1995
+ "type": "number",
1996
+ "minimum": 0,
1997
+ "maximum": 200
1998
+ },
1999
+ "__schema94": {
2000
+ "type": "number",
2001
+ "minimum": 0,
2002
+ "maximum": 100
2003
+ },
2004
+ "__schema95": {
2005
+ "type": "number",
2006
+ "minimum": 0,
2007
+ "maximum": 100
2008
+ },
2009
+ "__schema97": {
2010
+ "type": "object",
2011
+ "properties": {
2012
+ "enabled": {
2013
+ "default": true,
2014
+ "type": "boolean"
2015
+ },
2016
+ "color": {
2017
+ "default": "rgba(245, 158, 11, 0.35)",
2018
+ "$ref": "#/$defs/cssColor"
2019
+ },
2020
+ "style": {
2021
+ "default": "marker",
2022
+ "type": "string",
2023
+ "enum": [
2024
+ "marker",
2025
+ "box",
2026
+ "pill",
2027
+ "underline-thick"
2028
+ ]
2029
+ },
2030
+ "paddingX": {
2031
+ "type": "number",
2032
+ "minimum": 0,
2033
+ "maximum": 64
2034
+ },
2035
+ "paddingY": {
2036
+ "type": "number",
2037
+ "minimum": 0,
2038
+ "maximum": 64
2039
+ },
2040
+ "borderRadius": {
2041
+ "type": "number",
2042
+ "minimum": 0,
2043
+ "maximum": 64
2044
+ }
2045
+ }
2046
+ },
2047
+ "__schema98": {
2048
+ "type": "object",
2049
+ "properties": {
2050
+ "enabled": {
2051
+ "default": true,
2052
+ "type": "boolean"
2053
+ },
2054
+ "lines": {
2055
+ "default": 2,
2056
+ "anyOf": [
2057
+ {
2058
+ "type": "number",
2059
+ "const": 2
2060
+ },
2061
+ {
2062
+ "type": "number",
2063
+ "const": 3
2064
+ }
2065
+ ]
2066
+ },
2067
+ "fontFamily": {
2068
+ "type": "string",
2069
+ "maxLength": 128
2070
+ },
2071
+ "color": {
2072
+ "$ref": "#/$defs/cssColor"
2073
+ },
2074
+ "marginRight": {
2075
+ "type": "number",
2076
+ "minimum": 0,
2077
+ "maximum": 64
2078
+ }
2079
+ }
2080
+ },
2081
+ "__schema99": {
2082
+ "type": "object",
2083
+ "propertyNames": {
2084
+ "$ref": "#/$defs/__schema100"
2085
+ },
2086
+ "additionalProperties": {
2087
+ "$ref": "#/$defs/__schema101"
2088
+ }
2089
+ },
2090
+ "__schema100": {
2091
+ "type": "string",
2092
+ "pattern": "^[a-z][a-z0-9-]{0,23}$"
2093
+ },
2094
+ "__schema101": {
2095
+ "type": "object",
2096
+ "properties": {
2097
+ "color": {
2098
+ "$ref": "#/$defs/cssColor"
2099
+ },
2100
+ "colorRole": {
2101
+ "type": "string",
2102
+ "enum": [
2103
+ "primary",
2104
+ "on-primary",
2105
+ "secondary",
2106
+ "on-secondary",
2107
+ "surface",
2108
+ "on-surface",
2109
+ "outline",
2110
+ "accent",
2111
+ "text-primary",
2112
+ "text-secondary",
2113
+ "text-muted",
2114
+ "text-on-accent"
2115
+ ]
2116
+ },
2117
+ "bold": {
2118
+ "type": "boolean"
2119
+ },
2120
+ "italic": {
2121
+ "type": "boolean"
2122
+ },
2123
+ "underline": {
2124
+ "type": "boolean"
2125
+ },
2126
+ "highlight": {
2127
+ "type": "object",
2128
+ "properties": {
2129
+ "style": {
2130
+ "type": "string",
2131
+ "enum": [
2132
+ "marker",
2133
+ "box",
2134
+ "pill",
2135
+ "underline-thick"
2136
+ ]
2137
+ },
2138
+ "color": {
2139
+ "$ref": "#/$defs/cssColor"
2140
+ },
2141
+ "colorRole": {
2142
+ "type": "string",
2143
+ "enum": [
2144
+ "primary",
2145
+ "on-primary",
2146
+ "secondary",
2147
+ "on-secondary",
2148
+ "surface",
2149
+ "on-surface",
2150
+ "outline",
2151
+ "accent",
2152
+ "text-primary",
2153
+ "text-secondary",
2154
+ "text-muted",
2155
+ "text-on-accent"
2156
+ ]
2157
+ },
2158
+ "paddingX": {
2159
+ "type": "number",
2160
+ "minimum": 0,
2161
+ "maximum": 64
2162
+ },
2163
+ "paddingY": {
2164
+ "type": "number",
2165
+ "minimum": 0,
2166
+ "maximum": 64
2167
+ },
2168
+ "borderRadius": {
2169
+ "type": "number",
2170
+ "minimum": 0,
2171
+ "maximum": 64
2172
+ }
2173
+ }
2174
+ }
2175
+ }
2176
+ },
2177
+ "__schema103": {
2178
+ "type": "number",
2179
+ "minimum": 0,
2180
+ "maximum": 100
2181
+ },
2182
+ "__schema105": {
2183
+ "maxItems": 32,
2184
+ "type": "array",
2185
+ "items": {
2186
+ "$ref": "#/$defs/maskCut"
2187
+ }
2188
+ },
2189
+ "maskCut": {
2190
+ "type": "object",
2191
+ "properties": {
2192
+ "id": {
2193
+ "type": "string",
2194
+ "maxLength": 128
2195
+ },
2196
+ "x": {
2197
+ "type": "number"
2198
+ },
2199
+ "y": {
2200
+ "type": "number"
2201
+ },
2202
+ "width": {
2203
+ "type": "number",
2204
+ "minimum": 0
2205
+ },
2206
+ "height": {
2207
+ "type": "number",
2208
+ "minimum": 0
2209
+ },
2210
+ "shape": {
2211
+ "type": "string",
2212
+ "enum": [
2213
+ "heart",
2214
+ "star",
2215
+ "circle",
2216
+ "rectangle",
2217
+ "hexagon",
2218
+ "blob",
2219
+ "custom"
2220
+ ]
2221
+ },
2222
+ "svgPath": {
2223
+ "type": "string",
2224
+ "maxLength": 20000
2225
+ },
2226
+ "feather": {
2227
+ "type": "number",
2228
+ "minimum": 0,
2229
+ "maximum": 100
2230
+ },
2231
+ "strokeColor": {
2232
+ "$ref": "#/$defs/cssColor"
2233
+ },
2234
+ "strokeWidth": {
2235
+ "type": "number",
2236
+ "minimum": 0,
2237
+ "maximum": 100
2238
+ }
2239
+ },
2240
+ "required": [
2241
+ "id",
2242
+ "x",
2243
+ "y",
2244
+ "width",
2245
+ "height",
2246
+ "shape"
2247
+ ],
2248
+ "additionalProperties": {}
2249
+ },
2250
+ "__schema106": {
2251
+ "type": "number",
2252
+ "minimum": 0,
2253
+ "maximum": 100
2254
+ },
2255
+ "__schema107": {
2256
+ "type": "number",
2257
+ "minimum": 0,
2258
+ "maximum": 100
2259
+ },
2260
+ "__schema108": {
2261
+ "type": "number",
2262
+ "minimum": 0,
2263
+ "maximum": 100
2264
+ },
2265
+ "__schema109": {
2266
+ "type": "string",
2267
+ "maxLength": 128
2268
+ },
2269
+ "__schema113": {
2270
+ "type": "number",
2271
+ "minimum": 0,
2272
+ "maximum": 100
2273
+ },
2274
+ "__schema115": {
2275
+ "type": "string",
2276
+ "enum": [
2277
+ "none",
2278
+ "linear",
2279
+ "metallic-chrome",
2280
+ "sunset-gold",
2281
+ "neon-glow"
2282
+ ]
2283
+ },
2284
+ "__schema116": {
2285
+ "type": "string",
2286
+ "enum": [
2287
+ "primary",
2288
+ "on-primary",
2289
+ "secondary",
2290
+ "on-secondary",
2291
+ "surface",
2292
+ "on-surface",
2293
+ "outline",
2294
+ "accent",
2295
+ "text-primary",
2296
+ "text-secondary",
2297
+ "text-muted",
2298
+ "text-on-accent"
2299
+ ]
2300
+ },
2301
+ "__schema117": {
2302
+ "type": "string",
2303
+ "enum": [
2304
+ "primary",
2305
+ "on-primary",
2306
+ "secondary",
2307
+ "on-secondary",
2308
+ "surface",
2309
+ "on-surface",
2310
+ "outline",
2311
+ "accent",
2312
+ "text-primary",
2313
+ "text-secondary",
2314
+ "text-muted",
2315
+ "text-on-accent"
2316
+ ]
2317
+ },
2318
+ "__schema118": {
2319
+ "type": "string",
2320
+ "enum": [
2321
+ "primary",
2322
+ "on-primary",
2323
+ "secondary",
2324
+ "on-secondary",
2325
+ "surface",
2326
+ "on-surface",
2327
+ "outline",
2328
+ "accent",
2329
+ "text-primary",
2330
+ "text-secondary",
2331
+ "text-muted",
2332
+ "text-on-accent"
2333
+ ]
2334
+ },
2335
+ "__schema119": {
2336
+ "type": "string",
2337
+ "enum": [
2338
+ "primary",
2339
+ "on-primary",
2340
+ "secondary",
2341
+ "on-secondary",
2342
+ "surface",
2343
+ "on-surface",
2344
+ "outline",
2345
+ "accent",
2346
+ "text-primary",
2347
+ "text-secondary",
2348
+ "text-muted",
2349
+ "text-on-accent"
2350
+ ]
2351
+ },
2352
+ "__schema120": {
2353
+ "type": "string",
2354
+ "enum": [
2355
+ "primary",
2356
+ "on-primary",
2357
+ "secondary",
2358
+ "on-secondary",
2359
+ "surface",
2360
+ "on-surface",
2361
+ "outline",
2362
+ "accent",
2363
+ "text-primary",
2364
+ "text-secondary",
2365
+ "text-muted",
2366
+ "text-on-accent"
2367
+ ]
2368
+ },
2369
+ "__schema121": {
2370
+ "type": "string",
2371
+ "enum": [
2372
+ "primary",
2373
+ "on-primary",
2374
+ "secondary",
2375
+ "on-secondary",
2376
+ "surface",
2377
+ "on-surface",
2378
+ "outline",
2379
+ "accent",
2380
+ "text-primary",
2381
+ "text-secondary",
2382
+ "text-muted",
2383
+ "text-on-accent"
2384
+ ]
2385
+ },
2386
+ "__schema122": {
2387
+ "type": "string",
2388
+ "enum": [
2389
+ "primary",
2390
+ "on-primary",
2391
+ "secondary",
2392
+ "on-secondary",
2393
+ "surface",
2394
+ "on-surface",
2395
+ "outline",
2396
+ "accent",
2397
+ "text-primary",
2398
+ "text-secondary",
2399
+ "text-muted",
2400
+ "text-on-accent"
2401
+ ]
2402
+ },
2403
+ "__schema123": {
2404
+ "$ref": "#/$defs/generativeFill"
2405
+ },
2406
+ "generativeFill": {
2407
+ "type": "object",
2408
+ "properties": {
2409
+ "generatorId": {
2410
+ "type": "string",
2411
+ "maxLength": 64,
2412
+ "pattern": "^[a-z0-9-]+$"
2413
+ },
2414
+ "seed": {
2415
+ "type": "number"
2416
+ },
2417
+ "params": {
2418
+ "type": "object",
2419
+ "propertyNames": {
2420
+ "type": "string",
2421
+ "maxLength": 64
2422
+ },
2423
+ "additionalProperties": {
2424
+ "anyOf": [
2425
+ {
2426
+ "type": "number"
2427
+ },
2428
+ {
2429
+ "type": "string",
2430
+ "maxLength": 256
2431
+ },
2432
+ {
2433
+ "type": "boolean"
2434
+ }
2435
+ ]
2436
+ }
2437
+ },
2438
+ "colors": {
2439
+ "type": "object",
2440
+ "properties": {
2441
+ "mode": {
2442
+ "type": "string",
2443
+ "enum": [
2444
+ "monochrome",
2445
+ "palette"
2446
+ ]
2447
+ },
2448
+ "stops": {
2449
+ "maxItems": 16,
2450
+ "type": "array",
2451
+ "items": {
2452
+ "$ref": "#/$defs/cssColor"
2453
+ }
2454
+ },
2455
+ "direction": {
2456
+ "type": "string",
2457
+ "enum": [
2458
+ "forward",
2459
+ "reverse",
2460
+ "radial"
2461
+ ]
2462
+ },
2463
+ "background": {
2464
+ "$ref": "#/$defs/cssColor"
2465
+ },
2466
+ "backgroundVisible": {
2467
+ "type": "boolean"
2468
+ }
2469
+ },
2470
+ "required": [
2471
+ "mode",
2472
+ "stops",
2473
+ "direction",
2474
+ "background",
2475
+ "backgroundVisible"
2476
+ ],
2477
+ "additionalProperties": {}
2478
+ }
2479
+ },
2480
+ "required": [
2481
+ "generatorId",
2482
+ "seed",
2483
+ "params",
2484
+ "colors"
2485
+ ],
2486
+ "additionalProperties": {}
2487
+ },
2488
+ "__schema124": {
2489
+ "type": "string",
2490
+ "maxLength": 2048,
2491
+ "pattern": "^(?:repeating-)?(?:linear|radial|conic)-gradient\\((?:[0-9A-Za-z#.,%/\\s+-]|(?:rgba?|hsla?)\\([0-9A-Za-z.,%/\\s+-]*\\)|var\\(\\s*--[A-Za-z0-9_-]+\\s*(?:,(?:[0-9A-Za-z#.,%/\\s+-]|(?:rgba?|hsla?)\\([0-9A-Za-z.,%/\\s+-]*\\))*)?\\))*\\)$"
2492
+ },
2493
+ "__schema125": {
2494
+ "type": "string",
2495
+ "enum": [
2496
+ "clouds",
2497
+ "bubbles",
2498
+ "grid",
2499
+ "waves",
2500
+ "stars",
2501
+ "stripes",
2502
+ "dots",
2503
+ "zigzags",
2504
+ "bolt",
2505
+ "leaf",
2506
+ "drop",
2507
+ "moon",
2508
+ "crown",
2509
+ "heart"
2510
+ ]
2511
+ },
2512
+ "__schema126": {
2513
+ "$ref": "#/$defs/cssColor"
2514
+ },
2515
+ "__schema127": {
2516
+ "type": "string",
2517
+ "enum": [
2518
+ "primary",
2519
+ "on-primary",
2520
+ "secondary",
2521
+ "on-secondary",
2522
+ "surface",
2523
+ "on-surface",
2524
+ "outline",
2525
+ "accent",
2526
+ "text-primary",
2527
+ "text-secondary",
2528
+ "text-muted",
2529
+ "text-on-accent"
2530
+ ]
2531
+ },
2532
+ "__schema128": {
2533
+ "$ref": "#/$defs/cssColor"
2534
+ },
2535
+ "__schema129": {
2536
+ "type": "string",
2537
+ "enum": [
2538
+ "primary",
2539
+ "on-primary",
2540
+ "secondary",
2541
+ "on-secondary",
2542
+ "surface",
2543
+ "on-surface",
2544
+ "outline",
2545
+ "accent",
2546
+ "text-primary",
2547
+ "text-secondary",
2548
+ "text-muted",
2549
+ "text-on-accent"
2550
+ ]
2551
+ },
2552
+ "__schema132": {
2553
+ "type": "string",
2554
+ "enum": [
2555
+ "right",
2556
+ "left",
2557
+ "up",
2558
+ "down",
2559
+ "zoom-in",
2560
+ "zoom-out",
2561
+ "pulse",
2562
+ "none"
2563
+ ]
2564
+ },
2565
+ "__schema133": {
2566
+ "maxItems": 16,
2567
+ "type": "array",
2568
+ "items": {
2569
+ "$ref": "#/$defs/__schema134"
2570
+ }
2571
+ },
2572
+ "__schema134": {
2573
+ "type": "string",
2574
+ "maxLength": 8000
2575
+ },
2576
+ "__schema135": {
2577
+ "maxItems": 16,
2578
+ "type": "array",
2579
+ "items": {
2580
+ "$ref": "#/$defs/cssColor"
2581
+ }
2582
+ },
2583
+ "__schema136": {
2584
+ "maxItems": 16,
2585
+ "type": "array",
2586
+ "items": {
2587
+ "type": "number"
2588
+ }
2589
+ },
2590
+ "__schema138": {
2591
+ "maxItems": 16,
2592
+ "type": "array",
2593
+ "items": {
2594
+ "type": "number"
2595
+ }
2596
+ },
2597
+ "__schema140": {
2598
+ "maxItems": 16,
2599
+ "type": "array",
2600
+ "items": {
2601
+ "type": "number"
2602
+ }
2603
+ },
2604
+ "__schema142": {
2605
+ "type": "string",
2606
+ "enum": [
2607
+ "color",
2608
+ "gradient",
2609
+ "pattern",
2610
+ "generative",
2611
+ "transparent",
2612
+ "image"
2613
+ ]
2614
+ },
2615
+ "__schema143": {
2616
+ "$ref": "#/$defs/cssColor"
2617
+ },
2618
+ "__schema144": {
2619
+ "type": "string",
2620
+ "enum": [
2621
+ "primary",
2622
+ "on-primary",
2623
+ "secondary",
2624
+ "on-secondary",
2625
+ "surface",
2626
+ "on-surface",
2627
+ "outline",
2628
+ "accent",
2629
+ "text-primary",
2630
+ "text-secondary",
2631
+ "text-muted",
2632
+ "text-on-accent"
2633
+ ]
2634
+ },
2635
+ "__schema145": {
2636
+ "$ref": "#/$defs/cssColor"
2637
+ },
2638
+ "__schema146": {
2639
+ "type": "string",
2640
+ "enum": [
2641
+ "primary",
2642
+ "on-primary",
2643
+ "secondary",
2644
+ "on-secondary",
2645
+ "surface",
2646
+ "on-surface",
2647
+ "outline",
2648
+ "accent",
2649
+ "text-primary",
2650
+ "text-secondary",
2651
+ "text-muted",
2652
+ "text-on-accent"
2653
+ ]
2654
+ },
2655
+ "__schema147": {
2656
+ "maxItems": 16,
2657
+ "type": "array",
2658
+ "items": {
2659
+ "$ref": "#/$defs/cssColor"
2660
+ }
2661
+ },
2662
+ "__schema148": {
2663
+ "type": "string",
2664
+ "enum": [
2665
+ "none",
2666
+ "color",
2667
+ "gradient",
2668
+ "pattern",
2669
+ "generative",
2670
+ "image"
2671
+ ]
2672
+ },
2673
+ "__schema149": {
2674
+ "type": "string",
2675
+ "maxLength": 10000000,
2676
+ "pattern": "^data:image\\/"
2677
+ },
2678
+ "__schema150": {
2679
+ "type": "object",
2680
+ "properties": {
2681
+ "x": {
2682
+ "type": "number",
2683
+ "minimum": 0,
2684
+ "maximum": 100
2685
+ },
2686
+ "y": {
2687
+ "type": "number",
2688
+ "minimum": 0,
2689
+ "maximum": 100
2690
+ },
2691
+ "zoom": {
2692
+ "type": "number",
2693
+ "minimum": 1,
2694
+ "maximum": 10
2695
+ }
2696
+ },
2697
+ "required": [
2698
+ "x",
2699
+ "y",
2700
+ "zoom"
2701
+ ]
2702
+ },
2703
+ "__schema153": {},
2704
+ "position": {
2705
+ "type": "array",
2706
+ "prefixItems": [
2707
+ {
2708
+ "$ref": "#/$defs/__schema154"
2709
+ },
2710
+ {
2711
+ "$ref": "#/$defs/__schema155"
2712
+ }
2713
+ ],
2714
+ "items": false,
2715
+ "minItems": 2,
2716
+ "maxItems": 2
2717
+ },
2718
+ "__schema154": {
2719
+ "type": "number",
2720
+ "minimum": 0,
2721
+ "maximum": 100
2722
+ },
2723
+ "__schema155": {
2724
+ "type": "number",
2725
+ "minimum": 0,
2726
+ "maximum": 100
2727
+ },
2728
+ "parallax": {
2729
+ "type": "object",
2730
+ "properties": {
2731
+ "enabled": {
2732
+ "default": true,
2733
+ "type": "boolean"
2734
+ },
2735
+ "depth": {
2736
+ "default": 0.5,
2737
+ "type": "number",
2738
+ "minimum": -2,
2739
+ "maximum": 2
2740
+ },
2741
+ "mode": {
2742
+ "default": "mouse",
2743
+ "type": "string",
2744
+ "enum": [
2745
+ "mouse",
2746
+ "scroll",
2747
+ "infinite_horizontal"
2748
+ ]
2749
+ },
2750
+ "axis": {
2751
+ "default": "both",
2752
+ "type": "string",
2753
+ "enum": [
2754
+ "both",
2755
+ "x_only",
2756
+ "y_only"
2757
+ ]
2758
+ },
2759
+ "infinite": {
2760
+ "$ref": "#/$defs/parallaxInfinite"
2761
+ }
2762
+ },
2763
+ "additionalProperties": {}
2764
+ },
2765
+ "parallaxInfinite": {
2766
+ "type": "object",
2767
+ "properties": {
2768
+ "enabled": {
2769
+ "default": false,
2770
+ "type": "boolean"
2771
+ },
2772
+ "speed_px_sec": {
2773
+ "default": 20,
2774
+ "type": "number",
2775
+ "minimum": -500,
2776
+ "maximum": 500
2777
+ },
2778
+ "direction": {
2779
+ "default": "right_to_left",
2780
+ "type": "string",
2781
+ "enum": [
2782
+ "left_to_right",
2783
+ "right_to_left"
2784
+ ]
2785
+ },
2786
+ "seamless_tile": {
2787
+ "default": true,
2788
+ "type": "boolean"
2789
+ },
2790
+ "pause_on_hover": {
2791
+ "default": false,
2792
+ "type": "boolean"
2793
+ }
2794
+ },
2795
+ "additionalProperties": {}
2796
+ },
2797
+ "trackingKeyframe": {
2798
+ "minItems": 2,
2799
+ "type": "array",
2800
+ "items": {
2801
+ "type": "number"
2802
+ }
2803
+ },
2804
+ "interaction": {
2805
+ "type": "object",
2806
+ "properties": {
2807
+ "action_type": {
2808
+ "type": "string",
2809
+ "enum": [
2810
+ "toggle_elements",
2811
+ "none"
2812
+ ]
2813
+ },
2814
+ "target": {
2815
+ "type": "object",
2816
+ "properties": {
2817
+ "hide_slots": {
2818
+ "type": "array",
2819
+ "items": {
2820
+ "type": "string",
2821
+ "maxLength": 128
2822
+ }
2823
+ },
2824
+ "show_slots": {
2825
+ "type": "array",
2826
+ "items": {
2827
+ "type": "string",
2828
+ "maxLength": 128
2829
+ }
2830
+ }
2831
+ },
2832
+ "required": [
2833
+ "hide_slots",
2834
+ "show_slots"
2835
+ ]
2836
+ }
2837
+ },
2838
+ "required": [
2839
+ "action_type"
2840
+ ]
2841
+ },
2842
+ "embeddedFont": {
2843
+ "type": "object",
2844
+ "properties": {
2845
+ "family": {
2846
+ "type": "string",
2847
+ "minLength": 1,
2848
+ "maxLength": 128
2849
+ },
2850
+ "name": {
2851
+ "type": "string",
2852
+ "pattern": "^oim-[0-9a-f]{8}-[A-Za-z0-9 ]{1,64}$"
2853
+ },
2854
+ "weight": {
2855
+ "type": "integer",
2856
+ "minimum": 100,
2857
+ "maximum": 900
2858
+ },
2859
+ "style": {
2860
+ "type": "string",
2861
+ "enum": [
2862
+ "normal",
2863
+ "italic"
2864
+ ]
2865
+ },
2866
+ "format": {
2867
+ "type": "string",
2868
+ "enum": [
2869
+ "woff",
2870
+ "woff2"
2871
+ ]
2872
+ },
2873
+ "data": {
2874
+ "type": "string",
2875
+ "maxLength": 546136
2876
+ }
2877
+ },
2878
+ "required": [
2879
+ "family",
2880
+ "name",
2881
+ "weight",
2882
+ "style",
2883
+ "format",
2884
+ "data"
2885
+ ]
2886
+ },
2887
+ "__schema159": {
2888
+ "default": false,
2889
+ "type": "boolean"
2890
+ },
2891
+ "__schema160": {
2892
+ "default": 15,
2893
+ "type": "number",
2894
+ "minimum": 1,
2895
+ "maximum": 100
2896
+ },
2897
+ "__schema161": {
2898
+ "default": 0.8,
2899
+ "type": "number",
2900
+ "minimum": 0.1,
2901
+ "maximum": 2
2902
+ },
2903
+ "__schema162": {
2904
+ "default": "overlay",
2905
+ "type": "string",
2906
+ "enum": [
2907
+ "overlay",
2908
+ "screen",
2909
+ "multiply",
2910
+ "soft-light"
2911
+ ]
2912
+ },
2913
+ "__schema163": {
2914
+ "type": "string",
2915
+ "maxLength": 64,
2916
+ "pattern": "^#[0-9a-fA-F]{3,8}$|^rgba?\\([\\d.,\\s%]+\\)$"
2917
+ },
2918
+ "__schema164": {}
2919
+ }
2920
+ }