Legacy shortest-route: • POST /api/shortest_route (or /api/shortest_distance) • GET /api/shortest_route_status/ Route optimiser: • POST /api/route_optimise {"hub_id": N, "supplier_id": M} • GET /api/route_optimise_status/ Trip fill (under-utilised vehicle → what else can it pick up): • POST /api/trip_fill_suggestions {"trip_id": "...", "vehicle_capacity": N, "cost_per_km": N, "pickups": [{"pickup_number": "PI-...", "hub_id": N}]} Jobs: • GET /api/jobs?job_type=tsp|route_opt&status=PENDING,RUNNING&hub_id=N • POST /api/jobs///cancel (PENDING only) • POST /api/jobs///recalculate (ERROR/COMPLETE/CANCELLED)