Sensor Synchronization
External telemetry uses a versioned mapping from its source clock to session time. Exact/container/GPS/flight timestamps, explicit offset/drift, and manual visual/audio/multi-point anchors retain residual error and warnings; frame-perfect alignment is not assumed.
A SessionTimeline captures a wall-clock start and a ContinuousClock monotonic start. Location, motion, and capture-log records contain wall-clock time, monotonic session-relative seconds, source type, and sequence number. Location also retains the Core Location timestamp. Motion is requested at 20 Hz; location uses best accuracy with a one-meter distance filter to avoid unnecessary storage and battery load.
Video frames use AVFoundation presentation timestamps internally, while the Phase 2 manifest records recording duration, delivered frame count, nominal FPS, and measured FPS. Sensor time and video time share the recording start boundary and can be aligned by session-relative time. Phase 2 does not claim frame-perfect synchronization: it does not persist a per-frame PTS index, and scheduling, sensor delivery, and movie-output startup introduce measurable offsets. A later research-validation phase can add calibrated clock anchors without changing the JSONL envelope.