Skip to content

PerformanceTargets

Defined in: console-sdk/src/session/types.ts:102

Performance targets for a work segment (SDK_PLAN.md §3.12.4), tier-tagged. Only pace is programmed to the console (Tier 1, firmware-enforced); the rest are APP-SCORED (Tier 2) — carried through to the snapshot and result as inert values so the consuming app can display and color-code them, but never written to the firmware (there is no wire slot for them).

This is a FLAT bag, not a discriminated pacer. The reference apps model the pacer as one mutually-exclusive pace | watts | caloriesPerHour choice with strokeRate/hrZone as independent siblings; this shape does NOT enforce that exclusivity, and setting more than one pacer (e.g. pace and watts) is a representable consumer choice the SDK deliberately does not forbid — only pace reaches the wire, so a stray Tier-2 sibling is harmless and merely gives the app a second soft target to score. A consumer mirroring the reference UI enforces the one-pacer convention app-side. The SDK ships NO scoring or color helper: these are pass-through values and the consumer owns all scoring/color logic.

optional caloriesPerHour?: number

Defined in: console-sdk/src/session/types.ts:108

Tier 2 (app-scored) — target energy rate, calories/hour. Higher-is-better.


optional hrZone?: 4 | 3 | 5 | 2 | 1

Defined in: console-sdk/src/session/types.ts:115

Tier 2 (app-scored) — target heart-rate zone, 1–5. In-band is good.


optional pace?: PaceTarget

Defined in: console-sdk/src/session/types.ts:104

Tier 1 — the ONLY member the firmware enforces. Pace, lower-is-better.


optional strokeRate?: number

Defined in: console-sdk/src/session/types.ts:113

Tier 2 (app-scored) — target stroke rate: strokes/min (rower/ski) or rpm (bike). Higher-is-better.


optional watts?: number

Defined in: console-sdk/src/session/types.ts:106

Tier 2 (app-scored) — target power, watts. Higher-is-better.