---
url: /docs/api/core/variables/krdExtensionsSchema.md
---
[**@kaiord/core**](../README.md)

***

[@kaiord/core](../README.md) / krdExtensionsSchema

# Variable: krdExtensionsSchema

> `const` **krdExtensionsSchema**: `ZodObject`<{ `course`: `ZodOptional`<`ZodUnknown`>; `course_points`: `ZodOptional`<`ZodUnknown`>; `fit`: `ZodOptional`<`ZodUnknown`>; `health`: `ZodOptional`<`ZodObject`<{ `bodyComposition`: `ZodOptional`<`ZodObject`<{ `basalMetabolicRateKcal`: `ZodOptional`<`ZodNumber`>; `bmi`: `ZodOptional`<`ZodNumber`>; `bodyFatPercent`: `ZodOptional`<`ZodNumber`>; `bodyWaterPercent`: `ZodOptional`<`ZodNumber`>; `boneMassKilograms`: `ZodOptional`<`ZodNumber`>; `externalId`: `ZodOptional`<`ZodString`>; `kaiordRecordId`: `ZodOptional`<`ZodString`>; `kind`: `ZodLiteral`<`"bodyComposition"`>; `leanMassKilograms`: `ZodOptional`<`ZodNumber`>; `measuredAt`: `ZodISODateTime`; `sourceBridgeId`: `ZodOptional`<`ZodString`>; `version`: `ZodString`; `visceralFatRating`: `ZodOptional`<`ZodNumber`>; }, `$strip`>>; `daily`: `ZodOptional`<`ZodObject`<{ `activeCalories`: `ZodNumber`; `date`: `ZodISODate`; `externalId`: `ZodOptional`<`ZodString`>; `floorsClimbed`: `ZodOptional`<`ZodNumber`>; `intensityMinutes`: `ZodObject`<{ `moderate`: `ZodNumber`; `vigorous`: `ZodNumber`; }, `$strip`>; `kaiordRecordId`: `ZodOptional`<`ZodString`>; `kind`: `ZodLiteral`<`"daily"`>; `restingCalories`: `ZodNumber`; `sourceBridgeId`: `ZodOptional`<`ZodString`>; `steps`: `ZodNumber`; `version`: `ZodString`; }, `$strip`>>; `hrv`: `ZodOptional`<`ZodObject`<{ `externalId`: `ZodOptional`<`ZodString`>; `kaiordRecordId`: `ZodOptional`<`ZodString`>; `kind`: `ZodLiteral`<`"hrv"`>; `measuredAt`: `ZodISODateTime`; `measurementWindow`: `ZodEnum`<{ `overnight`: `"overnight"`; `spot`: `"spot"`; }>; `rMSSD`: `ZodNumber`; `score`: `ZodOptional`<`ZodNumber`>; `sourceBridgeId`: `ZodOptional`<`ZodString`>; `version`: `ZodString`; }, `$strip`>>; `sleep`: `ZodOptional`<`ZodObject`<{ `endTime`: `ZodISODateTime`; `externalId`: `ZodOptional`<`ZodString`>; `kaiordRecordId`: `ZodOptional`<`ZodString`>; `kind`: `ZodLiteral`<`"sleep"`>; `restingHeartRate`: `ZodOptional`<`ZodNumber`>; `score`: `ZodOptional`<`ZodNumber`>; `sourceBridgeId`: `ZodOptional`<`ZodString`>; `stages`: `ZodArray`<`ZodObject`<{ `durationSeconds`: ...; `stage`: ...; `startTime`: ...; }, `$strip`>>; `startTime`: `ZodISODateTime`; `totalDurationSeconds`: `ZodOptional`<`ZodNumber`>; `version`: `ZodString`; }, `$strip`>>; `stress`: `ZodOptional`<`ZodObject`<{ `averageLevel`: `ZodNumber`; `endTime`: `ZodISODateTime`; `externalId`: `ZodOptional`<`ZodString`>; `kaiordRecordId`: `ZodOptional`<`ZodString`>; `kind`: `ZodLiteral`<`"stress"`>; `peakLevel`: `ZodNumber`; `sourceBridgeId`: `ZodOptional`<`ZodString`>; `startTime`: `ZodISODateTime`; `version`: `ZodString`; }, `$strip`>>; `weight`: `ZodOptional`<`ZodObject`<{ `externalId`: `ZodOptional`<`ZodString`>; `kaiordRecordId`: `ZodOptional`<`ZodString`>; `kind`: `ZodLiteral`<`"weight"`>; `measuredAt`: `ZodISODateTime`; `sourceBridgeId`: `ZodOptional`<`ZodString`>; `version`: `ZodString`; `weightKilograms`: `ZodNumber`; }, `$strip`>>; }, `$catchall`<`ZodUnknown`>>>; `structured_workout`: `ZodOptional`<`ZodUnknown`>; }, `$catchall`<`ZodUnknown`>>

Defined in: [packages/core/src/domain/schemas/krd/index.ts:39](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/schemas/krd/index.ts#L39)

Tagged shape for KRD `extensions`.

Reserved namespaces are validated when present:

* `structured_workout`, `fit`, `course`, `course_points` carry adapter-
  specific payloads whose shape is narrowed by downstream consumers
  (e.g. the SPA editor's `ui-workout` view).
* `health.<metric>` payloads are validated against the `health-data`
  capability sub-schemas.

`catchall(z.unknown())` keeps unknown adapter-defined namespaces
round-trippable per the extension preservation rule in
`openspec/specs/krd-format`.
