{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://indiadigital.org/video/recipe-schema.json",
  "title": "IndiaDigital video recipe",
  "description": "Put this JSON in a /video/make/ link. Exactly one of template, style or plan — or just a brief in words.",
  "type": "object",
  "properties": {
    "v": {
      "const": 1
    },
    "template": {
      "type": "string",
      "description": "Template id from list_video_templates (e.g. \"diwali\", \"birthday-wish\", \"shop-offer\")."
    },
    "variant": {
      "type": "string",
      "description": "Look of the template (see its variants)."
    },
    "fields": {
      "type": "object",
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "description": "Template field values by field id."
    },
    "style": {
      "enum": [
        "before-after",
        "product-launch",
        "travel-montage",
        "talking-head",
        "real-estate",
        "festival-greeting",
        "podcast-clips",
        "explainer",
        "tutorial",
        "testimonial",
        "ad-15",
        "ad-30",
        "youtube-intro",
        "youtube-outro",
        "wedding",
        "event-recap",
        "news-reel",
        "slideshow",
        "lesson",
        "birthday"
      ],
      "description": "Edit style for your own footage (needs media)."
    },
    "plan": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "title": "IndiaDigital video edit plan (v2)",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "version",
        "aspect",
        "shots"
      ],
      "properties": {
        "version": {
          "const": 2
        },
        "title": {
          "type": "string",
          "maxLength": 120
        },
        "aspect": {
          "enum": [
            "16:9",
            "9:16",
            "1:1"
          ]
        },
        "acts": {
          "type": "array",
          "maxItems": 12,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "start",
              "end"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 60
              },
              "start": {
                "type": "number",
                "minimum": 0,
                "maximum": 600
              },
              "end": {
                "type": "number",
                "minimum": 0,
                "maximum": 600
              }
            }
          }
        },
        "shots": {
          "type": "array",
          "minItems": 1,
          "maxItems": 120,
          "description": "Main track, in play order. in/out are SOURCE seconds of assetId.",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "assetId",
              "in",
              "out"
            ],
            "properties": {
              "assetId": {
                "type": "string"
              },
              "in": {
                "type": "number",
                "minimum": 0,
                "maximum": 86400
              },
              "out": {
                "type": "number",
                "minimum": 0,
                "maximum": 86400
              },
              "speed": {
                "type": "number",
                "minimum": 0.25,
                "maximum": 8
              },
              "reverse": {
                "type": "boolean"
              },
              "motion": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "preset"
                ],
                "properties": {
                  "preset": {
                    "enum": [
                      "none",
                      "kenburns",
                      "zoom-out",
                      "drift",
                      "pan-left",
                      "pan-right",
                      "pan-up",
                      "pan-down",
                      "dolly",
                      "punch",
                      "shake",
                      "pulse",
                      "whip",
                      "handheld",
                      "parallax",
                      "zoom-through",
                      "whirl-dive",
                      "burst",
                      "spin-in"
                    ]
                  },
                  "zoomFrom": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 6
                  },
                  "zoomTo": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 6
                  },
                  "focusFrom": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "minItems": 2,
                    "maxItems": 2
                  },
                  "focusTo": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "minItems": 2,
                    "maxItems": 2
                  },
                  "amount": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 3
                  },
                  "shake": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2
                  },
                  "ease": {
                    "enum": [
                      "linear",
                      "inOutSine",
                      "outCubic",
                      "inCubic",
                      "inOutCubic",
                      "outExpo",
                      "outBack",
                      "inExpo",
                      "inOutExpo",
                      "outQuart",
                      "inOutBack",
                      "outElastic",
                      "bounce",
                      "spring"
                    ]
                  }
                }
              },
              "grade": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "preset"
                ],
                "properties": {
                  "preset": {
                    "enum": [
                      "none",
                      "before",
                      "after",
                      "cinematic",
                      "warm",
                      "cold",
                      "bw",
                      "vintage",
                      "luxury",
                      "vivid",
                      "moody",
                      "teal-orange",
                      "noir",
                      "pastel",
                      "golden-hour",
                      "bleach-bypass",
                      "film-kodak",
                      "matte",
                      "cyberpunk",
                      "clean"
                    ]
                  },
                  "brightness": {
                    "type": "number",
                    "minimum": -0.5,
                    "maximum": 0.5
                  },
                  "contrast": {
                    "type": "number",
                    "minimum": 0.3,
                    "maximum": 2
                  },
                  "saturation": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2.5
                  },
                  "gamma": {
                    "type": "number",
                    "minimum": 0.4,
                    "maximum": 2.5
                  },
                  "temperature": {
                    "type": "number",
                    "minimum": -1,
                    "maximum": 1
                  },
                  "tint": {
                    "type": "number",
                    "minimum": -1,
                    "maximum": 1
                  },
                  "shadows": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": -0.3,
                      "maximum": 0.3
                    },
                    "minItems": 3,
                    "maxItems": 3
                  },
                  "highlights": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": -0.3,
                      "maximum": 0.3
                    },
                    "minItems": 3,
                    "maxItems": 3
                  },
                  "vignette": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1.5
                  },
                  "grain": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  },
                  "sharpen": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1.5
                  },
                  "bloom": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  },
                  "fade": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 0.5
                  }
                }
              },
              "transition": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "duration"
                ],
                "properties": {
                  "type": {
                    "enum": [
                      "cut",
                      "match-cut",
                      "fade",
                      "dissolve",
                      "flash",
                      "dip-white",
                      "dip-black",
                      "light-leak",
                      "wipe",
                      "wipe-left",
                      "wipe-right",
                      "wipe-up",
                      "wipe-down",
                      "smooth-left",
                      "smooth-right",
                      "smooth-up",
                      "smooth-down",
                      "gradient-wipe",
                      "luma",
                      "circle-open",
                      "circle-close",
                      "diamond",
                      "radial",
                      "clock",
                      "barn-door",
                      "blinds",
                      "slide-left",
                      "slide-right",
                      "slide-up",
                      "slide-down",
                      "push-left",
                      "push-right",
                      "push-up",
                      "push-down",
                      "whip",
                      "whip-left",
                      "whip-right",
                      "whip-up",
                      "whip-down",
                      "zoom-through",
                      "zoom-in",
                      "zoom-out",
                      "cross-zoom",
                      "spin",
                      "blur",
                      "pixelize",
                      "glitch",
                      "slider"
                    ]
                  },
                  "duration": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2
                  },
                  "ease": {
                    "enum": [
                      "linear",
                      "inOutSine",
                      "outCubic",
                      "inCubic",
                      "inOutCubic",
                      "outExpo",
                      "outBack",
                      "inExpo",
                      "inOutExpo",
                      "outQuart",
                      "inOutBack",
                      "outElastic",
                      "bounce",
                      "spring"
                    ]
                  },
                  "params": {
                    "type": "object",
                    "additionalProperties": {
                      "type": [
                        "number",
                        "string",
                        "boolean"
                      ]
                    },
                    "maxProperties": 24
                  }
                },
                "description": "Transition INTO this shot."
              },
              "compare": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "assetId",
                  "in"
                ],
                "properties": {
                  "assetId": {
                    "type": "string"
                  },
                  "in": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 86400
                  },
                  "wipeAt": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 30
                  },
                  "wipeDur": {
                    "type": "number",
                    "minimum": 0.1,
                    "maximum": 5
                  }
                }
              },
              "role": {
                "type": "string",
                "maxLength": 40
              },
              "label": {
                "type": "string",
                "maxLength": 80
              },
              "effects": {
                "type": "array",
                "maxItems": 8,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "enum": [
                        "bloom",
                        "vignette",
                        "light-leak",
                        "grain",
                        "sharpen",
                        "matte-fade",
                        "blur-gaussian",
                        "blur-zoom",
                        "blur-motion",
                        "blur-radial",
                        "pixelate",
                        "glitch",
                        "chromatic",
                        "letterbox",
                        "vhs",
                        "dreamy",
                        "flicker",
                        "chroma-key"
                      ]
                    },
                    "params": {
                      "type": "object",
                      "additionalProperties": {
                        "type": [
                          "number",
                          "string",
                          "boolean"
                        ]
                      },
                      "maxProperties": 24
                    }
                  }
                }
              },
              "layout": {
                "enum": [
                  "full",
                  "pip-top-left",
                  "pip-top-right",
                  "pip-bottom-left",
                  "pip-bottom-right",
                  "split-left",
                  "split-right",
                  "split-top",
                  "split-bottom",
                  "grid-1",
                  "grid-2",
                  "grid-3",
                  "grid-4"
                ]
              },
              "fx": {
                "type": "object",
                "description": "Advanced render-engine ClipFx (transform/keyframes, crop, masks, colour, looks, timeRemap…). See render/schema.ts."
              },
              "volume": {
                "type": "number",
                "minimum": 0,
                "maximum": 2
              }
            }
          }
        },
        "texts": {
          "type": "array",
          "maxItems": 60,
          "description": "Kinetic text; start/end are OUTPUT seconds.",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "start",
              "end",
              "text",
              "preset"
            ],
            "properties": {
              "start": {
                "type": "number",
                "minimum": 0,
                "maximum": 600
              },
              "end": {
                "type": "number",
                "minimum": 0,
                "maximum": 600
              },
              "text": {
                "type": "string",
                "minLength": 1,
                "maxLength": 140
              },
              "preset": {
                "enum": [
                  "none",
                  "fade",
                  "rise",
                  "slide",
                  "pop",
                  "stamp",
                  "word-pop",
                  "wave",
                  "glitch",
                  "blur-in",
                  "letter-reveal",
                  "typewriter",
                  "big-serif",
                  "label",
                  "tag",
                  "chapter",
                  "underline-title",
                  "lower-third",
                  "counter",
                  "karaoke"
                ]
              },
              "position": {
                "enum": [
                  "top",
                  "upper",
                  "center",
                  "lower",
                  "bottom",
                  "lower-left"
                ]
              },
              "size": {
                "type": "number",
                "minimum": 0.015,
                "maximum": 0.2
              },
              "font": {
                "enum": [
                  "sans",
                  "devanagari",
                  "serif",
                  "mono",
                  "serif-italic",
                  "light"
                ]
              },
              "color": {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              "kicker": {
                "type": "string",
                "maxLength": 8
              },
              "spacing": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "box": {
                "enum": [
                  "dark",
                  "light"
                ]
              }
            }
          }
        },
        "endCard": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "duration"
          ],
          "properties": {
            "duration": {
              "type": "number",
              "minimum": 0.5,
              "maximum": 10
            },
            "background": {
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "color": {
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            "title": {
              "type": "string",
              "maxLength": 80
            },
            "subtitle": {
              "type": "string",
              "maxLength": 80
            },
            "logoAssetId": {
              "type": "string"
            },
            "transition": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "type",
                "duration"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "cut",
                    "match-cut",
                    "fade",
                    "dissolve",
                    "flash",
                    "dip-white",
                    "dip-black",
                    "light-leak",
                    "wipe",
                    "wipe-left",
                    "wipe-right",
                    "wipe-up",
                    "wipe-down",
                    "smooth-left",
                    "smooth-right",
                    "smooth-up",
                    "smooth-down",
                    "gradient-wipe",
                    "luma",
                    "circle-open",
                    "circle-close",
                    "diamond",
                    "radial",
                    "clock",
                    "barn-door",
                    "blinds",
                    "slide-left",
                    "slide-right",
                    "slide-up",
                    "slide-down",
                    "push-left",
                    "push-right",
                    "push-up",
                    "push-down",
                    "whip",
                    "whip-left",
                    "whip-right",
                    "whip-up",
                    "whip-down",
                    "zoom-through",
                    "zoom-in",
                    "zoom-out",
                    "cross-zoom",
                    "spin",
                    "blur",
                    "pixelize",
                    "glitch",
                    "slider"
                  ]
                },
                "duration": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 2
                },
                "ease": {
                  "enum": [
                    "linear",
                    "inOutSine",
                    "outCubic",
                    "inCubic",
                    "inOutCubic",
                    "outExpo",
                    "outBack",
                    "inExpo",
                    "inOutExpo",
                    "outQuart",
                    "inOutBack",
                    "outElastic",
                    "bounce",
                    "spring"
                  ]
                },
                "params": {
                  "type": "object",
                  "additionalProperties": {
                    "type": [
                      "number",
                      "string",
                      "boolean"
                    ]
                  },
                  "maxProperties": 24
                }
              }
            },
            "credit": {
              "type": "boolean",
              "description": "Show \"Made with IndiaDigital.org\" (default true)."
            }
          }
        },
        "music": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "source"
          ],
          "properties": {
            "source": {
              "enum": [
                "procedural",
                "asset",
                "none"
              ]
            },
            "style": {
              "enum": [
                "house",
                "cinematic",
                "lofi",
                "tabla",
                "corporate"
              ]
            },
            "bpm": {
              "type": "number",
              "minimum": 50,
              "maximum": 200
            },
            "dropAt": {
              "type": "number",
              "minimum": 0,
              "maximum": 600
            },
            "assetId": {
              "type": "string"
            },
            "volume": {
              "type": "number",
              "minimum": 0,
              "maximum": 2
            },
            "sfx": {
              "type": "boolean"
            },
            "seed": {
              "type": "integer",
              "minimum": 0
            }
          }
        },
        "beatSync": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "mode"
          ],
          "properties": {
            "mode": {
              "enum": [
                "off",
                "beat",
                "half",
                "bar"
              ]
            },
            "bpm": {
              "type": "number",
              "minimum": 50,
              "maximum": 200
            },
            "offset": {
              "type": "number",
              "minimum": 0,
              "maximum": 4
            }
          }
        },
        "captions": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "enabled"
          ],
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "style": {
              "enum": [
                "bold-pop",
                "karaoke",
                "minimal"
              ]
            }
          }
        },
        "summary": {
          "type": "string",
          "maxLength": 1000
        }
      },
      "description": "A full edit plan (shots reference media ids)."
    },
    "brief": {
      "type": "string",
      "maxLength": 4000,
      "description": "What you want, in words. Used to pick a template and fill fields when they are missing."
    },
    "media": {
      "type": "array",
      "maxItems": 30,
      "items": {
        "anyOf": [
          {
            "type": "string",
            "format": "uri",
            "description": "https:// link to a photo, clip or song (the host must allow CORS)."
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "id": {
                "type": "string",
                "description": "Asset id for plan shots (default m1, m2, …)."
              },
              "role": {
                "enum": [
                  "before",
                  "after",
                  "logo",
                  "music"
                ]
              },
              "kind": {
                "enum": [
                  "image",
                  "video",
                  "audio"
                ]
              },
              "name": {
                "type": "string"
              },
              "focus": {
                "type": "array",
                "items": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "minItems": 2,
                "maxItems": 2
              }
            }
          }
        ]
      }
    },
    "logo": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri",
          "description": "https:// link to a photo, clip or song (the host must allow CORS)."
        },
        {
          "type": "object",
          "required": [
            "url"
          ],
          "properties": {
            "url": {
              "type": "string",
              "format": "uri"
            },
            "id": {
              "type": "string",
              "description": "Asset id for plan shots (default m1, m2, …)."
            },
            "role": {
              "enum": [
                "before",
                "after",
                "logo",
                "music"
              ]
            },
            "kind": {
              "enum": [
                "image",
                "video",
                "audio"
              ]
            },
            "name": {
              "type": "string"
            },
            "focus": {
              "type": "array",
              "items": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "minItems": 2,
              "maxItems": 2
            }
          }
        }
      ]
    },
    "music": {
      "type": "string",
      "description": "A style (house, cinematic, lofi, tabla, corporate), \"none\", or an https link to a song."
    },
    "aspect": {
      "enum": [
        "9:16",
        "16:9",
        "1:1",
        "4:5"
      ]
    },
    "lang": {
      "enum": [
        "en",
        "hi"
      ]
    },
    "title": {
      "type": "string",
      "maxLength": 120
    },
    "credit": {
      "type": "boolean",
      "description": "\"Made with IndiaDigital.org\" on the end card (default true)."
    },
    "steps": {
      "type": "array",
      "maxItems": 10,
      "description": "Media to fetch or make before editing (max 12 items in total). Stock: free Pixabay photos/clips with the viewer’s Pixabay key. Generate: AI images/clips with the viewer’s own keys (fal, Together, Replicate…) or their ComfyUI; the viewer confirms the ₹ cost first. Steps run in the viewer’s browser, never on IndiaDigital’s servers.",
      "items": {
        "anyOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "const": "stock"
              },
              "query": {
                "type": "string",
                "minLength": 2,
                "maxLength": 100
              },
              "kind": {
                "enum": [
                  "photo",
                  "illustration",
                  "video"
                ]
              },
              "placement": {
                "enum": [
                  "append",
                  "broll",
                  "music",
                  "sfx",
                  "bin"
                ]
              },
              "count": {
                "type": "integer",
                "minimum": 1,
                "maximum": 5
              },
              "orientation": {
                "enum": [
                  "all",
                  "horizontal",
                  "vertical"
                ]
              },
              "category": {
                "enum": [
                  "backgrounds",
                  "fashion",
                  "nature",
                  "science",
                  "education",
                  "feelings",
                  "health",
                  "people",
                  "religion",
                  "places",
                  "animals",
                  "industry",
                  "computer",
                  "food",
                  "sports",
                  "transportation",
                  "travel",
                  "buildings",
                  "business",
                  "music"
                ]
              },
              "at": {
                "type": "number",
                "minimum": 0
              },
              "maxSeconds": {
                "type": "number",
                "minimum": 0.5,
                "maximum": 120
              }
            },
            "required": [
              "type",
              "query"
            ]
          },
          {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "const": "generate"
              },
              "mode": {
                "enum": [
                  "t2i",
                  "t2v",
                  "i2v"
                ]
              },
              "prompt": {
                "type": "string",
                "minLength": 3,
                "maxLength": 4000
              },
              "placement": {
                "enum": [
                  "append",
                  "broll",
                  "music",
                  "sfx",
                  "bin"
                ]
              },
              "count": {
                "type": "integer",
                "minimum": 1,
                "maximum": 4
              },
              "provider": {
                "enum": [
                  "comfyui",
                  "codex",
                  "fal",
                  "kie",
                  "together",
                  "gemini",
                  "replicate",
                  "higgsfield"
                ]
              },
              "model": {
                "enum": [
                  "comfy-flux-schnell",
                  "comfy-wan22-5b",
                  "comfy-custom",
                  "fal-flux-schnell",
                  "fal-flux-dev",
                  "fal-wan22-5b",
                  "fal-wan22-a14b",
                  "fal-kling25-i2v",
                  "fal-nano-banana",
                  "codex-gpt-image",
                  "kie-nano-banana",
                  "kie-gpt-image-2",
                  "kie-seedream-45",
                  "kie-veo31-lite",
                  "kie-veo31-fast",
                  "kie-kling3",
                  "kie-seedance2",
                  "kie-grok-imagine",
                  "kie-wan27",
                  "kie-topaz-upscale",
                  "gemini-nano-banana",
                  "together-flux2-dev",
                  "replicate-flux-schnell",
                  "hf-soul2",
                  "hf-kling3-std",
                  "hf-wan26"
                ]
              },
              "seconds": {
                "type": "number",
                "minimum": 2,
                "maximum": 15
              },
              "aspect": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:5"
                ]
              },
              "fromAssetId": {
                "type": "string"
              },
              "at": {
                "type": "number",
                "minimum": 0
              }
            },
            "required": [
              "type",
              "mode",
              "prompt"
            ]
          }
        ]
      }
    },
    "stock": {
      "type": "array",
      "description": "Shorthand for stock steps: [{\"query\":\"diya lamps\",\"count\":3,\"kind\":\"image|video\"}].",
      "items": {
        "type": "object",
        "required": [
          "query"
        ]
      }
    },
    "generate": {
      "type": "array",
      "description": "Shorthand for generate steps: [{\"prompt\":\"…\",\"kind\":\"image|video\",\"seconds\":4}].",
      "items": {
        "type": "object",
        "required": [
          "prompt"
        ]
      }
    },
    "export": {
      "type": "object",
      "properties": {
        "height": {
          "enum": [
            720,
            1080
          ]
        },
        "fps": {
          "enum": [
            24,
            30
          ]
        },
        "format": {
          "enum": [
            "mp4",
            "webm"
          ]
        },
        "auto": {
          "type": "boolean",
          "description": "Start rendering as soon as the link opens (default true)."
        }
      }
    }
  },
  "examples": [
    {
      "template": "diwali",
      "fields": {
        "mode": "business",
        "shop": "Sharma Sweets",
        "offer": "20",
        "phone": "9876543210"
      },
      "aspect": "9:16"
    },
    {
      "brief": "Make a 30-second Diwali reel for my shop, Sharma Sweets, offer 20% off"
    },
    {
      "template": "birthday-wish",
      "fields": {
        "name": "Meera",
        "age": "7",
        "from": "Papa"
      },
      "media": [
        "https://raw.githubusercontent.com/you/photos/main/meera1.jpg",
        "https://raw.githubusercontent.com/you/photos/main/meera2.jpg"
      ]
    },
    {
      "style": "before-after",
      "brief": "Aether Spaces interior transformations",
      "media": [
        {
          "url": "https://res.cloudinary.com/demo/video/upload/before1.mp4",
          "role": "before"
        },
        {
          "url": "https://res.cloudinary.com/demo/video/upload/after1.mp4",
          "role": "after"
        }
      ],
      "music": "house"
    },
    {
      "style": "product-launch",
      "brief": "Monsoon sale for Sharma Sweets: 20% off all mithai, vertical reel",
      "steps": [
        {
          "type": "generate",
          "mode": "t2v",
          "prompt": "slow push-in on a glowing sweet shop counter at dusk, rain outside, warm light, cinematic",
          "seconds": 5,
          "aspect": "9:16",
          "placement": "append",
          "count": 1
        },
        {
          "type": "stock",
          "query": "indian sweets",
          "kind": "video",
          "orientation": "vertical",
          "placement": "append",
          "count": 3
        },
        {
          "type": "stock",
          "query": "monsoon rain window",
          "kind": "video",
          "placement": "append",
          "count": 1
        }
      ],
      "music": "lofi",
      "aspect": "9:16"
    },
    {
      "template": "diwali",
      "fields": {
        "mode": "personal",
        "from": "The Iyer family"
      },
      "steps": [
        {
          "type": "stock",
          "query": "diya lamps night",
          "kind": "photo",
          "count": 3,
          "placement": "append"
        }
      ]
    }
  ]
}