Add ApiConfig, AuthTokenHolder singleton, expect/actual HttpClient
engine factories (CIO for Android/Desktop, Darwin for iOS), and
ApiService with four GET endpoints. Bearer token from AuthTokenHolder
is injected as Authorization header on each request.
Adjusted for Ktor 3.5.1: HttpClientEngineFactory lives in
io.ktor.client.engine; the timeout plugin is HttpTimeout (package
io.ktor.client.plugins), not HttpTimeoutPlugin. Tests wrap suspend
calls in runTest and assert request URLs without a trailing '?'.
10-task TDD plan covering: project scaffolding, data models, networking
(Ktor), caching, filtering logic, viewmodels, platform OAuth, UI theme
and components, screens, and app root with entry points for Android,
iOS, and Desktop.
Design for porting the MyIce Flutter app to Kotlin Multiplatform
(Android + iOS + Desktop) using Compose Multiplatform. Mirrors the
3-screen structure (Login, Schedule, Event Detail) and 4 GET endpoints
with Bearer auth via Infomaniak OIDC. Adds a type filter to surface
practices alongside games.