statshawk
ReferenceData modelPersons

PersonOverview

The composed player overview — everything a consumer popup or a statshawk-web public marketing page needs to render one player, in a single cacheable read: identity (incl. the optional, source-attributed bio enrichment — position/height/weight — which is never load-bearing: a consumer renders a likeness-free fallback from name/team/position/sport), the current team, the phases/measures the person actually recorded that season, the materialized season aggregate, and a context-rich game log capped to the most recent [`PERSON_OVERVIEW_GAME_LOG_CAP`] entries.

object
capabilitiesPhaseCapabilities[]required

The phases this person actually recorded this season, each with its full registry measure inventory — the same presence-filtered projection `/capabilities` serves. Empty when the person has no data in scope.

PhaseCapabilities
measure_notes
objectoptional
measures
string[]
phase
string
competitionCompetitionIdrequired

The competition the overview is scoped to.

game_logPersonGameLogEntry[]required

The context-rich game log for `(competition, season)`, most recent LAST (the same order as `/game-log`), capped to the most recent [`PERSON_OVERVIEW_GAME_LOG_CAP`] (30) entries.

PersonGameLogEntry
event
null | EventSummaryoptional
home
booleannulloptional
kickoff
string,null<date-time>optional
opponent
null | TeamRefoptional
status
null | ContestStatusoptional
team
null | TeamRefoptional
personPersonrequired

The assembled person profile. Every bio enrichment field is optional.

Person
external_ids
objectnulloptional
seasonSeasonYearrequired

The season actually served (the requested one, or the resolved default when the request omitted `season`).

SeasonYear
integer<int32>
season_statsSeasonStatsViewrequired

The materialized season aggregate, phase-namespaced — the same shape `/stats` serves (`{}` when the person has no data this season).

sportSportIdrequired

The competition's sport — whose phase registry shapes the stats below.

SportId
basketballfootballbaseballhockeysoccergolftennisracingmmalacrosserugbyvolleyballaustralian_footballrugby_leaguewater_polofield_hockey
teamone ofoptional
one of
null