# Delta 0.1.0-0-pre.9 ## Base Base validée : `0.1.0-0-pre.8`. ## Objectif Stabiliser la source, les namespaces, la résolution et le packaging multi-plateforme des assets avant le premier gameplay visuel complet. ## Source unique Les ressources versionnées restent exclusivement sous : ```text assets/common/ assets/game-reflex-poc/ assets/game-snake-poc/ ``` Aucune crate Rust et aucun module Android ne reçoit de copie source durable. ## game-assets-lib Nouveau crate transverse : ```text crates/common/game-assets-lib ``` Il fournit `AssetResolver` et `AssetError`. Namespaces canoniques : ```text common://... game://... ``` Le resolver rejette les chemins vides, absolus, traversants et les schemes inconnus. ## Ressources de validation Premiers assets réels : ```text assets/common/data/runtime.json assets/game-reflex-poc/data/game.json assets/game-snake-poc/data/game.json ``` Ils servent de contrats de packaging, pas de contenu graphique définitif. ## Desktop ```bash python3 scripts/stage_game_assets.py reflex python3 scripts/stage_game_assets.py snake ``` Le layout généré est : ```text common/ game/ ``` sous `../builds/sasedev-games/assets//` par défaut. ## Android Chaque application utilise la tâche Gradle commune `stageSasedevAssets`. Le package final doit contenir : ```text assets/common/data/runtime.json assets/game/data/game.json ``` sans inclure les assets de l'autre jeu. ## Validation Rust ```bash cargo fmt --all cargo fmt --all -- --check python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android deltas history cargo check --workspace cargo clippy --workspace --all-targets --all-features -- -D warnings cargo test -p game-assets-lib --all-targets --all-features ``` ## Validation staging Desktop ```bash python3 scripts/stage_game_assets.py reflex python3 scripts/stage_game_assets.py snake test -f ../builds/sasedev-games/assets/game-reflex-poc/common/data/runtime.json test -f ../builds/sasedev-games/assets/game-reflex-poc/game/data/game.json test -f ../builds/sasedev-games/assets/game-snake-poc/common/data/runtime.json test -f ../builds/sasedev-games/assets/game-snake-poc/game/data/game.json ``` ## Validation Android Les bibliothèques natives de `0-pre.8` peuvent être réutilisées car ce delta ne modifie pas le code natif Android. ```bash cd Android gradle :game-reflex-poc:assembleDebug gradle :game-snake-poc:assembleDebug cd .. ``` Vérifier le contenu : ```bash unzip -l Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk | grep 'assets/common/data/runtime.json' unzip -l Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk | grep 'assets/game/data/game.json' unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep 'assets/common/data/runtime.json' unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep 'assets/game/data/game.json' ``` Vérifier aussi qu'aucun package n'embarque le namespace source de l'autre jeu : ```bash ! unzip -l Android/game-reflex-poc/build/outputs/apk/debug/game-reflex-poc-debug.apk | grep -q 'game-snake-poc' ! unzip -l Android/game-snake-poc/build/outputs/apk/debug/game-snake-poc-debug.apk | grep -q 'game-reflex-poc' ``` ## Règle de transition Si ces gates sont propres, passer automatiquement à `0.1.0-0-pre.10` pour rendre le POC Reflex réellement jouable Desktop + Android. En cas d'échec imputable au projet, produire `0.1.0-0-pre.9.fix.1`.