Ingest & deliveries
Composed from
GET /corridors,
GET /schedule?shape=matrix (for the stream list),
GET /ingest-batches, GET /corridors/{id}/surveys
and one GET /ingest-batches/{id} per batch that holds refused
rows. There is no one-shot deliveries endpoint, so figures may be seconds
apart and each panel fails on its own and says so — a panel that could
not load is never drawn as "nothing here".