/** * Milliseconds. All timing in the project is expressed as integer ms to * keep JSON serialization unambiguous (no frame-rate coupling in the * data model — the renderer can present time as frames if it wants). */ type Ms = number; interface MediaSource { id: string; url: string; kind: "video" | "audio"; /** Optional — probed lazily from the