Restored FlyingCardOverlay approach with correct target position.
Tracks discard pile position via onGloballyPositioned and animates
card from hand position to that exact target using coroutine-based
Animatable for smooth spring physics.
Replaced separate overlay approach with FlyingTopCard that renders
directly at the discard pile position. Card animates from off-screen
(bottom for player, top for AI) with spring physics into place.
- Full UNO game logic with AI opponents
- Compose Multiplatform UI with animations
- Shared module (commonMain) with game engine
- Desktop app (Compose Desktop)
- Android app (Compose Multiplatform)
- Web app (Kotlin/Wasm)
- Nix shell for reproducible dev environment