Horse
Object type
Implements: Entity
Fields
Section titled “Fields”| Field | Args | Type | Description |
|---|---|---|---|
id | — | ID! required | — |
name | — | String! required | — |
displayName | — | String | — |
countryOfBirth | — | String! required | — |
sex | — | HorseSex | — |
colour | — | HorseColour | — |
yearBorn | — | Int | — |
sire | — | HorseRef | Sire reference — canonical horse when linked (REQ-025), else name-only. |
dam | — | HorseRef | Dam reference — canonical horse when linked (REQ-025), else name-only. |
damSire | — | HorseRef | Dam-sire reference — canonical horse when linked (REQ-025), else name-only. |
progeny | — | [Horse!]! required | Progeny — this horse’s IMMEDIATE offspring: canonical horses whose sire OR dam resolves to this horse (POD-355, REQ-027). Does NOT include the dam-sire (maternal grandsire) edge — those are a further generation, not direct offspring. Derived read-only from the breeding graph; each entry is a full canonical Horse so the Relatives surface can reuse the registry’s horse table columns (name / country / year-born / sex / sire / dam) and click through to each offspring’s profile. Empty when this horse has no recorded offspring. Bounded by name to a sensible cap (damline / full pedigree traversal are a later refinement, OQ-A12). |
bred | — | String | — |
officialRating | — | Int | — |
rprRating | — | Int | — |
topspeedRating | — | Int | — |
retired | — | Boolean! required | — |
deceased | — | Boolean! required | — |
breeder | — | Breeder | — |
version | — | Int! required | Optimistic-locking version (participants.version) — pass as expectedVersion on updateHorse. |
sportId | — | ID! required | — |
createdAt | — | DateTime! required | When the participant row was first inserted (participants.created_at). |
aliases | — | [ParticipantAlias!]! required | Records merged into this canonical via the M22 merge flow (REQ-009). |
disciplineRatings | — | [DisciplineRating!]! required | Most-recent official rating per discipline (Turf-Flat / Jump / All-Weather), derived from run history. |
careerWinnings | — | [MonetaryAmount!]! required | Total prize money this horse has earned across its career (POD-539), one entry per currency. Summed from the same per-run derivation as Runner.winnings, so the total always equals the sum of the per-run figures. Prize breakdowns mix currencies across territories and no FX conversion is applied, so amounts are reported per currency and never combined into one figure. An absolute career figure — only runs that actually earned contribute, so it does not move with the history-list status filter. Empty when the horse has no recorded winnings. Ordered by raw amount descending purely for stable display; because no FX is applied, the order is not meaningful across currencies (a larger raw number in one currency is not “more” than a smaller one in another). Do not infer relative value from position. |
silkHistory | limit: Int | [HorseSilkHistoryEntry!]! required | Silks this horse has worn across its career, most recent first (POD-83). Mirrors the top-level horseSilkHistory query. |
trainer | — | Trainer | Current trainer (POD-615) — the open horse_trainer_history period (ended_on IS NULL). A horse has at most one current trainer; null when none is recorded. Distinct from the per-race snapshot exposed on Runner.trainer. |
ownership | — | [Ownership!]! required | Current owners (POD-615) — all open horse_ownership_history periods (ended_on IS NULL). Owners may be concurrent (a syndicate), so this is a list; empty when none is recorded. Distinct from the per-race snapshot on Runner.ownership. |
upcomingEntryCount | excludeRaceId: ID | Int! required | Count of this horse’s active future entries in the next 7 days (“runs again”) — excludes finished races and inactive entries. Batched per request, so a race card can show the indicator for every runner in one round trip. > 0 means the horse is declared to run again soon; use entriesForParticipant(futureOnly) for the detail list. Pass excludeRaceId (the race being viewed) so an upcoming race doesn’t count its own entry — keeping the count aligned with the detail list. |