Pa touché est une consultation, pas un mode de jeu : cinq plantes triées par gravité, dépliables, sans chrono, sans score, sans épreuve. Le module affiche lui-même qu'il n'a pas encore été relu par une personne compétente et dit que cette relecture est la contribution la plus utile au projet. Ranmasé : import dynamique, game.destroy(true) au démontage, communication par événements — la scène ne touche aucun état Svelte et n'émet que sur changement, jamais par frame. Miroir DOM sémantique, canvas aria-hidden, jouable au clavier. Écran de chargement designé. Game design guidé par la pédagogie : laisser passer une plante dangereuse ne coûte rien (c'est le bon geste), ramasser le mauvais fruit coûte 2 points et pas une vie (il n'y a pas d'erreur à cueillir), une plante dangereuse sur cinq. Budgets mesurés et consignés dans l'ADR 0002 - shell hors Phaser : 78 Ko gzip (budget 170) - Phaser seul : 348 Ko gzip, sous le seuil de réexamen de 450 - absent du chemin critique de l'accueil, vérifié sur le HTML prérendu - build total 1,4 Mo Une prescription de l'ADR 0002 était fausse : l'option `resolution` n'existe pas dans Phaser 4 (pixelRatio y est en lecture seule). Le plafonnement passe par un tampon de rendu fixe 480×640 étiré en CSS — plafond dur plutôt que relatif. L'ADR est corrigé, pas contourné. Reste non mesuré : les 30 fps sur Mali-G52, qui demandent un appareil réel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
44 lines
1.5 KiB
JSON
44 lines
1.5 KiB
JSON
{
|
|
"name": "ki-fwi",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"description": "KI FWI SA YÉ ? — jeu éducatif libre : reconnaître les fruits, les arbres et les plantes des Antilles.",
|
|
"license": "AGPL-3.0-or-later",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"scripts": {
|
|
"verify:taxa": "node tools/data/verify-taxa.mjs",
|
|
"ingest:commons": "node tools/data/ingest-commons.mjs",
|
|
"build:dataset": "node tools/data/build-dataset.mjs",
|
|
"check:audio": "node tools/data/check-audio.mjs",
|
|
"validate:data": "node tools/data/validate.mjs",
|
|
"build:credits": "node tools/data/build-credits.mjs",
|
|
"test:porte": "node tools/data/test-porte.mjs",
|
|
"rapport:manques": "node tools/data/rapport-manques.mjs",
|
|
"dev": "vite dev",
|
|
"build": "vite build && node tools/build/sitemap.mjs",
|
|
"preview": "vite preview",
|
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:i18n": "node tools/data/check-i18n.mjs",
|
|
"fetch:medias": "node tools/data/fetch-medias.mjs",
|
|
"verify:seeds": "python3 tools/assets/comfyui_client.py --verifier"
|
|
},
|
|
"devDependencies": {
|
|
"@fontsource/archivo": "^5.3.0",
|
|
"@fontsource/inter": "^5.3.0",
|
|
"@sveltejs/adapter-static": "^3.0.10",
|
|
"@sveltejs/kit": "^2.70.1",
|
|
"@sveltejs/vite-plugin-svelte": "^7.2.0",
|
|
"ajv": "^8.17.1",
|
|
"ajv-formats": "^3.0.1",
|
|
"phaser": "^4.2.1",
|
|
"svelte": "^5.56.8",
|
|
"svelte-check": "^4.7.4",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^8.1.5",
|
|
"vite-plugin-pwa": "^1.3.0"
|
|
}
|
|
}
|