changedInput schema / properties / layers / items / oneOf
Previous value: -[
- {
- "properties": {
- "assetId": {
- "description": "Library asset id (search_assets with source library): an image, an animation or a video",
- "maxLength": 100,
- "minLength": 1,
- "type": "string"
- },
- "id": {
- "description": "Stable id for this overlay (any short string; keep it when editing)",
- "maxLength": 40,
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "asset",
- "type": "string"
- },
- "loop": {
- "description": "Repeat a video / animation while its window is open (default: on for GIF and animated WebP, off for videos)",
- "type": "boolean"
- },
- "opacity": {
- "description": "0.1-1, default 1",
- "maximum": 1,
- "minimum": 0.1,
- "type": "number"
- },
- "timing": {
- "description": "Where the layer sits on a clip of any length",
- "oneOf": [
- {
- "properties": {
- "end": {
- "description": "Seconds after the clip starts (above start)",
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "head",
- "type": "string"
- },
- "start": {
- "description": "Seconds after the clip starts",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- },
- {
- "properties": {
- "end": {
- "description": "Seconds before the clip ends (0 = the very end)",
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "tail",
- "type": "string"
- },
- "start": {
- "description": "Seconds before the clip ends (above end)",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- },
- {
- "properties": {
- "mode": {
- "const": "fill",
- "type": "string"
- }
- },
- "required": [
- "mode"
- ],
- "type": "object"
- },
- {
- "properties": {
- "end": {
- "description": "Fraction of the clip length (0-1, above start)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "maxSec": {
- "description": "Never longer than this many seconds",
- "maximum": 600,
- "minimum": 0,
- "type": "number"
- },
- "minSec": {
- "description": "Never shorter than this many seconds",
- "maximum": 600,
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "relative",
- "type": "string"
- },
- "start": {
- "description": "Fraction of the clip length (0-1)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- }
- ]
- },
- "w": {
- "description": "asset: width, fraction of the output width (0.05-1); the height follows the file. Default 0.3",
- "maximum": 1,
- "minimum": 0.05,
- "type": "number"
- },
- "x": {
- "description": "Centre, fraction of the output width (0-1)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "description": "Centre, fraction of the output height (0-1)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "id",
- "assetId",
- "x",
- "y",
- "kind",
- "timing"
- ],
- "type": "object"
- },
- {
- "properties": {
- "box": {
- "description": "text: dark plate behind the text (default: outlined text, no plate)",
- "type": "boolean"
- },
- "color": {
- "description": "text: colour as #RRGGBB, default white",
- "pattern": "^#[0-9a-fA-F]{6}$",
- "type": "string"
- },
- "font": {
- "description": "text: font family from TEXT_FONTS (default DejaVu Sans, the caption font)",
- "maxLength": 60,
- "minLength": 1,
- "type": "string"
- },
- "id": {
- "description": "Stable id for this overlay (any short string; keep it when editing)",
- "maxLength": 40,
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "opacity": {
- "description": "0.1-1, default 1",
- "maximum": 1,
- "minimum": 0.1,
- "type": "number"
- },
- "size": {
- "description": "text: font size as a fraction of the output height (0.02-0.12), default 0.045",
- "maximum": 0.12,
- "minimum": 0.02,
- "type": "number"
- },
- "text": {
- "description": "The line to show (1-120 chars)",
- "maxLength": 120,
- "minLength": 1,
- "type": "string"
- },
- "timing": {
- "description": "Where the layer sits on a clip of any length",
- "oneOf": [
- {
- "properties": {
- "end": {
- "description": "Seconds after the clip starts (above start)",
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "head",
- "type": "string"
- },
- "start": {
- "description": "Seconds after the clip starts",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- },
- {
- "properties": {
- "end": {
- "description": "Seconds before the clip ends (0 = the very end)",
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "tail",
- "type": "string"
- },
- "start": {
- "description": "Seconds before the clip ends (above end)",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- },
- {
- "properties": {
- "mode": {
- "const": "fill",
- "type": "string"
- }
- },
- "required": [
- "mode"
- ],
- "type": "object"
- },
- {
- "properties": {
- "end": {
- "description": "Fraction of the clip length (0-1, above start)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "maxSec": {
- "description": "Never longer than this many seconds",
- "maximum": 600,
- "minimum": 0,
- "type": "number"
- },
- "minSec": {
- "description": "Never shorter than this many seconds",
- "maximum": 600,
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "relative",
- "type": "string"
- },
- "start": {
- "description": "Fraction of the clip length (0-1)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- }
- ]
- },
- "x": {
- "description": "Centre, fraction of the output width (0-1)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "description": "Centre, fraction of the output height (0-1)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "id",
- "text",
- "x",
- "y",
- "kind",
- "timing"
- ],
- "type": "object"
- },
- {
- "properties": {
- "assetId": {
- "description": "Library audio asset id (search_assets with source library, kind audio); the same asset can be used more than once",
- "maxLength": 100,
- "minLength": 1,
- "type": "string"
- },
- "duck": {
- "description": "Lower the music while someone speaks (default true)",
- "type": "boolean"
- },
- "fade": {
- "description": "Fade in and out, seconds (default 0.5)",
- "maximum": 5,
- "minimum": 0,
- "type": "number"
- },
- "id": {
- "description": "Stable id for this track (any short string; keep it when editing)",
- "maxLength": 40,
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "audio",
- "type": "string"
- },
- "loop": {
- "description": "Repeat the track when it is shorter than the window (default true)",
- "type": "boolean"
- },
- "offset": {
- "description": "Seconds into the track to start from (default 0)",
- "minimum": 0,
- "type": "number"
- },
- "timing": {
- "description": "Where the layer sits on a clip of any length",
- "oneOf": [
- {
- "properties": {
- "end": {
- "description": "Seconds after the clip starts (above start)",
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "head",
- "type": "string"
- },
- "start": {
- "description": "Seconds after the clip starts",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- },
- {
- "properties": {
- "end": {
- "description": "Seconds before the clip ends (0 = the very end)",
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "tail",
- "type": "string"
- },
- "start": {
- "description": "Seconds before the clip ends (above end)",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- },
- {
- "properties": {
- "mode": {
- "const": "fill",
- "type": "string"
- }
- },
- "required": [
- "mode"
- ],
- "type": "object"
- },
- {
- "properties": {
- "end": {
- "description": "Fraction of the clip length (0-1, above start)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "maxSec": {
- "description": "Never longer than this many seconds",
- "maximum": 600,
- "minimum": 0,
- "type": "number"
- },
- "minSec": {
- "description": "Never shorter than this many seconds",
- "maximum": 600,
- "minimum": 0,
- "type": "number"
- },
- "mode": {
- "const": "relative",
- "type": "string"
- },
- "start": {
- "description": "Fraction of the clip length (0-1)",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "start",
- "end"
- ],
- "type": "object"
- }
- ]
- },
- "volume": {
- "description": "Music level 0-1 (default 0.6) on a track normalised to -20 LUFS, before ducking",
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "id",
- "assetId",
- "kind",
- "timing"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "assetId": {
+ "description": "Library asset id (search_assets with source library): an image, an animation or a video",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "fade": {
+ "description": "Fade in when it appears and out when it goes, seconds (0-2, default 0 = appears and goes at once)",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ },
+ "id": {
+ "description": "Stable id for this overlay (any short string; keep it when editing)",
+ "maxLength": 40,
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "asset",
+ "type": "string"
+ },
+ "loop": {
+ "description": "Repeat a video / animation while its window is open (default: on for GIF and animated WebP, off for videos)",
+ "type": "boolean"
+ },
+ "opacity": {
+ "description": "0.1-1, default 1",
+ "maximum": 1,
+ "minimum": 0.1,
+ "type": "number"
+ },
+ "timing": {
+ "description": "Where the layer sits on a clip of any length",
+ "oneOf": [
+ {
+ "properties": {
+ "end": {
+ "description": "Seconds after the clip starts (above start)",
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "head",
+ "type": "string"
+ },
+ "start": {
+ "description": "Seconds after the clip starts",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "end": {
+ "description": "Seconds before the clip ends (0 = the very end)",
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "tail",
+ "type": "string"
+ },
+ "start": {
+ "description": "Seconds before the clip ends (above end)",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "mode": {
+ "const": "fill",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "end": {
+ "description": "Fraction of the clip length (0-1, above start)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxSec": {
+ "description": "Never longer than this many seconds",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ },
+ "minSec": {
+ "description": "Never shorter than this many seconds",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "relative",
+ "type": "string"
+ },
+ "start": {
+ "description": "Fraction of the clip length (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "w": {
+ "description": "asset: width, fraction of the output width (0.05-1); the height follows the file. Default 0.3",
+ "maximum": 1,
+ "minimum": 0.05,
+ "type": "number"
+ },
+ "x": {
+ "description": "Centre, fraction of the output width (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "description": "Centre, fraction of the output height (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "id",
+ "assetId",
+ "x",
+ "y",
+ "kind",
+ "timing"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "box": {
+ "description": "text: dark plate behind the text (default: outlined text, no plate)",
+ "type": "boolean"
+ },
+ "color": {
+ "description": "text: colour as #RRGGBB, default white",
+ "pattern": "^#[0-9a-fA-F]{6}$",
+ "type": "string"
+ },
+ "fade": {
+ "description": "Fade in when it appears and out when it goes, seconds (0-2, default 0 = appears and goes at once)",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ },
+ "font": {
+ "description": "text: font family from TEXT_FONTS (default DejaVu Sans, the caption font)",
+ "maxLength": 60,
+ "minLength": 1,
+ "type": "string"
+ },
+ "id": {
+ "description": "Stable id for this overlay (any short string; keep it when editing)",
+ "maxLength": 40,
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "text",
+ "type": "string"
+ },
+ "opacity": {
+ "description": "0.1-1, default 1",
+ "maximum": 1,
+ "minimum": 0.1,
+ "type": "number"
+ },
+ "size": {
+ "description": "text: font size as a fraction of the output height (0.02-0.12), default 0.045",
+ "maximum": 0.12,
+ "minimum": 0.02,
+ "type": "number"
+ },
+ "text": {
+ "description": "The line to show (1-120 chars)",
+ "maxLength": 120,
+ "minLength": 1,
+ "type": "string"
+ },
+ "timing": {
+ "description": "Where the layer sits on a clip of any length",
+ "oneOf": [
+ {
+ "properties": {
+ "end": {
+ "description": "Seconds after the clip starts (above start)",
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "head",
+ "type": "string"
+ },
+ "start": {
+ "description": "Seconds after the clip starts",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "end": {
+ "description": "Seconds before the clip ends (0 = the very end)",
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "tail",
+ "type": "string"
+ },
+ "start": {
+ "description": "Seconds before the clip ends (above end)",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "mode": {
+ "const": "fill",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "end": {
+ "description": "Fraction of the clip length (0-1, above start)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxSec": {
+ "description": "Never longer than this many seconds",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ },
+ "minSec": {
+ "description": "Never shorter than this many seconds",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "relative",
+ "type": "string"
+ },
+ "start": {
+ "description": "Fraction of the clip length (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "x": {
+ "description": "Centre, fraction of the output width (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "description": "Centre, fraction of the output height (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "id",
+ "text",
+ "x",
+ "y",
+ "kind",
+ "timing"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "assetId": {
+ "description": "Library audio asset id (search_assets with source library, kind audio); the same asset can be used more than once",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "duck": {
+ "description": "Lower the music while someone speaks (default true)",
+ "type": "boolean"
+ },
+ "fade": {
+ "description": "Fade in and out, seconds (default 0.5)",
+ "maximum": 5,
+ "minimum": 0,
+ "type": "number"
+ },
+ "id": {
+ "description": "Stable id for this track (any short string; keep it when editing)",
+ "maxLength": 40,
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "audio",
+ "type": "string"
+ },
+ "loop": {
+ "description": "Repeat the track when it is shorter than the window (default true)",
+ "type": "boolean"
+ },
+ "offset": {
+ "description": "Seconds into the track to start from (default 0)",
+ "minimum": 0,
+ "type": "number"
+ },
+ "timing": {
+ "description": "Where the layer sits on a clip of any length",
+ "oneOf": [
+ {
+ "properties": {
+ "end": {
+ "description": "Seconds after the clip starts (above start)",
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "head",
+ "type": "string"
+ },
+ "start": {
+ "description": "Seconds after the clip starts",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "end": {
+ "description": "Seconds before the clip ends (0 = the very end)",
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "tail",
+ "type": "string"
+ },
+ "start": {
+ "description": "Seconds before the clip ends (above end)",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "mode": {
+ "const": "fill",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "end": {
+ "description": "Fraction of the clip length (0-1, above start)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxSec": {
+ "description": "Never longer than this many seconds",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ },
+ "minSec": {
+ "description": "Never shorter than this many seconds",
+ "maximum": 600,
+ "minimum": 0,
+ "type": "number"
+ },
+ "mode": {
+ "const": "relative",
+ "type": "string"
+ },
+ "start": {
+ "description": "Fraction of the clip length (0-1)",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "volume": {
+ "description": "Music level 0-1 (default 0.6) on a track normalised to -20 LUFS, before ducking",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "id",
+ "assetId",
+ "kind",
+ "timing"
+ ],
+ "type": "object"
+ }
+]