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

***

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

# Variable: targetSchema

> `const` **targetSchema**: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `type`: `ZodLiteral`<`"power"`>; `value`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `unit`: `ZodLiteral`<`"watts"`>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<`"percent_ftp"`>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<`"zone"`>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `basis`: `ZodOptional`<`ZodLiteral`<`"percent_ftp"`>>; `max`: `ZodNumber`; `min`: `ZodNumber`; `unit`: `ZodLiteral`<`"range"`>; }, `$strip`>], `"unit"`>; }, `$strip`>, `ZodObject`<{ `type`: `ZodLiteral`<`"heart_rate"`>; `value`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `unit`: `ZodLiteral`<`"bpm"`>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<`"zone"`>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `unit`: `ZodLiteral`<`"percent_max"`>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `max`: `ZodNumber`; `min`: `ZodNumber`; `unit`: `ZodLiteral`<`"range"`>; }, `$strip`>], `"unit"`>; }, `$strip`>, `ZodObject`<{ `type`: `ZodLiteral`<`"cadence"`>; `value`: `ZodDiscriminatedUnion`<\[`ZodObject`<{ `unit`: `ZodLiteral`<`"rpm"`>; `value`: `ZodNumber`; }, `$strip`>, `ZodObject`<{ `max`: `ZodNumber`; `min`: `ZodNumber`; `unit`: `ZodLiteral`<`"range"`>; }, `$strip`>], `"unit"`>; }, `$strip`>], `"type"`>

Defined in: [packages/core/src/domain/schemas/target.ts:21](https://github.com/pablo-albaladejo/kaiord/blob/3eacbe62ef72342d970523967cc5155b5935bb85/packages/core/src/domain/schemas/target.ts#L21)

Zod schema for workout step target.

Validates target specifications using discriminated unions based on target type.
Supports power, heart rate, cadence, pace, stroke type, and open targets.
