@kaiord/core / krdSchema
Variable: krdSchema
constkrdSchema:ZodObject<{events:ZodOptional<ZodArray<ZodObject<{data:ZodOptional<ZodNumber>;eventGroup:ZodOptional<ZodNumber>;eventType:ZodEnum<{event_activity_start:"event_activity_start";event_lap:"event_lap";event_marker:"event_marker";event_pause:"event_pause";event_resume:"event_resume";event_session_start:"event_session_start";event_start:"event_start";event_stop:"event_stop";event_timer:"event_timer";event_workout_step_change:"event_workout_step_change"; }>;message:ZodOptional<ZodString>;timestamp:ZodISODateTime; },$strip>>>;extensions:ZodOptional<ZodObject<{course:ZodOptional<ZodUnknown>;course_points:ZodOptional<ZodUnknown>;fit:ZodOptional<ZodUnknown>;health:ZodOptional<ZodObject<{bodyComposition:ZodOptional<ZodObject<{bmi: ...;bodyFatPercent: ...;bodyWaterPercent: ...;boneMassKilograms: ...;externalId: ...;kaiordRecordId: ...;kind: ...;leanMassKilograms: ...;measuredAt: ...;sourceBridgeId: ...;version: ...; },$strip>>;daily:ZodOptional<ZodObject<{activeCalories: ...;date: ...;externalId: ...;floorsClimbed: ...;intensityMinutes: ...;kaiordRecordId: ...;kind: ...;restingCalories: ...;sourceBridgeId: ...;steps: ...;version: ...; },$strip>>;hrv:ZodOptional<ZodObject<{externalId: ...;kaiordRecordId: ...;kind: ...;measuredAt: ...;measurementWindow: ...;rMSSD: ...;score: ...;sourceBridgeId: ...;version: ...; },$strip>>;sleep:ZodOptional<ZodObject<{endTime: ...;externalId: ...;kaiordRecordId: ...;kind: ...;restingHeartRate: ...;score: ...;sourceBridgeId: ...;stages: ...;startTime: ...;totalDurationSeconds: ...;version: ...; },$strip>>;stress:ZodOptional<ZodObject<{averageLevel: ...;endTime: ...;externalId: ...;kaiordRecordId: ...;kind: ...;peakLevel: ...;sourceBridgeId: ...;startTime: ...;version: ...; },$strip>>;weight:ZodOptional<ZodObject<{externalId: ...;kaiordRecordId: ...;kind: ...;measuredAt: ...;sourceBridgeId: ...;version: ...;weightKilograms: ...; },$strip>>; },$catchall<ZodUnknown>>>;structured_workout:ZodOptional<ZodUnknown>; },$catchall<ZodUnknown>>>;laps:ZodOptional<ZodArray<ZodObject<{avgCadence:ZodOptional<ZodNumber>;avgHeartRate:ZodOptional<ZodNumber>;avgPower:ZodOptional<ZodNumber>;avgSpeed:ZodOptional<ZodNumber>;maxCadence:ZodOptional<ZodNumber>;maxHeartRate:ZodOptional<ZodNumber>;maxPower:ZodOptional<ZodNumber>;maxSpeed:ZodOptional<ZodNumber>;normalizedPower:ZodOptional<ZodNumber>;numLengths:ZodOptional<ZodNumber>;sport:ZodOptional<ZodEnum<{alpine_skiing:"alpine_skiing";american_football:"american_football";archery:"archery";baseball:"baseball";basketball:"basketball";boating:"boating";boxing:"boxing";canoeing:"canoeing";cricket:"cricket";cross_country_skiing:"cross_country_skiing";cycling:"cycling";dance:"dance";disc_golf:"disc_golf";diving:"diving";driving:"driving";e_biking:"e_biking";fishing:"fishing";fitness_equipment:"fitness_equipment";floor_climbing:"floor_climbing";flying:"flying";generic:"generic";geocaching:"geocaching";golf:"golf";grinding:"grinding";hang_gliding:"hang_gliding";hiit:"hiit";hiking:"hiking";hockey:"hockey";horseback_riding:"horseback_riding";hunting:"hunting";ice_skating:"ice_skating";inline_skating:"inline_skating";jump_rope:"jump_rope";jumpmaster:"jumpmaster";kayaking:"kayaking";kitesurfing:"kitesurfing";lacrosse:"lacrosse";meditation:"meditation";mixed_martial_arts:"mixed_martial_arts";mobility:"mobility";motor_sports:"motor_sports";motorcycling:"motorcycling";mountaineering:"mountaineering";multisport:"multisport";paddling:"paddling";para_sport:"para_sport";pool_apnea:"pool_apnea";racket:"racket";rafting:"rafting";rock_climbing:"rock_climbing";rowing:"rowing";rugby:"rugby";running:"running";sailing:"sailing";shooting:"shooting";sky_diving:"sky_diving";snorkeling:"snorkeling";snowboarding:"snowboarding";snowmobiling:"snowmobiling";snowshoeing:"snowshoeing";soccer:"soccer";stand_up_paddleboarding:"stand_up_paddleboarding";surfing:"surfing";swimming:"swimming";tactical:"tactical";team_sport:"team_sport";tennis:"tennis";training:"training";transition:"transition";video_gaming:"video_gaming";volleyball:"volleyball";wakeboarding:"wakeboarding";wakesurfing:"wakesurfing";walking:"walking";water_skiing:"water_skiing";water_sport:"water_sport";water_tubing:"water_tubing";wheelchair_push_run:"wheelchair_push_run";wheelchair_push_walk:"wheelchair_push_walk";windsurfing:"windsurfing";winter_sport:"winter_sport"; }>>;startTime:ZodISODateTime;subSport:ZodOptional<ZodEnum<{all:"all";apnea_diving:"apnea_diving";apnea_hunting:"apnea_hunting";atv:"atv";backcountry:"backcountry";bike_to_run_transition:"bike_to_run_transition";bmx:"bmx";cardio_training:"cardio_training";casual_walking:"casual_walking";challenge:"challenge";commuting:"commuting";cyclocross:"cyclocross";downhill:"downhill";e_bike_fitness:"e_bike_fitness";e_bike_mountain:"e_bike_mountain";elliptical:"elliptical";exercise:"exercise";flexibility_training:"flexibility_training";gauge_diving:"gauge_diving";generic:"generic";gravel_cycling:"gravel_cycling";hand_cycling:"hand_cycling";indoor_cycling:"indoor_cycling";indoor_rowing:"indoor_rowing";indoor_running:"indoor_running";indoor_skiing:"indoor_skiing";indoor_walking:"indoor_walking";lap_swimming:"lap_swimming";map:"map";match:"match";mixed_surface:"mixed_surface";motocross:"motocross";mountain:"mountain";multi_gas_diving:"multi_gas_diving";navigate:"navigate";obstacle:"obstacle";open_water:"open_water";pilates:"pilates";rc_drone:"rc_drone";recumbent:"recumbent";resort:"resort";road:"road";run_to_bike_transition:"run_to_bike_transition";single_gas_diving:"single_gas_diving";skate_skiing:"skate_skiing";speed_walking:"speed_walking";spin:"spin";stair_climbing:"stair_climbing";street:"street";strength_training:"strength_training";swim_to_bike_transition:"swim_to_bike_transition";track:"track";track_cycling:"track_cycling";track_me:"track_me";trail:"trail";treadmill:"treadmill";virtual_activity:"virtual_activity";warm_up:"warm_up";whitewater:"whitewater";wingsuit:"wingsuit";yoga:"yoga"; }>>;swimStroke:ZodOptional<ZodEnum<{backstroke:"backstroke";breaststroke:"breaststroke";butterfly:"butterfly";drill:"drill";freestyle:"freestyle";im:"im";mixed:"mixed"; }>>;totalAscent:ZodOptional<ZodNumber>;totalCalories:ZodOptional<ZodNumber>;totalDescent:ZodOptional<ZodNumber>;totalDistance:ZodOptional<ZodNumber>;totalElapsedTime:ZodNumber;totalTimerTime:ZodOptional<ZodNumber>;trigger:ZodOptional<ZodEnum<{distance:"distance";fitness_equipment:"fitness_equipment";manual:"manual";position:"position";session_end:"session_end";time:"time"; }>>;workoutStepIndex:ZodOptional<ZodNumber>; },$strip>>>;metadata:ZodObject<{created:ZodISODateTime;manufacturer:ZodOptional<ZodString>;product:ZodOptional<ZodString>;serialNumber:ZodOptional<ZodString>;sport:ZodOptional<ZodString>;subSport:ZodOptional<ZodString>; },$strip>;records:ZodOptional<ZodArray<ZodObject<{altitude:ZodOptional<ZodNumber>;cadence:ZodOptional<ZodNumber>;distance:ZodOptional<ZodNumber>;heartRate:ZodOptional<ZodNumber>;position:ZodOptional<ZodObject<{lat:ZodNumber;lon:ZodNumber; },$strip>>;power:ZodOptional<ZodNumber>;speed:ZodOptional<ZodNumber>;stanceTime:ZodOptional<ZodNumber>;stepLength:ZodOptional<ZodNumber>;temperature:ZodOptional<ZodNumber>;timestamp:ZodISODateTime;verticalOscillation:ZodOptional<ZodNumber>; },$strip>>>;sessions:ZodOptional<ZodArray<ZodObject<{avgCadence:ZodOptional<ZodNumber>;avgHeartRate:ZodOptional<ZodNumber>;avgPower:ZodOptional<ZodNumber>;avgSpeed:ZodOptional<ZodNumber>;intensityFactor:ZodOptional<ZodNumber>;maxCadence:ZodOptional<ZodNumber>;maxHeartRate:ZodOptional<ZodNumber>;maxPower:ZodOptional<ZodNumber>;maxSpeed:ZodOptional<ZodNumber>;normalizedPower:ZodOptional<ZodNumber>;sport:ZodString;startTime:ZodISODateTime;subSport:ZodOptional<ZodString>;totalAscent:ZodOptional<ZodNumber>;totalCalories:ZodOptional<ZodNumber>;totalDescent:ZodOptional<ZodNumber>;totalDistance:ZodOptional<ZodNumber>;totalElapsedTime:ZodNumber;totalTimerTime:ZodOptional<ZodNumber>;trainingStressScore:ZodOptional<ZodNumber>; },$strip>>>;type:ZodEnum<{body_composition:"body_composition";course:"course";daily_wellness:"daily_wellness";hrv_summary:"hrv_summary";recorded_activity:"recorded_activity";sleep_record:"sleep_record";stress_episode:"stress_episode";structured_workout:"structured_workout";weight_measurement:"weight_measurement"; }>;version:ZodString; },$strip>
Defined in: packages/core/src/domain/schemas/krd/index.ts:91
Zod schema for the complete KRD (Kaiord Representation Definition) format.
KRD is a JSON-based canonical format for structured workout, recorded activity, course, and (as of v2.0) health-domain data. The type field is the top-level discriminator and gates the conditional metadata.sport invariant:
- For
structured_workout,recorded_activity,course—metadata.sportMUST be a non-empty string (preserved from v1.x). - For the six health types —
metadata.sportMUST be absent or empty.
MIME type: application/vnd.kaiord+json
Example
import { krdSchema } from '@kaiord/core';
const krd = krdSchema.parse({
version: '2.0',
type: 'sleep_record',
metadata: { created: '2026-05-22T07:00:00Z' },
extensions: {
health: {
sleep: { ... }
}
}
});