def quest_dialogues_total_reward(dialogues): """Somme des récompenses de toutes les questions ("❓ Question", voir sanitize_quest_dialogues.py), TOUTES colonnes/statuts confondus — une quête n'a qu'UNE SEULE récompense totale (quest["recompense_score"]), jamais une par statut. Utilisée pour empêcher d'enregistrer plus de points répartis entre les questions que la quête n'en offre (voir routes/quests/quest_dialogues.py et quest_update.py).""" total = 0 for lines in (dialogues or {}).values(): if not isinstance(lines, list): continue for line in lines: if isinstance(line, dict) and line.get("type") == "question": total += line.get("reward_amount", 0) or 0 return total