diff --git a/Architecture%2FCharacter-Persistence.-.md b/Architecture%2FCharacter-Persistence.-.md new file mode 100644 index 0000000..59e4cfa --- /dev/null +++ b/Architecture%2FCharacter-Persistence.-.md @@ -0,0 +1,8 @@ +# Character Persistence + +`character_builder.py` définit `CharacterBuilder`, un simple dispatcher : ses attributs de classe `save_character_impl` / `load_character_impl` sont câblés à l'import selon la variable d'environnement `ELIRON_BUILDER` : + +- Absente ou différente de `"pydantic"` → implémentation JSON manuelle du module (`save_character`/`load_character` locaux). +- `ELIRON_BUILDER=pydantic` **et** `pydantic` réellement importable (détection douce via `importlib.util.find_spec`, pas de dépendance dure) → `pydantic_character_builder.py`, qui sérialise via un modèle `CharacterModel`. + +Ajouter un troisième backend = implémenter `save_character(character) -> str` / `load_character(name) -> BaseMob | None` avec la même signature, puis ajouter une branche dans ce câblage.