Deferred from the v1 sprint that shipped `from:` / `to:` route input (#5).
The v1 route brief takes a single leg (origin → destination). For real flight planning, a route is often multi-leg (e.g., KCDW → fix → KACK), and the enroute corridor should follow the multi-segment great-circle path through every waypoint.
Acceptance: `Skywatch.brief(route: ["KCDW", "X1", "KACK"], departing_at: ...)` returns a Brief whose enroute slot reflects the union of all leg corridors and whose destination_forecast targets the final waypoint.
Deferred from the v1 sprint that shipped `from:` / `to:` route input (#5).
The v1 route brief takes a single leg (origin → destination). For real flight planning, a route is often multi-leg (e.g., KCDW → fix → KACK), and the enroute corridor should follow the multi-segment great-circle path through every waypoint.
Acceptance: `Skywatch.brief(route: ["KCDW", "X1", "KACK"], departing_at: ...)` returns a Brief whose enroute slot reflects the union of all leg corridors and whose destination_forecast targets the final waypoint.