Extends the AdminBridge GameScript JSON channel (the same relay used by
list_vehicles/get_timetable) with station support:
- list_stations(): enumerate stations, fire-and-forget like list_vehicles().
- get_station(): authoritative per-cargo snapshot of a station's live state,
with both the real-time waiting amount (GSStation.GetCargoWaiting) and the
planned cargodist link-graph flow (GetCargoPlanned), plus rating.
- get_station_cargo(): break one cargo type down by source station and by
next hop (the cargodist routing destination) for both waiting and planned
amounts, with optional from_station/via_station filters.
All three use stock GameScript API (no server patch, unlike timetables).
Refactors the shared GS request/reply correlation out of get_timetable and
get_station into a _gs_query() helper. Companion handlers must be added to
the server-side AdminBridge GameScript (not tracked in this repo).
Includes unit + e2e tests, a worked demo in main_admin.py, and protocol docs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Admin Network has no native packet for listing individual vehicles,
so list_vehicles() sends a "list_vehicles" command over the existing
GameScript JSON channel and relies on a companion server-side script to
reply with vehicle data via ServerGamescript. Requires subscribing to
Gamescript updates (documented in docs/PROTOCOL.md) to receive the reply.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>