# Editor Handoff — export segments + overlays for manual finishing Status: **Implemented.** `tools/export-project.mjs` emits segments (ProRes 422 HQ) + overlays (ProRes 4444 alpha) + `manifest.json` + `rebuild.sh` (VS-24) **and** an FCPXML for Final Cut Pro import (VS-25). Pure logic + 100% tests in `tools/export-manifest.mjs` and `tools/fcpxml.mjs`. Covers VS-20 (export ordered segments) and VS-21 (export overlays as separate files), which share the manifest/FCPXML design, so they're specified together here. ## Cut spec (input) `export-project [--out ]` consumes a small JSON the skill writes after designing the cut (source paths resolve relative to the spec file): ```json { "project": { "fps": 24, "width": 1920, "height": 1080, "name": "teaser" }, "clips": [ { "source": "a.mov", "in": 36.18, "out": 39.20, "audio": "keep" }, { "source": "a.mov", "in": 1189.0, "out": 1191.25, "audio": "silent" } ], "overlays": [ { "file": "cap.mov", "overClip": 0, "atOffset": 0.5, "position": "lower-third" } ], "audioTrack": { "source": "recorder.wav", "in": 0, "durationSeconds": 8 } } ``` `clips` are in cut order (`in`/`out` in seconds; `audio` is `keep`|`silent`). Each `overlay` references an already-rendered alpha clip (`file`) and sits over clip `overClip` starting `atOffset` seconds into it; its duration is taken from the file unless `duration` is given. The optional **`audioTrack`** lays one continuous audio source under the whole timeline (its `durationSeconds` defaults to the timeline length) — used for **multi-cam** (silent video angle-segments + master audio; see [`multicam-sync.md`](multicam-sync.md), built by `expandMulticamGroup`) or a music bed. It is extracted to `audio/master.mov`, muxed under the video by `rebuild.sh`, and attached to the FCPXML on a connected audio lane. > **Early concept.** Design intent for a pre-1.0 feature; details may change. ## 1. Purpose Today video-studio renders **one finished video**. This feature lets it instead (or additionally) export the **building blocks** of a cut so the user can do a finishing pass in a real NLE — primarily **Final Cut Pro** — adding their own transitions, grades, and audio work: - the chosen **segments** as individual, ordered video files; - the **overlays** (title cards, lower-thirds, captions, CTAs) as individual files with transparency; - machine-readable **manifests** that state where each piece belongs in the final timeline, plus an **FCPXML** that lays the whole assembly out for direct import. Design decisions (confirmed with the maintainer): manifest = **JSON + FCPXML**; segment codec = **ProRes 422 HQ**; overlay codec = **ProRes 4444** (alpha). ## 2. Output layout A single export produces a project directory next to the source, e.g.: ```