First park-local day with any recorded history for this entity, or null when nothing has been archived yet. May legitimately be earlier than any individual kind's first, since the two watermarks are written by different passes over different windows.
Keyed by LIVE-DATA PATH (status, queue.STANDBY, showtimes, ...), not by the internal kind name, so a key matches straight against what GET /v1/entity/{id}/live and GET /v1/entity/{id}/history return. A kind the entity never reported is ABSENT here and absent from every /history row — there is no zero-span entry for it. See last for why a span ending in the past does NOT mean the field stopped being reported: the archive lags live data by a day or two, so an actively published field ends in the past too. Every span here is archive-only; retrievableThrough is the entity-wide answer to how recent a day you can actually ask for.
The newest last across kinds — the most recent park-local day we hold anything at all for this entity — or null when nothing is recorded. Like the per-field last, this tracks the ARCHIVE and lags live data by a day or two, so it sits in the past for an entity reporting normally.
The newest park-local day GET /v1/entity/{id}/history and .../history/daily could return data for this entity — what you can ASK FOR, as opposed to what has been filed. Normally TODAY for an entity still reporting, because those endpoints serve the live shelf as well as the archive, and it therefore sits AHEAD of lastRecordedAt by the compaction lag (a day or two) for a healthy entity. That gap is the whole point of this field: lastRecordedAt and every per-field last describe the ARCHIVE only, and reading them as capability is what makes coverage look as though it has stopped a couple of days short. It is the LATER of lastRecordedAt and the newest day the live shelf still SERVES — so an entity that stopped reporting long ago reports its archive day here, NOT today, and the field never promises data that is not there. The live shelf has a bounded depth, so a day is reported here only if one of those endpoints can actually return it: an entity whose last reading predates the shelf falls back to its archive day rather than naming the day that reading was taken. Null only when we hold nothing for this entity in either place. A request for a range up to this day can still be narrowed by your tier's history window, which bounds how far BACK you may ask, never how recent.
IANA timezone the park-local days are resolved in.
What history is actually held for one entity, broken down per live-data field. Two different questions, answered separately:
firstRecordedAt/lastRecordedAtand the per-field spans describe the ARCHIVE, whileretrievableThroughis the newest day a history call could return for this entity — which is normally today, and normally a day or two AHEAD oflastRecordedAt. An entity with nothing recorded is a 200 with kinds: {} and every day null, never a 404: "we hold nothing for this entity" is a real, actionable answer and a different claim from "this entity does not exist".