classDiagram direction LR class ForecastController { -ForecastQueryService service +forecast(String routeId) ForecastResponse } class ForecastQueryService { -ForecastRepository repository -Clock clock +latestOf(String routeId) ForecastResponse } class ForecastRepository { <> +findLatest(String routeId) Optional~ForecastResponse~ } class ForecastResponse { -String routeId -String judgedAt -String freshness -List~StopResponse~ stops } class StopResponse { -int stopOrder -Integer percent -String status } ForecastController --> ForecastQueryService ForecastQueryService --> ForecastRepository ForecastRepository ..> ForecastResponse ForecastResponse o-- StopResponse