The Core Has to Survive Every Surface

OpenCut's hardest architectural question appears when a timeline gesture changes more than one visible rectangle. A trim, move, or ripple operation can alter gaps, neighboring clips, track membership, selection, playback, and undo state at once. This chapter follows that change from structured timeline state to the web, API, and desktop surfaces in the current repository, so readers can see what a future shared core would have to preserve—and why a multi-application workspace alone does not prove that such a core exists.

From a timeline gesture to an explicit state change

A timeline is not just a ruler with clips drawn on it. It is a structured account of which media participates in a scene, on which kind of track, for what interval, and with what relationships to other material. The former editor's 0.3 technical notes describe a type-level change intended to protect that structure: a flat track array was replaced by SceneTracks with explicit overlay, main, and audio fields. The main field is a singleton VideoTrack, and the stated purpose is to make it structurally impossible to mix track kinds or place a track incorrectly.

For a reader, the important point is not the names alone. A type-level rule moves a question earlier in the system. Instead of allowing every command or panel to accept any list of tracks and hoping later code interprets it correctly, the scene model records which arrangements are legal. An overlay is not silently treated as the main video track. An audio track is not placed where a visual compositor expects a layer. The timeline can still have rich behavior—masks, animated properties, effects, and multiple clips—but that behavior starts from a constrained shape.

The source does not show the former implementation or enumerate every operation that SceneTracks permitted. The safe claim is therefore about the intended invariant, not a complete proof of its coverage. Nor does the current rewrite snapshot contain SceneTracks. The named structure belongs to the documented earlier architecture, while the rewrite's desktop panels currently have no visible track model. That distinction is essential: a design can be a strong candidate for the new foundation without being present in the code that readers can inspect today.

Ripple editing exposes why the structure matters. In an ordinary timeline operation, a user may think in terms of one clip: remove a segment, trim a start, or move an element. In ripple mode, the change can affect the intervals around it. Material after a vacated span may need to move, and the calculation must account for clips that moved to another track rather than assuming one fixed row. A local event handler that shifts neighbors as it goes can easily mix the operation's immediate effects with its broader consequences.

The 0.3 notes describe a different lifecycle. First, the system takes track snapshots before and after an operation.