ResolvedPlan
Defined in: console-sdk/src/session/types.ts:259
The session’s normalized plan (SDK_PLAN.md §3.12.4): what
StartWorkoutInput resolves to after interval normalization and round
expansion (rows 29–30). Renderable — drives IntervalHeader/RoundHeader.
Every interval carries an explicit role (null = broadcast), the rest is
defaulted, and rounds is 1 for a free/target workout. Produced by the
pure normalizer in ./plan.
Properties
Section titled “Properties”intervals
Section titled “intervals”intervals: readonly
NormalizedInterval[]
Defined in: console-sdk/src/session/types.ts:274
Normalized intervals, each with an explicit role (null = broadcast)
and a defaulted rest. A free workout resolves to an empty list; a
structured plan to one entry per leg with rounds already materialized
(multi-entry plans are tiled ×rounds and carry rounds: 1).
kind:
"free"|"intervals"
Defined in: console-sdk/src/session/types.ts:261
Which programming kind produced this plan.
mode:
"broadcast"|"sequential"
Defined in: console-sdk/src/session/types.ts:267
The choreography for an intervals plan; always 'broadcast' for a
free/single-target workout (the sequential executor is never selected for
it). 'sequential' marks the turn-based relay path.
rounds
Section titled “rounds”rounds:
number|"unlimited"
Defined in: console-sdk/src/session/types.ts:276
Number of rounds, or 'unlimited'; 1 for a free/target workout.
target
Section titled “target”target:
WorkoutTarget|null
Defined in: console-sdk/src/session/types.ts:278
The whole-workout target for a free workout, else null.
targets
Section titled “targets”targets:
PerformanceTargets|null
Defined in: console-sdk/src/session/types.ts:280
The whole-workout performance targets for a free workout, else null.