Every recorded change in the range, flattened to one stream, plus the state before the first of them.
A park answers one day per call; a single entity answers up to 31 days. The caller does not have to know which cap applies: ask for what you want, and the API answers or says the range is too long.
Iterate the result for the rows. Its opening is each entity's state at the
start of the range, which is what a day has to be rebuilt from. See
HistoryChanges.
Every recorded change in the range: GET /entity/{id}/history.
Which days and which live-data fields are held.
One row per park-local day: GET /entity/{id}/history/daily.
Every daily row in the range, paged automatically, yielded as it arrives.
Given a park id this uses the park call, which answers every entity in the park in one request. Nothing accumulates, so the only thing that grows is whatever the caller writes the rows to.
The dates a backfill should run between: one call, and the same three fields whether this id is a park or a single ride.
History for one entity id, reached as
tp.entity(id).history.