A guided breathing pattern, animated on the countdown ring. Phase durations
are absolute seconds — tempo is never scaled to the break length; the
cycle simply repeats. cycles optionally caps the guided portion, after
which then decides whether to loop or rest. A routine carrying a breath
takes the place of step text on the overlay.
Per-phase sound cues for a breathing pattern, so a user can follow the
rhythm with their eyes closed. Each is an audio asset id (rewritten to the
stored sidecar path on install); any phase may be silent.
Pixel rectangle for a monitor in the desktop’s coordinate space.
Used to position overlay windows. Origin can be negative on
multi-monitor setups where the primary is not the top-left display.
One step of a guided break routine: a short instruction the overlay
shows for seconds before advancing to the next step. Part of the
break:start wire payload; the routine library that produces these
lives in super::routines.
How a routine’s step durations relate to the break length. Sent in
BreakEvent as the routine’s own declared pacing (if any); the
frontend falls back to the routine_fill global setting when this is
absent.