Lifecycle
Lifecycle Overview

Example Flow
User drags handle
↓
Selection engine computes next range
↓
Validation runs
↓
Manager commits or rejects transition
↓
Hook projects latest manager state
↓
UI rerenders
Manager Acceptance Scenarios
- Given
duration=60, when setStartTime(20) and setEndTime(40), then selected duration is 20.
- Given
startTime=20 and endTime=40, when playback reaches 40, then playback pauses and seeks to 20.
- Given
startTime=50, when setEndTime(40), then validation fails and previous range remains unchanged.
Notes
- Events are capability contract signals, not UI orchestration commands.
- Behavioral outcomes are primary; events are secondary unless explicitly consumed as contract.