Corrige aussi un import cassé du commit précédent : screens/__init__.py importe déjà screens.rendering.list_used_forge_characters (nécessaire à screens.ADMIN_ONLY_CHARACTER_SLUGS/la galerie filtrée), mais ce fichier n'avait pas été inclus dans ce commit — screens/ ne s'importait plus en l'état. Corrigé ici, dans le même commit que sa seule vraie utilisation. publish/build_package.py copiait jusqu'ici static/characters/ dans SON INTÉGRALITÉ pour CHAQUE jeu exporté (.zip), sans filtrage — avec la bibliothèque d'animaux (~2,1 Go), ça aurait gonflé chaque export du poids de toute la bibliothèque, même un jeu qui n'utilise aucun animal. screens.list_used_forge_characters(slug) (nouveau) parcourt tous les écrans du jeu (écrans-modèles compris, même patron que full_game_payload.py) et renvoie l'ensemble des personnages Forge réellement référencés. _copy_engine_sources()/_copy_characters() copient désormais : le rangement plat Kenney (petit, comme avant) + toujours static/characters/animals/manifest.json (nécessaire à l'IMPORT de screens/labels/animal_sprite_library.py dans le paquet exporté, sinon le jeu exporté ne démarre plus) + UNIQUEMENT les dossiers animal/variante réellement utilisés par CE jeu. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>