PLAYER_SHARED = "__shared__" def resolve_row_player_key(definition, player_id): """Détermine le player_id à utiliser réellement pour lire/écrire les lignes de cet objet : celui du joueur (objet per_player=1, le cas par défaut — voir create_definition.py), ou toujours PLAYER_SHARED (objet explicitement partagé, per_player=0, ex. un catalogue commun à tous les joueurs). Contrairement à une variable globale (db/global_vars/ resolve_player_key.py), pas de repli implicite sur la ligne "modèle" : un objet per_player démarre VIDE pour chaque nouveau joueur, il n'y a pas de valeur par défaut unique à copier pour une LISTE de lignes.""" per_player = definition.get("per_player", 1) return player_id if per_player else PLAYER_SHARED