media/manifest.rs
1//! Recording session manifest.
2//!
3//! Lands in **M-MEDIA.20 (AUT-116)**. This file is the scaffolded module
4//! so the crate compiles before that chunk.
5//!
6//! Planned surface:
7//!
8//! ```text
9//! RecordingManifest {
10//! session_id: Uuid,
11//! created_at: DateTime<Utc>,
12//! video_tracks: Vec<VideoTrack>,
13//! audio_tracks: Vec<AudioTrack>,
14//! cursor_track: Option<CursorTrack>,
15//! timeline_origin: MediaTime,
16//! duration: MediaDuration,
17//! }
18//! ```
19//!
20//! Serializable (serde JSON + a stable on-disk format). Describes the
21//! session — does not render it. The app reopens a recording by loading a
22//! manifest + lazily resolving track files relative to the manifest's
23//! parent directory.