# Runners Desktop de développement ## Objectif Chaque jeu reste d'abord une crate `lib` contenant son gameplay et ses états. Une crate `bin` Desktop séparée consomme cette bibliothèque afin de lancer rapidement le jeu sur la machine de développement sans déployer systématiquement sur un émulateur ou un téléphone Android. ## Arborescence ```text crates/ ├── games/ │ ├── game-reflex-poc/ │ └── game-snake-poc/ └── apps/ ├── game-reflex-poc-desktop/ └── game-snake-poc-desktop/ ``` La crate binaire ne duplique ni règles ni état de jeu. Elle fournit uniquement l'entrée exécutable et, à terme, la composition Desktop du moteur et des services plateforme. ## Responsabilités La crate lib du jeu porte gameplay, règles, état, progression et interfaces nécessaires. Le runner Desktop porte `main`, initialisation Desktop, sélection de l'implémentation plateforme et lancement du runtime SDL3. ## Limite Le runner Desktop ne remplace pas les tests Android. Lifecycle, JNI, tactile réel, Ads, Billing, haptique, permissions et APIs Play nécessitent une validation sur la cible Android. ## Baseline `0.1.0-0-pre.3` Les deux runners utilisent désormais le `FixedStepRunner` commun et des `InputState` logiques pour exercer la première boucle moteur indépendante de SDL. Ils déclarent explicitement la monétisation désactivée pour leur smoke Desktop. La traduction clavier/souris vers `InputState`, la fenêtre et le rendu SDL3 restent planifiés pour `0-pre.4`. La possibilité d'une variante Desktop Tauri est documentée séparément dans `002-DESKTOP_DISTRIBUTIONS.md` et reste optionnelle.