@shotstack/schemas 1.5.6 → 1.5.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.
@@ -912,6 +912,7 @@
912
912
  "deprecated": true
913
913
  }
914
914
  },
915
+ "additionalProperties": false,
915
916
  "required": [
916
917
  "timeline",
917
918
  "output"
@@ -949,6 +950,7 @@
949
950
  "type": "boolean"
950
951
  }
951
952
  },
953
+ "additionalProperties": false,
952
954
  "required": [
953
955
  "tracks"
954
956
  ],
@@ -978,6 +980,7 @@
978
980
  "type": "number"
979
981
  }
980
982
  },
983
+ "additionalProperties": false,
981
984
  "required": [
982
985
  "src"
983
986
  ],
@@ -992,6 +995,7 @@
992
995
  "example": "https://s3-ap-northeast-1.amazonaws.com/my-bucket/open-sans.ttf"
993
996
  }
994
997
  },
998
+ "additionalProperties": false,
995
999
  "required": [
996
1000
  "src"
997
1001
  ],
@@ -1009,6 +1013,7 @@
1009
1013
  }
1010
1014
  }
1011
1015
  },
1016
+ "additionalProperties": false,
1012
1017
  "required": [
1013
1018
  "clips"
1014
1019
  ],
@@ -1188,6 +1193,7 @@
1188
1193
  "example": "MY_VIDEO_CLIP"
1189
1194
  }
1190
1195
  },
1196
+ "additionalProperties": false,
1191
1197
  "required": [
1192
1198
  "asset",
1193
1199
  "start",
@@ -1208,6 +1214,7 @@
1208
1214
  "audio": "#/components/schemas/AudioAsset",
1209
1215
  "luma": "#/components/schemas/LumaAsset",
1210
1216
  "caption": "#/components/schemas/CaptionAsset",
1217
+ "rich-caption": "#/components/schemas/RichCaptionAsset",
1211
1218
  "html": "#/components/schemas/HtmlAsset",
1212
1219
  "title": "#/components/schemas/TitleAsset",
1213
1220
  "shape": "#/components/schemas/ShapeAsset",
@@ -1239,6 +1246,9 @@
1239
1246
  {
1240
1247
  "$ref": "#/components/schemas/CaptionAsset"
1241
1248
  },
1249
+ {
1250
+ "$ref": "#/components/schemas/RichCaptionAsset"
1251
+ },
1242
1252
  {
1243
1253
  "$ref": "#/components/schemas/HtmlAsset"
1244
1254
  },
@@ -1337,6 +1347,7 @@
1337
1347
  "$ref": "#/components/schemas/ChromaKey"
1338
1348
  }
1339
1349
  },
1350
+ "additionalProperties": false,
1340
1351
  "required": [
1341
1352
  "type",
1342
1353
  "src"
@@ -1365,6 +1376,7 @@
1365
1376
  "$ref": "#/components/schemas/Crop"
1366
1377
  }
1367
1378
  },
1379
+ "additionalProperties": false,
1368
1380
  "required": [
1369
1381
  "type",
1370
1382
  "src"
@@ -1426,6 +1438,7 @@
1426
1438
  "example": "#000000"
1427
1439
  }
1428
1440
  },
1441
+ "additionalProperties": false,
1429
1442
  "type": "object"
1430
1443
  },
1431
1444
  "animation": {
@@ -1447,6 +1460,7 @@
1447
1460
  "example": 2
1448
1461
  }
1449
1462
  },
1463
+ "additionalProperties": false,
1450
1464
  "required": [
1451
1465
  "preset"
1452
1466
  ],
@@ -1458,6 +1472,7 @@
1458
1472
  "example": "..."
1459
1473
  }
1460
1474
  },
1475
+ "additionalProperties": false,
1461
1476
  "required": [
1462
1477
  "type",
1463
1478
  "text"
@@ -1534,6 +1549,7 @@
1534
1549
  "example": 10
1535
1550
  }
1536
1551
  },
1552
+ "additionalProperties": false,
1537
1553
  "type": "object"
1538
1554
  },
1539
1555
  "padding": {
@@ -1577,6 +1593,7 @@
1577
1593
  "example": 10
1578
1594
  }
1579
1595
  },
1596
+ "additionalProperties": false,
1580
1597
  "type": "object"
1581
1598
  }
1582
1599
  ]
@@ -1590,6 +1607,7 @@
1590
1607
  "$ref": "#/components/schemas/RichTextAnimation"
1591
1608
  }
1592
1609
  },
1610
+ "additionalProperties": false,
1593
1611
  "required": [
1594
1612
  "type",
1595
1613
  "text"
@@ -1657,6 +1675,7 @@
1657
1675
  "type": "string"
1658
1676
  }
1659
1677
  },
1678
+ "additionalProperties": false,
1660
1679
  "required": [
1661
1680
  "type",
1662
1681
  "src"
@@ -1707,7 +1726,8 @@
1707
1726
  "type": "number",
1708
1727
  "example": 1
1709
1728
  }
1710
- }
1729
+ },
1730
+ "additionalProperties": false
1711
1731
  },
1712
1732
  "stroke": {
1713
1733
  "description": "Specifies the stroke style of the shape.",
@@ -1723,7 +1743,8 @@
1723
1743
  "type": "number",
1724
1744
  "example": 0.8
1725
1745
  }
1726
- }
1746
+ },
1747
+ "additionalProperties": false
1727
1748
  },
1728
1749
  "rectangle": {
1729
1750
  "description": "Configuration settings for the rectangle shape. Required when `shape` is set to `rectangle`.",
@@ -1745,6 +1766,7 @@
1745
1766
  "example": 20
1746
1767
  }
1747
1768
  },
1769
+ "additionalProperties": false,
1748
1770
  "required": [
1749
1771
  "width",
1750
1772
  "height"
@@ -1760,6 +1782,7 @@
1760
1782
  "example": 800
1761
1783
  }
1762
1784
  },
1785
+ "additionalProperties": false,
1763
1786
  "required": [
1764
1787
  "radius"
1765
1788
  ]
@@ -1779,12 +1802,14 @@
1779
1802
  "example": 4
1780
1803
  }
1781
1804
  },
1805
+ "additionalProperties": false,
1782
1806
  "required": [
1783
1807
  "length",
1784
1808
  "thickness"
1785
1809
  ]
1786
1810
  }
1787
1811
  },
1812
+ "additionalProperties": false,
1788
1813
  "required": [
1789
1814
  "type",
1790
1815
  "shape"
@@ -1814,6 +1839,7 @@
1814
1839
  "type": "number"
1815
1840
  }
1816
1841
  },
1842
+ "additionalProperties": false,
1817
1843
  "required": [
1818
1844
  "type",
1819
1845
  "src"
@@ -1864,11 +1890,251 @@
1864
1890
  "example": 1
1865
1891
  }
1866
1892
  },
1893
+ "additionalProperties": false,
1867
1894
  "required": [
1868
1895
  "type",
1869
1896
  "src"
1870
1897
  ]
1871
1898
  },
1899
+ "RichCaptionAsset": {
1900
+ "description": "The RichCaptionAsset provides word-level caption animations with rich-text styling. It supports\nkaraoke-style highlighting, word-by-word animations, and advanced typography. Use with SRT/VTT\nfiles or auto-transcription via aliases.\n",
1901
+ "type": "object",
1902
+ "properties": {
1903
+ "type": {
1904
+ "enum": [
1905
+ "rich-caption"
1906
+ ],
1907
+ "default": "rich-caption",
1908
+ "description": "The type of asset - set to `rich-caption` for rich captions.",
1909
+ "type": "string"
1910
+ },
1911
+ "src": {
1912
+ "description": "The URL to an SRT or VTT subtitles file, or an alias reference to auto-generate captions from an audio or video clip. For file URLs, the URL must be publicly accessible or include credentials. For auto-captioning, use the format `alias://clip-name` where clip-name is the alias of an audio, video, or text-to-speech clip. Mutually exclusive with `words`.",
1913
+ "type": "string",
1914
+ "minLength": 1,
1915
+ "example": "alias://audio"
1916
+ },
1917
+ "words": {
1918
+ "description": "Pre-provided word-level timing data. Use this instead of `src` when you have word timestamps from an external source. Mutually exclusive with `src`.",
1919
+ "type": "array",
1920
+ "items": {
1921
+ "$ref": "#/components/schemas/WordTiming"
1922
+ },
1923
+ "maxItems": 100000
1924
+ },
1925
+ "font": {
1926
+ "description": "Font styling properties for inactive words.",
1927
+ "$ref": "#/components/schemas/RichTextFont"
1928
+ },
1929
+ "style": {
1930
+ "description": "Text style properties including spacing, line height, and transformations.",
1931
+ "$ref": "#/components/schemas/RichTextStyle"
1932
+ },
1933
+ "stroke": {
1934
+ "description": "Text stroke (outline) properties for inactive words.",
1935
+ "$ref": "#/components/schemas/RichTextStroke"
1936
+ },
1937
+ "shadow": {
1938
+ "description": "Text shadow properties.",
1939
+ "$ref": "#/components/schemas/RichTextShadow"
1940
+ },
1941
+ "background": {
1942
+ "description": "Background styling properties for the caption bounding box.",
1943
+ "$ref": "#/components/schemas/RichTextBackground"
1944
+ },
1945
+ "padding": {
1946
+ "description": "Padding inside the caption bounding box. Can be a single number (applied to all sides) or an object with individual sides.",
1947
+ "oneOf": [
1948
+ {
1949
+ "type": "number",
1950
+ "minimum": 0,
1951
+ "description": "Padding in pixels applied to all sides.",
1952
+ "example": 10
1953
+ },
1954
+ {
1955
+ "$ref": "#/components/schemas/RichTextAsset/properties/padding/oneOf/1"
1956
+ }
1957
+ ]
1958
+ },
1959
+ "align": {
1960
+ "description": "Text alignment properties (horizontal and vertical).",
1961
+ "$ref": "#/components/schemas/RichTextAlignment"
1962
+ },
1963
+ "active": {
1964
+ "description": "Styling properties for the active/highlighted word. These override the base styling when a word is being spoken.",
1965
+ "$ref": "#/components/schemas/RichCaptionActive"
1966
+ },
1967
+ "wordAnimation": {
1968
+ "description": "Word-level animation properties controlling how words are highlighted or revealed.",
1969
+ "$ref": "#/components/schemas/RichCaptionWordAnimation"
1970
+ },
1971
+ "position": {
1972
+ "description": "Vertical position of the caption on screen.",
1973
+ "type": "string",
1974
+ "enum": [
1975
+ "top",
1976
+ "center",
1977
+ "bottom"
1978
+ ],
1979
+ "default": "bottom",
1980
+ "example": "bottom"
1981
+ },
1982
+ "maxWidth": {
1983
+ "description": "Maximum width of the caption as a ratio of the frame width. Must be between 0.1 and 1.",
1984
+ "type": "number",
1985
+ "minimum": 0.1,
1986
+ "maximum": 1,
1987
+ "default": 0.9,
1988
+ "example": 0.85
1989
+ },
1990
+ "maxLines": {
1991
+ "description": "Maximum number of lines to display at once. Must be between 1 and 10.",
1992
+ "type": "integer",
1993
+ "minimum": 1,
1994
+ "maximum": 10,
1995
+ "default": 2,
1996
+ "example": 2
1997
+ }
1998
+ },
1999
+ "additionalProperties": false,
2000
+ "required": [
2001
+ "type"
2002
+ ]
2003
+ },
2004
+ "WordTiming": {
2005
+ "description": "Word-level timing information for caption animation.",
2006
+ "type": "object",
2007
+ "properties": {
2008
+ "text": {
2009
+ "description": "The word text to display.",
2010
+ "type": "string",
2011
+ "minLength": 1,
2012
+ "example": "Hello"
2013
+ },
2014
+ "start": {
2015
+ "description": "Start time of the word in milliseconds.",
2016
+ "type": "number",
2017
+ "minimum": 0,
2018
+ "example": 0
2019
+ },
2020
+ "end": {
2021
+ "description": "End time of the word in milliseconds.",
2022
+ "type": "number",
2023
+ "minimum": 0,
2024
+ "example": 400
2025
+ },
2026
+ "confidence": {
2027
+ "description": "Speech-to-text confidence score between 0 and 1.",
2028
+ "type": "number",
2029
+ "minimum": 0,
2030
+ "maximum": 1,
2031
+ "example": 0.98
2032
+ }
2033
+ },
2034
+ "additionalProperties": false,
2035
+ "required": [
2036
+ "text",
2037
+ "start",
2038
+ "end"
2039
+ ]
2040
+ },
2041
+ "RichCaptionActiveFont": {
2042
+ "description": "Font properties for the active/highlighted word.",
2043
+ "type": "object",
2044
+ "properties": {
2045
+ "color": {
2046
+ "description": "The active word color using hexadecimal color notation.",
2047
+ "type": "string",
2048
+ "pattern": "^#[A-Fa-f0-9]{6}$",
2049
+ "default": "#ffff00",
2050
+ "example": "#ffff00"
2051
+ },
2052
+ "background": {
2053
+ "description": "The background color behind the active word using hexadecimal color notation.",
2054
+ "type": "string",
2055
+ "pattern": "^#[A-Fa-f0-9]{6}$",
2056
+ "example": "#000000"
2057
+ },
2058
+ "opacity": {
2059
+ "description": "The opacity of the active word where 1 is opaque and 0 is transparent.",
2060
+ "type": "number",
2061
+ "minimum": 0,
2062
+ "maximum": 1,
2063
+ "default": 1,
2064
+ "example": 1
2065
+ }
2066
+ },
2067
+ "additionalProperties": false
2068
+ },
2069
+ "RichCaptionActive": {
2070
+ "description": "Styling properties for the active/highlighted word.",
2071
+ "type": "object",
2072
+ "properties": {
2073
+ "font": {
2074
+ "description": "Font properties for the active word.",
2075
+ "$ref": "#/components/schemas/RichCaptionActiveFont"
2076
+ },
2077
+ "stroke": {
2078
+ "description": "Stroke properties for the active word.",
2079
+ "$ref": "#/components/schemas/RichTextStroke"
2080
+ },
2081
+ "scale": {
2082
+ "description": "Scale multiplier for the active word. 1.0 is normal size, 1.2 is 20% larger.",
2083
+ "type": "number",
2084
+ "minimum": 0.5,
2085
+ "maximum": 2,
2086
+ "default": 1,
2087
+ "example": 1.2
2088
+ }
2089
+ },
2090
+ "additionalProperties": false
2091
+ },
2092
+ "RichCaptionWordAnimation": {
2093
+ "description": "Word-level animation properties for caption effects.",
2094
+ "type": "object",
2095
+ "properties": {
2096
+ "style": {
2097
+ "description": "The animation style to apply to words: <ul>\n <li>`karaoke` - Word-by-word color fill as spoken (shows all words, highlights active)</li>\n <li>`highlight` - Word changes to active color when spoken (shows all words)</li>\n <li>`pop` - Each word scales up when active</li>\n <li>`fade` - Gradual opacity transition per word</li>\n <li>`slide` - Words slide in from a direction</li>\n <li>`bounce` - Spring animation on word appearance</li>\n <li>`typewriter` - Words appear one by one and stay visible</li>\n <li>`none` - No animation, all words visible immediately</li>\n</ul>",
2098
+ "type": "string",
2099
+ "enum": [
2100
+ "karaoke",
2101
+ "highlight",
2102
+ "pop",
2103
+ "fade",
2104
+ "slide",
2105
+ "bounce",
2106
+ "typewriter",
2107
+ "none"
2108
+ ],
2109
+ "default": "karaoke",
2110
+ "example": "karaoke"
2111
+ },
2112
+ "speed": {
2113
+ "description": "Animation speed multiplier. 1.0 is normal speed, 0.5 is half speed, 2.0 is double speed.",
2114
+ "type": "number",
2115
+ "minimum": 0.5,
2116
+ "maximum": 2,
2117
+ "default": 1,
2118
+ "example": 1
2119
+ },
2120
+ "direction": {
2121
+ "description": "Direction for directional animations (slide). Only applicable when style is `slide`.",
2122
+ "type": "string",
2123
+ "enum": [
2124
+ "left",
2125
+ "right",
2126
+ "up",
2127
+ "down"
2128
+ ],
2129
+ "default": "up",
2130
+ "example": "up"
2131
+ }
2132
+ },
2133
+ "additionalProperties": false,
2134
+ "required": [
2135
+ "style"
2136
+ ]
2137
+ },
1872
2138
  "TextToImageAsset": {
1873
2139
  "description": "The TextToImageAsset lets you create a dynamic image from a text prompt.",
1874
2140
  "properties": {
@@ -1899,6 +2165,8 @@
1899
2165
  "$ref": "#/components/schemas/Crop"
1900
2166
  }
1901
2167
  },
2168
+ "additionalProperties": false,
2169
+ "type": "object",
1902
2170
  "required": [
1903
2171
  "type",
1904
2172
  "prompt"
@@ -1952,6 +2220,7 @@
1952
2220
  "$ref": "#/components/schemas/Crop"
1953
2221
  }
1954
2222
  },
2223
+ "additionalProperties": false,
1955
2224
  "type": "object",
1956
2225
  "required": [
1957
2226
  "type",
@@ -2033,6 +2302,7 @@
2033
2302
  "type": "string"
2034
2303
  }
2035
2304
  },
2305
+ "additionalProperties": false,
2036
2306
  "required": [
2037
2307
  "type",
2038
2308
  "text",
@@ -2092,6 +2362,7 @@
2092
2362
  "type": "string"
2093
2363
  }
2094
2364
  },
2365
+ "additionalProperties": false,
2095
2366
  "required": [
2096
2367
  "type",
2097
2368
  "html"
@@ -2173,6 +2444,7 @@
2173
2444
  "$ref": "#/components/schemas/Offset"
2174
2445
  }
2175
2446
  },
2447
+ "additionalProperties": false,
2176
2448
  "required": [
2177
2449
  "type",
2178
2450
  "text"
@@ -2241,6 +2513,7 @@
2241
2513
  "example": 300
2242
2514
  }
2243
2515
  },
2516
+ "additionalProperties": false,
2244
2517
  "required": [
2245
2518
  "type"
2246
2519
  ],
@@ -2340,6 +2613,7 @@
2340
2613
  "SvgRectangleShape": {
2341
2614
  "description": "A rectangle shape with optional rounded corners.\nThe rectangle is defined by its width and height dimensions.\n",
2342
2615
  "type": "object",
2616
+ "additionalProperties": false,
2343
2617
  "properties": {
2344
2618
  "type": {
2345
2619
  "description": "The shape type - set to `rectangle`.",
@@ -2380,6 +2654,7 @@
2380
2654
  "SvgCircleShape": {
2381
2655
  "description": "A perfect circle shape defined by its radius.\nThe circle is centered at the shape's position.\n",
2382
2656
  "type": "object",
2657
+ "additionalProperties": false,
2383
2658
  "properties": {
2384
2659
  "type": {
2385
2660
  "description": "The shape type - set to `circle`.",
@@ -2404,6 +2679,7 @@
2404
2679
  "SvgEllipseShape": {
2405
2680
  "description": "An ellipse (oval) shape with separate horizontal and vertical radii.\nThe ellipse is centered at the shape's position.\n",
2406
2681
  "type": "object",
2682
+ "additionalProperties": false,
2407
2683
  "properties": {
2408
2684
  "type": {
2409
2685
  "description": "The shape type - set to `ellipse`.",
@@ -2436,6 +2712,7 @@
2436
2712
  "SvgLineShape": {
2437
2713
  "description": "A straight line shape with a specified length and thickness.\nThe line is drawn horizontally by default and can be rotated using transform.\n",
2438
2714
  "type": "object",
2715
+ "additionalProperties": false,
2439
2716
  "properties": {
2440
2717
  "type": {
2441
2718
  "description": "The shape type - set to `line`.",
@@ -2468,6 +2745,7 @@
2468
2745
  "SvgPolygonShape": {
2469
2746
  "description": "A regular polygon shape with a specified number of sides.\nExamples: triangle (3), square (4), pentagon (5), hexagon (6), etc.\nThe polygon is inscribed in a circle of the given radius.\n",
2470
2747
  "type": "object",
2748
+ "additionalProperties": false,
2471
2749
  "properties": {
2472
2750
  "type": {
2473
2751
  "description": "The shape type - set to `polygon`.",
@@ -2500,6 +2778,7 @@
2500
2778
  "SvgStarShape": {
2501
2779
  "description": "A star shape with a specified number of points.\nThe star is defined by outer and inner radii, creating the characteristic\npointed appearance.\n",
2502
2780
  "type": "object",
2781
+ "additionalProperties": false,
2503
2782
  "properties": {
2504
2783
  "type": {
2505
2784
  "description": "The shape type - set to `star`.",
@@ -2540,6 +2819,7 @@
2540
2819
  "SvgArrowShape": {
2541
2820
  "description": "An arrow shape pointing to the right by default.\nUse transform rotation to change direction.\n",
2542
2821
  "type": "object",
2822
+ "additionalProperties": false,
2543
2823
  "properties": {
2544
2824
  "type": {
2545
2825
  "description": "The shape type - set to `arrow`.",
@@ -2588,6 +2868,7 @@
2588
2868
  "SvgHeartShape": {
2589
2869
  "description": "A heart shape commonly used for love/like icons.\nThe heart is defined by a single size parameter.\n",
2590
2870
  "type": "object",
2871
+ "additionalProperties": false,
2591
2872
  "properties": {
2592
2873
  "type": {
2593
2874
  "description": "The shape type - set to `heart`.",
@@ -2612,6 +2893,7 @@
2612
2893
  "SvgCrossShape": {
2613
2894
  "description": "A cross or plus shape with equal or different arm lengths.\nCan be styled as a plus sign (+) or a cross (x with rotation).\n",
2614
2895
  "type": "object",
2896
+ "additionalProperties": false,
2615
2897
  "properties": {
2616
2898
  "type": {
2617
2899
  "description": "The shape type - set to `cross`.",
@@ -2652,6 +2934,7 @@
2652
2934
  "SvgRingShape": {
2653
2935
  "description": "A ring (donut/annulus) shape - a circle with a circular hole in the center.\nThe ring is defined by outer and inner radii.\n",
2654
2936
  "type": "object",
2937
+ "additionalProperties": false,
2655
2938
  "properties": {
2656
2939
  "type": {
2657
2940
  "description": "The shape type - set to `ring`.",
@@ -2684,6 +2967,7 @@
2684
2967
  "SvgPathShape": {
2685
2968
  "description": "A custom shape defined by SVG path data.\nSupports all standard SVG path commands for creating complex shapes.\n\n**Path Commands:**\n- `M x y` / `m dx dy` - Move to (absolute/relative)\n- `L x y` / `l dx dy` - Line to\n- `H x` / `h dx` - Horizontal line to\n- `V y` / `v dy` - Vertical line to\n- `C x1 y1 x2 y2 x y` / `c` - Cubic Bezier curve\n- `S x2 y2 x y` / `s` - Smooth cubic Bezier\n- `Q x1 y1 x y` / `q` - Quadratic Bezier curve\n- `T x y` / `t` - Smooth quadratic Bezier\n- `A rx ry angle large-arc sweep x y` / `a` - Elliptical arc\n- `Z` / `z` - Close path\n",
2686
2969
  "type": "object",
2970
+ "additionalProperties": false,
2687
2971
  "properties": {
2688
2972
  "type": {
2689
2973
  "description": "The shape type - set to `path`.",
@@ -2730,6 +3014,7 @@
2730
3014
  "SvgSolidFill": {
2731
3015
  "description": "A solid color fill for SVG shapes.",
2732
3016
  "type": "object",
3017
+ "additionalProperties": false,
2733
3018
  "properties": {
2734
3019
  "type": {
2735
3020
  "description": "The fill type - set to `solid` for a single color fill.",
@@ -2763,6 +3048,7 @@
2763
3048
  "SvgLinearGradientFill": {
2764
3049
  "description": "A linear gradient fill that transitions colors along a straight line.\nThe gradient direction is controlled by the `angle` property.\n",
2765
3050
  "type": "object",
3051
+ "additionalProperties": false,
2766
3052
  "properties": {
2767
3053
  "type": {
2768
3054
  "description": "The fill type - set to `linear` for a linear gradient fill.",
@@ -2804,6 +3090,7 @@
2804
3090
  "SvgRadialGradientFill": {
2805
3091
  "description": "A radial gradient fill that transitions colors radiating outward from a center point.\nThe gradient creates a circular or elliptical color transition.\n",
2806
3092
  "type": "object",
3093
+ "additionalProperties": false,
2807
3094
  "properties": {
2808
3095
  "type": {
2809
3096
  "description": "The fill type - set to `radial` for a radial gradient fill.",
@@ -2837,6 +3124,7 @@
2837
3124
  "SvgGradientStop": {
2838
3125
  "description": "A color stop in a gradient. Each stop defines a color at a specific position\nalong the gradient vector. Gradients require at least 2 stops.\n",
2839
3126
  "type": "object",
3127
+ "additionalProperties": false,
2840
3128
  "properties": {
2841
3129
  "offset": {
2842
3130
  "description": "Position of the color stop along the gradient vector.\n`0` represents the start and `1` represents the end of the gradient.\n",
@@ -2860,6 +3148,7 @@
2860
3148
  "SvgStroke": {
2861
3149
  "description": "Stroke (outline) properties for SVG shapes. The stroke defines how the outline\nof a shape is painted, including its color, width, and line style.\n",
2862
3150
  "type": "object",
3151
+ "additionalProperties": false,
2863
3152
  "properties": {
2864
3153
  "color": {
2865
3154
  "description": "The stroke color using hexadecimal color notation.",
@@ -2929,6 +3218,7 @@
2929
3218
  "SvgShadow": {
2930
3219
  "description": "Drop shadow properties for SVG shapes. Creates a shadow effect behind the shape.\n",
2931
3220
  "type": "object",
3221
+ "additionalProperties": false,
2932
3222
  "properties": {
2933
3223
  "offsetX": {
2934
3224
  "description": "Horizontal offset of the shadow in pixels.\nPositive values move the shadow to the right, negative to the left.\n",
@@ -2969,6 +3259,7 @@
2969
3259
  "SvgTransform": {
2970
3260
  "description": "Transformation properties for positioning, rotating, and scaling SVG shapes.\n",
2971
3261
  "type": "object",
3262
+ "additionalProperties": false,
2972
3263
  "properties": {
2973
3264
  "x": {
2974
3265
  "description": "The x-coordinate position of the shape in pixels.\nRelative to the top-left corner of the viewport.\n",
@@ -3156,6 +3447,7 @@
3156
3447
  "type": "string"
3157
3448
  }
3158
3449
  },
3450
+ "additionalProperties": false,
3159
3451
  "type": "object"
3160
3452
  },
3161
3453
  "Offset": {
@@ -3202,6 +3494,7 @@
3202
3494
  ]
3203
3495
  }
3204
3496
  },
3497
+ "additionalProperties": false,
3205
3498
  "type": "object"
3206
3499
  },
3207
3500
  "Crop": {
@@ -3238,11 +3531,13 @@
3238
3531
  "maximum": 1
3239
3532
  }
3240
3533
  },
3534
+ "additionalProperties": false,
3241
3535
  "type": "object"
3242
3536
  },
3243
3537
  "Transformation": {
3244
3538
  "description": "Apply one or more transformations to a clip. Transformations alter the visual properties of a clip and can be combined to create new shapes and effects.",
3245
3539
  "type": "object",
3540
+ "additionalProperties": false,
3246
3541
  "properties": {
3247
3542
  "rotate": {
3248
3543
  "$ref": "#/components/schemas/RotateTransformation"
@@ -3258,6 +3553,7 @@
3258
3553
  "RotateTransformation": {
3259
3554
  "description": "Rotate a clip by the specified angle in degrees. Rotation origin is set based on the clips `position`.",
3260
3555
  "type": "object",
3556
+ "additionalProperties": false,
3261
3557
  "properties": {
3262
3558
  "angle": {
3263
3559
  "description": "Rotate a clip by the specified angle in degrees. Use a number or an array of [Tween](./#tocs_tween) objects to create a custom animation.",
@@ -3284,6 +3580,7 @@
3284
3580
  "SkewTransformation": {
3285
3581
  "description": "Skew a clip so its edges are sheared at an angle. Use values between -100 and 100. Values over 3 or under -3 will skew the clip almost flat.",
3286
3582
  "type": "object",
3583
+ "additionalProperties": false,
3287
3584
  "properties": {
3288
3585
  "x": {
3289
3586
  "description": "Skew the clip along it's x axis.",
@@ -3330,6 +3627,7 @@
3330
3627
  "FlipTransformation": {
3331
3628
  "description": "Flip a clip vertically or horizontally. Acts as a mirror effect of the clip along the selected plane.",
3332
3629
  "type": "object",
3630
+ "additionalProperties": false,
3333
3631
  "properties": {
3334
3632
  "horizontal": {
3335
3633
  "description": "Flip a clip horizontally.",
@@ -3377,6 +3675,7 @@
3377
3675
  "example": 0.85
3378
3676
  }
3379
3677
  },
3678
+ "additionalProperties": false,
3380
3679
  "type": "object"
3381
3680
  },
3382
3681
  "TextBackground": {
@@ -3409,6 +3708,7 @@
3409
3708
  "example": 5
3410
3709
  }
3411
3710
  },
3711
+ "additionalProperties": false,
3412
3712
  "type": "object"
3413
3713
  },
3414
3714
  "TextAlignment": {
@@ -3435,6 +3735,7 @@
3435
3735
  ]
3436
3736
  }
3437
3737
  },
3738
+ "additionalProperties": false,
3438
3739
  "type": "object"
3439
3740
  },
3440
3741
  "RichTextFont": {
@@ -3462,7 +3763,7 @@
3462
3763
  "description": "The text color using hexadecimal color notation.",
3463
3764
  "type": "string",
3464
3765
  "pattern": "^#[A-Fa-f0-9]{6}$",
3465
- "default": "#ffffff",
3766
+ "default": "#000000",
3466
3767
  "example": "#ff0000"
3467
3768
  },
3468
3769
  "opacity": {
@@ -3484,6 +3785,7 @@
3484
3785
  "$ref": "#/components/schemas/RichTextStroke"
3485
3786
  }
3486
3787
  },
3788
+ "additionalProperties": false,
3487
3789
  "type": "object"
3488
3790
  },
3489
3791
  "RichTextStyle": {
@@ -3495,6 +3797,13 @@
3495
3797
  "default": 0,
3496
3798
  "example": 2
3497
3799
  },
3800
+ "wordSpacing": {
3801
+ "description": "Additional spacing between words in pixels. A value of 0 uses the font's natural space width.",
3802
+ "type": "number",
3803
+ "minimum": 0,
3804
+ "default": 0,
3805
+ "example": 10
3806
+ },
3498
3807
  "lineHeight": {
3499
3808
  "description": "The line height as a multiplier of the font size. Must be between 0 and 10.",
3500
3809
  "type": "number",
@@ -3531,6 +3840,7 @@
3531
3840
  "$ref": "#/components/schemas/RichTextGradient"
3532
3841
  }
3533
3842
  },
3843
+ "additionalProperties": false,
3534
3844
  "type": "object"
3535
3845
  },
3536
3846
  "RichTextGradient": {
@@ -3578,13 +3888,15 @@
3578
3888
  "required": [
3579
3889
  "offset",
3580
3890
  "color"
3581
- ]
3891
+ ],
3892
+ "additionalProperties": false
3582
3893
  }
3583
3894
  }
3584
3895
  },
3585
3896
  "required": [
3586
3897
  "stops"
3587
3898
  ],
3899
+ "additionalProperties": false,
3588
3900
  "type": "object"
3589
3901
  },
3590
3902
  "RichTextStroke": {
@@ -3613,6 +3925,7 @@
3613
3925
  "example": 0.8
3614
3926
  }
3615
3927
  },
3928
+ "additionalProperties": false,
3616
3929
  "type": "object"
3617
3930
  },
3618
3931
  "RichTextShadow": {
@@ -3653,6 +3966,7 @@
3653
3966
  "example": 0.7
3654
3967
  }
3655
3968
  },
3969
+ "additionalProperties": false,
3656
3970
  "type": "object"
3657
3971
  },
3658
3972
  "RichTextBackground": {
@@ -3680,6 +3994,7 @@
3680
3994
  "example": 10
3681
3995
  }
3682
3996
  },
3997
+ "additionalProperties": false,
3683
3998
  "type": "object"
3684
3999
  },
3685
4000
  "RichTextAlignment": {
@@ -3708,6 +4023,7 @@
3708
4023
  "example": "middle"
3709
4024
  }
3710
4025
  },
4026
+ "additionalProperties": false,
3711
4027
  "type": "object"
3712
4028
  },
3713
4029
  "RichTextAnimation": {
@@ -3757,6 +4073,7 @@
3757
4073
  "required": [
3758
4074
  "preset"
3759
4075
  ],
4076
+ "additionalProperties": false,
3760
4077
  "type": "object"
3761
4078
  },
3762
4079
  "CaptionFont": {
@@ -3798,6 +4115,7 @@
3798
4115
  "example": 0.8
3799
4116
  }
3800
4117
  },
4118
+ "additionalProperties": false,
3801
4119
  "type": "object"
3802
4120
  },
3803
4121
  "CaptionBackground": {
@@ -3824,6 +4142,7 @@
3824
4142
  "example": 18
3825
4143
  }
3826
4144
  },
4145
+ "additionalProperties": false,
3827
4146
  "type": "object"
3828
4147
  },
3829
4148
  "CaptionMargin": {
@@ -3845,6 +4164,7 @@
3845
4164
  "example": 0.45
3846
4165
  }
3847
4166
  },
4167
+ "additionalProperties": false,
3848
4168
  "type": "object"
3849
4169
  },
3850
4170
  "ChromaKey": {
@@ -3871,6 +4191,7 @@
3871
4191
  "example": 100
3872
4192
  }
3873
4193
  },
4194
+ "additionalProperties": false,
3874
4195
  "required": [
3875
4196
  "color"
3876
4197
  ],
@@ -3942,6 +4263,7 @@
3942
4263
  ]
3943
4264
  }
3944
4265
  },
4266
+ "additionalProperties": false,
3945
4267
  "type": "object"
3946
4268
  },
3947
4269
  "MergeField": {
@@ -3958,6 +4280,7 @@
3958
4280
  "example": "Jane"
3959
4281
  }
3960
4282
  },
4283
+ "additionalProperties": false,
3961
4284
  "required": [
3962
4285
  "find",
3963
4286
  "replace"
@@ -4078,6 +4401,7 @@
4078
4401
  }
4079
4402
  }
4080
4403
  },
4404
+ "additionalProperties": false,
4081
4405
  "required": [
4082
4406
  "format"
4083
4407
  ],
@@ -4101,6 +4425,7 @@
4101
4425
  "example": 800
4102
4426
  }
4103
4427
  },
4428
+ "additionalProperties": false,
4104
4429
  "type": "object"
4105
4430
  },
4106
4431
  "Range": {
@@ -4121,6 +4446,7 @@
4121
4446
  "example": 6
4122
4447
  }
4123
4448
  },
4449
+ "additionalProperties": false,
4124
4450
  "type": "object"
4125
4451
  },
4126
4452
  "Poster": {
@@ -4132,6 +4458,7 @@
4132
4458
  "example": 1
4133
4459
  }
4134
4460
  },
4461
+ "additionalProperties": false,
4135
4462
  "required": [
4136
4463
  "capture"
4137
4464
  ],
@@ -4153,6 +4480,7 @@
4153
4480
  "example": 0.3
4154
4481
  }
4155
4482
  },
4483
+ "additionalProperties": false,
4156
4484
  "required": [
4157
4485
  "capture",
4158
4486
  "scale"
@@ -4527,6 +4855,7 @@
4527
4855
  "$ref": "#/components/schemas/Edit"
4528
4856
  }
4529
4857
  },
4858
+ "additionalProperties": false,
4530
4859
  "required": [
4531
4860
  "name"
4532
4861
  ],
@@ -4548,6 +4877,7 @@
4548
4877
  }
4549
4878
  }
4550
4879
  },
4880
+ "additionalProperties": false,
4551
4881
  "required": [
4552
4882
  "id"
4553
4883
  ],