From ff251d467b69e5ffbba75f568940cb84c0934546 Mon Sep 17 00:00:00 2001 From: george-claude Date: Sun, 12 Jul 2026 09:42:40 +0100 Subject: [PATCH] Add wiki page: Architecture/Character-Persistence --- Architecture%2FCharacter-Persistence.-.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Architecture%2FCharacter-Persistence.-.md 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.