{
  "config": {
    "step": {
      "user": {
        "title": "Bienvenue sur TaskMate !",
        "description": "Configurez votre système de gestion des tâches familiales. Vous pouvez personnaliser le nom de la monnaie de points que les enfants gagneront.",
        "data": {
          "points_name": "Nom de la monnaie de points (ex: Étoiles, Pièces, Jetons)",
          "points_icon": "Icône des points"
        }
      }
    },
    "error": {
      "name_required": "Le nom est obligatoire"
    },
    "abort": {
      "already_configured": "TaskMate est déjà configuré"
    }
  },
  "selector": {
    "chore_action": {
      "options": {
        "save": "Enregistrer les modifications",
        "re_enable": "Réactiver la corvée",
        "disable": "Désactiver la corvée",
        "delete": "Supprimer cette corvée"
      }
    },
    "reward_action": {
      "options": {
        "save": "Enregistrer les modifications",
        "delete": "Supprimer la récompense"
      }
    },
    "time_category": {
      "options": {
        "morning": "Matin",
        "afternoon": "Après-midi",
        "evening": "Soirée",
        "night": "Nuit",
        "anytime": "N'importe quand"
      }
    },
    "schedule_mode": {
      "options": {
        "specific_days": "Jours spécifiques de la semaine",
        "recurring": "Récurrent (tous les N jours/semaines/mois)",
        "one_shot": "Tâche unique (un seul jour)"
      }
    },
    "due_days_option": {
      "options": {
        "monday": "Lundi",
        "tuesday": "Mardi",
        "wednesday": "Mercredi",
        "thursday": "Jeudi",
        "friday": "Vendredi",
        "saturday": "Samedi",
        "sunday": "Dimanche"
      }
    },
    "recurrence": {
      "options": {
        "every_2_days": "Tous les 2 jours",
        "weekly": "Hebdomadaire",
        "every_2_weeks": "Toutes les 2 semaines",
        "monthly": "Mensuel",
        "every_3_months": "Tous les 3 mois",
        "every_6_months": "Tous les 6 mois"
      }
    },
    "recurrence_day_option": {
      "options": {
        "monday": "Lundi",
        "tuesday": "Mardi",
        "wednesday": "Mercredi",
        "thursday": "Jeudi",
        "friday": "Vendredi",
        "saturday": "Samedi",
        "sunday": "Dimanche",
        "any_day": "N'importe quel jour"
      }
    },
    "first_occurrence_mode": {
      "options": {
        "available_immediately": "Disponible immédiatement",
        "wait_for_first_occurrence": "Attendre la première occurrence prévue"
      }
    },
    "streak_reset_mode": {
      "options": {
        "reset": "Réinitialiser — la série retombe à 0 en cas d'oubli",
        "pause": "Pause — la série est préservée jusqu'à la prochaine exécution"
      }
    },
    "visibility_operator": {
      "options": {
        "none": "Aucun filtre — Toujours afficher la corvée",
        "equals": "Égale — Afficher quand l'état correspond exactement",
        "not_equals": "Non égale — Afficher quand l'état ne correspond pas",
        "gte": "Supérieur ou égal (≥) — Afficher quand la valeur est ≥ cible",
        "lte": "Inférieur ou égal (≤) — Afficher quand la valeur est ≤ cible",
        "gt": "Supérieur (>) — Afficher quand la valeur est > cible",
        "lt": "Inférieur (<) — Afficher quand la valeur est < cible"
      }
    },
    "assignment_mode": {
      "options": {
        "everyone": "Tout le monde — chaque enfant assigné voit la tâche",
        "alternating": "Alternance — rotation entre les enfants assignés, un par jour",
        "random": "Aléatoire — un enfant assigné choisi au hasard chaque jour",
        "balanced": "Équilibré — répartit les tâches équilibrées du jour équitablement entre les enfants assignés",
        "first_come": "Premier arrivé, premier servi — le premier enfant à la terminer gagne ; masquée pour les autres",
        "unassigned": "Non attribué — aucun enfant ne voit cette tâche"
      }
    },
    "task_group_policy": {
      "options": {
        "sticky": "Sticky — même enfant pour toutes les tâches du groupe",
        "spread": "Spread — enfants différents dans le groupe aujourd’hui"
      }
    },
    "task_group_action": {
      "options": {
        "save": "Enregistrer",
        "delete": "Supprimer le groupe"
      }
    }
  },
  "services": {
    "complete_chore": {
      "name": "Terminer une corvée",
      "description": "Marquer une corvée comme terminée par un enfant",
      "fields": {
        "chore_id": {
          "name": "ID de la corvée",
          "description": "L'identifiant de la corvée à terminer"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant effectuant la corvée"
        }
      }
    },
    "complete_bonus_subtask": {
      "name": "Terminer une sous-tâche bonus",
      "description": "Terminer une sous-tâche bonus une fois la corvée parente terminée",
      "fields": {
        "chore_id": {
          "name": "ID de la corvée",
          "description": "L'identifiant de la corvée parente"
        },
        "bonus_subtask_id": {
          "name": "ID de la sous-tâche bonus",
          "description": "L'identifiant de la sous-tâche bonus à terminer"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant effectuant la sous-tâche bonus"
        }
      }
    },
    "approve_chore": {
      "name": "Approuver une corvée",
      "description": "Approuver une corvée terminée et attribuer les points",
      "fields": {
        "completion_id": {
          "name": "ID de complétion",
          "description": "L'identifiant de l'exécution à approuver"
        }
      }
    },
    "approve_all_chores": {
      "name": "Approuver toutes les tâches",
      "description": "Approuver toutes les tâches terminées en attente (ou un ensemble précis) et attribuer les points",
      "fields": {
        "completion_ids": {
          "name": "Identifiants de complétion",
          "description": "Identifiants de complétion à approuver ; laisser vide pour tout approuver"
        }
      }
    },
    "reject_chore": {
      "name": "Rejeter une corvée",
      "description": "Rejeter une corvée terminée",
      "fields": {
        "completion_id": {
          "name": "ID de complétion",
          "description": "L'identifiant de l'exécution à rejeter"
        }
      }
    },
    "undo_chore_approval": {
      "name": "Annuler l'approbation d'une tâche",
      "description": "Annuler l'approbation accidentelle d'une tâche — retire les points attribués et remet la réalisation en attente afin qu'elle puisse être approuvée à nouveau.",
      "fields": {
        "completion_id": {
          "name": "ID de réalisation",
          "description": "L'ID de la réalisation de tâche approuvée à remettre en attente"
        }
      }
    },
    "undo_transaction": {
      "name": "Annuler une transaction",
      "description": "Annuler une transaction de points via son ID — pénalités, bonus, ajustements manuels (ajout/retrait) et cadeaux (les deux volets). Les transactions automatiques (bonus de week-end/série/semaine parfaite, mouvements de cagnotte, dépréciation, intérêts) ne peuvent pas être annulées.",
      "fields": {
        "transaction_id": {
          "name": "ID de transaction",
          "description": "L'ID de la transaction de points à annuler"
        }
      }
    },
    "claim_reward": {
      "name": "Réclamer une récompense",
      "description": "L'enfant réclame une récompense en utilisant ses points",
      "fields": {
        "reward_id": {
          "name": "ID de la récompense",
          "description": "L'identifiant de la récompense à réclamer"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant réclamant la récompense"
        }
      }
    },
    "approve_reward": {
      "name": "Approuver une récompense",
      "description": "Approuver une demande de récompense",
      "fields": {
        "claim_id": {
          "name": "ID de la demande",
          "description": "L'identifiant de la demande de récompense à approuver"
        }
      }
    },
    "allocate_points_to_pool": {
      "name": "Allouer des points à la cagnotte",
      "description": "Déplacer des points du solde disponible d'un enfant vers la cagnotte d'une récompense (verrouillée).",
      "fields": {
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant effectuant l'allocation"
        },
        "reward_id": {
          "name": "ID de la récompense",
          "description": "L'identifiant de la cagnotte de récompense où déposer les points"
        },
        "points": {
          "name": "Points",
          "description": "Nombre de points à allouer (limité par la capacité de la cagnotte et le solde disponible)"
        }
      }
    },
    "add_points": {
      "name": "Ajouter des points",
      "description": "Ajouter des points bonus à un enfant",
      "fields": {
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant à qui ajouter des points"
        },
        "points": {
          "name": "Points",
          "description": "Le nombre de points à ajouter"
        },
        "reason": {
          "name": "Raison",
          "description": "Raison optionnelle pour le bonus"
        }
      }
    },
    "remove_points": {
      "name": "Retirer des points",
      "description": "Retirer des points à un enfant (pénalité)",
      "fields": {
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant à qui retirer des points"
        },
        "points": {
          "name": "Points",
          "description": "Le nombre de points à retirer"
        },
        "reason": {
          "name": "Raison",
          "description": "Raison optionnelle pour la pénalité"
        }
      }
    },
    "reject_reward": {
      "name": "Rejeter une récompense",
      "description": "Rejeter une demande de récompense",
      "fields": {
        "claim_id": {
          "name": "ID de la demande",
          "description": "L'identifiant de la demande à rejeter"
        }
      }
    },
    "preview_sound": {
      "name": "Aperçu du son",
      "description": "Tester un effet sonore de complétion dans le navigateur",
      "fields": {
        "sound": {
          "name": "Son",
          "description": "Le son à tester"
        }
      }
    },
    "set_chore_order": {
      "name": "Définir l'ordre des corvées",
      "description": "Définir l'ordre d'affichage des corvées pour un enfant",
      "fields": {
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant"
        },
        "chore_order": {
          "name": "Ordre des corvées",
          "description": "Liste ordonnée des IDs de corvées"
        }
      }
    },
    "add_penalty": {
      "name": "Ajouter une pénalité",
      "description": "Créer une nouvelle définition de pénalité",
      "fields": {
        "name": {
          "name": "Nom",
          "description": "Le nom de la pénalité"
        },
        "points": {
          "name": "Points",
          "description": "Le nombre de points à déduire"
        },
        "description": {
          "name": "Description",
          "description": "Description optionnelle"
        },
        "icon": {
          "name": "Icône",
          "description": "Icône MDI pour la pénalité"
        },
        "assigned_to": {
          "name": "Assignée à",
          "description": "Liste des IDs d'enfants concernés"
        }
      }
    },
    "update_penalty": {
      "name": "Mettre à jour la pénalité",
      "description": "Modifier une définition de pénalité existante",
      "fields": {
        "penalty_id": {
          "name": "ID de pénalité",
          "description": "L'identifiant de la pénalité à modifier"
        },
        "name": {
          "name": "Nom",
          "description": "Nouveau nom"
        },
        "points": {
          "name": "Points",
          "description": "Nouvelle valeur de points"
        },
        "description": {
          "name": "Description",
          "description": "Nouvelle description"
        },
        "icon": {
          "name": "Icône",
          "description": "Nouvelle icône"
        },
        "assigned_to": {
          "name": "Assignée à",
          "description": "Nouvelle liste d'identifiants d'enfants"
        }
      }
    },
    "remove_penalty": {
      "name": "Supprimer la pénalité",
      "description": "Supprimer une définition de pénalité",
      "fields": {
        "penalty_id": {
          "name": "ID de pénalité",
          "description": "L'identifiant de la pénalité à supprimer"
        }
      }
    },
    "apply_penalty": {
      "name": "Appliquer une pénalité",
      "description": "Appliquer une pénalité à un enfant, déduisant ses points",
      "fields": {
        "penalty_id": {
          "name": "ID de pénalité",
          "description": "L'identifiant de la pénalité à appliquer"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant à pénaliser"
        }
      }
    },
    "add_bonus": {
      "name": "Ajouter un bonus",
      "description": "Créer une nouvelle définition de bonus",
      "fields": {
        "name": {
          "name": "Nom",
          "description": "Le nom du bonus"
        },
        "points": {
          "name": "Points",
          "description": "Le nombre de points à attribuer lors de l'application"
        },
        "description": {
          "name": "Description",
          "description": "Description optionnelle du bonus"
        },
        "icon": {
          "name": "Icône",
          "description": "Icône MDI pour le bonus"
        },
        "assigned_to": {
          "name": "Assigné à",
          "description": "Liste des identifiants d'enfants auxquels ce bonus s'applique"
        }
      }
    },
    "update_bonus": {
      "name": "Mettre à jour le bonus",
      "description": "Mettre à jour une définition de bonus existante",
      "fields": {
        "bonus_id": {
          "name": "ID de bonus",
          "description": "L'identifiant du bonus à mettre à jour"
        },
        "name": {
          "name": "Nom",
          "description": "Nouveau nom pour le bonus"
        },
        "points": {
          "name": "Points",
          "description": "Nouvelle valeur de points"
        },
        "description": {
          "name": "Description",
          "description": "Nouvelle description"
        },
        "icon": {
          "name": "Icône",
          "description": "Nouvelle icône"
        },
        "assigned_to": {
          "name": "Assigné à",
          "description": "Nouvelle liste d'identifiants d'enfants"
        }
      }
    },
    "remove_bonus": {
      "name": "Supprimer le bonus",
      "description": "Supprimer une définition de bonus",
      "fields": {
        "bonus_id": {
          "name": "ID de bonus",
          "description": "L'identifiant du bonus à supprimer"
        }
      }
    },
    "apply_bonus": {
      "name": "Appliquer un bonus",
      "description": "Appliquer un bonus à un enfant, attribuant des points",
      "fields": {
        "bonus_id": {
          "name": "ID de bonus",
          "description": "L'identifiant du bonus à appliquer"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant à qui attribuer le bonus"
        }
      }
    },
    "add_chore": {
      "name": "Ajouter une corvée",
      "description": "Créer une nouvelle corvée dynamiquement, généralement depuis une automatisation ou un script",
      "fields": {
        "name": {
          "name": "Nom",
          "description": "Le nom de la corvée"
        },
        "description": {
          "name": "Description",
          "description": "Description optionnelle de la corvée"
        },
        "points": {
          "name": "Points",
          "description": "Points attribués à l'achèvement de cette corvée"
        },
        "assigned_to": {
          "name": "Assignée à",
          "description": "Liste des IDs d'enfants à qui assigner cette corvée. Laisser vide pour l'assigner à tous les enfants"
        },
        "time_category": {
          "name": "Catégorie horaire",
          "description": "Quand cette corvée doit être effectuée : morning, afternoon, evening, night ou anytime"
        },
        "one_shot": {
          "name": "Unique",
          "description": "Si vrai, c'est une corvée unique qui expire après exécution ou à la fin de la journée"
        },
        "requires_approval": {
          "name": "Nécessite approbation",
          "description": "Si vrai, un parent doit approuver l'exécution avant que les points soient attribués"
        }
      }
    },
    "skip_chore": {
      "name": "Skip Chore",
      "description": "Advance today's rotation past the current assignee. Ephemeral — tomorrow's rotation resumes as normal.",
      "fields": {
        "chore_id": {
          "name": "Chore ID",
          "description": "The ID of the chore to skip"
        }
      }
    },
    "set_chore_manual_start": {
      "name": "Set Manual Start Child",
      "description": "Set which child starts a rotating chore. For alternating mode this reorders the pool; for random/balanced it only overrides today's assignee.",
      "fields": {
        "chore_id": {
          "name": "Chore ID",
          "description": "The ID of the chore to update"
        },
        "child_id": {
          "name": "Child ID",
          "description": "The ID of the child who should start the rotation"
        }
      }
    },
    "add_task_group": {
      "name": "Add Task Group",
      "description": "Create a task group (sticky = same child, spread = different children).",
      "fields": {
        "name": {
          "name": "Name",
          "description": "Display name for the group"
        },
        "policy": {
          "name": "Policy",
          "description": "sticky (same child) or spread (different children)"
        },
        "chore_ids": {
          "name": "Chore IDs",
          "description": "List of chore IDs in the group. For sticky, the first chore is the leader."
        }
      }
    },
    "update_task_group": {
      "name": "Update Task Group",
      "description": "Update a task group's name, policy, or membership.",
      "fields": {
        "group_id": {
          "name": "Group ID",
          "description": "The ID of the group to update"
        },
        "name": {
          "name": "Name",
          "description": "New display name"
        },
        "policy": {
          "name": "Policy",
          "description": "New policy (sticky or spread)"
        },
        "chore_ids": {
          "name": "Chore IDs",
          "description": "Replacement chore ID list. For sticky, the first chore is the leader."
        }
      }
    },
    "remove_task_group": {
      "name": "Remove Task Group",
      "description": "Delete a task group. Member chores are not affected.",
      "fields": {
        "group_id": {
          "name": "Group ID",
          "description": "The ID of the group to delete"
        }
      }
    },
    "start_timed_task": {
      "name": "Démarrer une tâche chronométrée",
      "description": "Démarrer ou reprendre le minuteur d'une tâche chronométrée",
      "fields": {
        "chore_id": {
          "name": "ID de la corvée",
          "description": "L'identifiant de la corvée chronométrée"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant démarrant le minuteur"
        }
      }
    },
    "pause_timed_task": {
      "name": "Mettre en pause une tâche chronométrée",
      "description": "Mettre en pause le minuteur d'une tâche chronométrée en cours",
      "fields": {
        "chore_id": {
          "name": "ID de la corvée",
          "description": "L'identifiant de la corvée chronométrée"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant mettant le minuteur en pause"
        }
      }
    },
    "stop_timed_task": {
      "name": "Arrêter une tâche chronométrée",
      "description": "Arrêter le minuteur d'une tâche chronométrée et la soumettre pour approbation",
      "fields": {
        "chore_id": {
          "name": "ID de la corvée",
          "description": "L'identifiant de la corvée chronométrée"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant arrêtant le minuteur"
        }
      }
    },
    "add_badge": {
      "name": "Ajouter un badge",
      "description": "Créer un badge personnalisé.",
      "fields": {
        "name": {
          "name": "Nom",
          "description": "Le nom affiché du badge"
        },
        "description": {
          "name": "Description",
          "description": "Description de la façon d'obtenir le badge"
        },
        "icon": {
          "name": "Icône",
          "description": "Icône du badge (ex. mdi:beach)"
        },
        "tier": {
          "name": "Niveau",
          "description": "Niveau du badge : bronze, argent, or ou platine"
        },
        "point_bonus": {
          "name": "Bonus de points",
          "description": "Points crédités à l'enfant lorsque le badge est obtenu"
        },
        "criteria": {
          "name": "Critères",
          "description": "Liste de dictionnaires metric / operator / value. Vide = attribution manuelle uniquement."
        },
        "assigned_to": {
          "name": "Attribué à",
          "description": "Liste d'identifiants d'enfants (vide = tous)"
        },
        "notify_on_earn": {
          "name": "Notifier à l'obtention",
          "description": "Envoyer une notification lorsque le badge est obtenu"
        }
      }
    },
    "update_badge": {
      "name": "Mettre à jour un badge",
      "description": "Mettre à jour un badge existant. Pour les badges intégrés, seuls point_bonus, tier, assigned_to, enabled et notify_on_earn sont modifiables.",
      "fields": {
        "badge_id": {
          "name": "ID du badge",
          "description": "L'identifiant du badge à mettre à jour"
        },
        "name": {
          "name": "Nom",
          "description": "Nouveau nom affiché du badge"
        },
        "description": {
          "name": "Description",
          "description": "Nouvelle description du badge"
        },
        "icon": {
          "name": "Icône",
          "description": "Nouvelle icône du badge"
        },
        "tier": {
          "name": "Niveau",
          "description": "Niveau du badge : bronze, argent, or ou platine"
        },
        "point_bonus": {
          "name": "Bonus de points",
          "description": "Points crédités à l'enfant lorsque le badge est obtenu"
        },
        "criteria": {
          "name": "Critères",
          "description": "Liste de dictionnaires metric / operator / value. Vide = attribution manuelle uniquement."
        },
        "assigned_to": {
          "name": "Attribué à",
          "description": "Liste d'identifiants d'enfants (vide = tous)"
        },
        "enabled": {
          "name": "Activé",
          "description": "Indique si le badge est actif"
        },
        "notify_on_earn": {
          "name": "Notifier à l'obtention",
          "description": "Envoyer une notification lorsque le badge est obtenu"
        }
      }
    },
    "remove_badge": {
      "name": "Supprimer un badge",
      "description": "Supprimer un badge personnalisé. Les badges intégrés ne peuvent pas être supprimés.",
      "fields": {
        "badge_id": {
          "name": "ID du badge",
          "description": "L'identifiant du badge à supprimer"
        }
      }
    },
    "award_badge_manually": {
      "name": "Attribuer un badge manuellement",
      "description": "Attribuer manuellement un badge à un enfant.",
      "fields": {
        "badge_id": {
          "name": "ID du badge",
          "description": "L'identifiant du badge à attribuer"
        },
        "child_id": {
          "name": "ID de l'enfant",
          "description": "L'identifiant de l'enfant recevant le badge"
        }
      }
    },
    "revoke_badge": {
      "name": "Révoquer un badge",
      "description": "Révoquer un badge attribué. Si un bonus de points a été crédité, il est annulé.",
      "fields": {
        "awarded_badge_id": {
          "name": "ID du badge attribué",
          "description": "L'identifiant du badge attribué à révoquer"
        }
      }
    },
    "rebuild_badges": {
      "name": "Recalculer les badges",
      "description": "Réévaluer silencieusement tous les badges pour tous les enfants (sans notifications ni bonus de points)."
    },
    "apply_mandatory_penalty": {
      "name": "Appliquer la pénalité obligatoire",
      "description": "Déduit les points de pénalité configurés pour une tâche obligatoire manquée et supprime l'élément à vérifier.",
      "fields": {
        "miss_id": {
          "name": "ID d'oubli",
          "description": "L'ID de l'élément à vérifier pour la tâche obligatoire manquée"
        }
      }
    },
    "choose_avatar": {
      "name": "Choisir un avatar",
      "description": "Un enfant passe à un avatar qu'il a débloqué.",
      "fields": {
        "child_id": {
          "name": "ID enfant",
          "description": "L'ID de l'enfant"
        },
        "icon": {
          "name": "Icône d'avatar",
          "description": "L'icône mdi d'un avatar du catalogue débloqué (par ex. mdi:rocket-launch)."
        }
      }
    },
    "dismiss_mandatory_chore": {
      "name": "Ignorer la tâche obligatoire",
      "description": "Supprime l'élément à vérifier d'une tâche obligatoire manquée sans pénalité.",
      "fields": {
        "miss_id": {
          "name": "ID d'oubli",
          "description": "L'ID de l'élément à vérifier pour la tâche obligatoire manquée"
        }
      }
    },
    "gift_points": {
      "name": "Offrir des points",
      "description": "Transfère des points dépensables d'un enfant à un autre (contrôlé par les parents).",
      "fields": {
        "from_child_id": {
          "name": "ID enfant source",
          "description": "L'ID de l'enfant qui envoie les points"
        },
        "to_child_id": {
          "name": "ID enfant destinataire",
          "description": "L'ID de l'enfant qui reçoit les points"
        },
        "points": {
          "name": "Points",
          "description": "Le nombre de points à transférer"
        }
      }
    },
    "postpone_mandatory_chore": {
      "name": "Reporter la tâche obligatoire",
      "description": "Accorde à une tâche obligatoire manquée une autre période (ou demain) sans pénalité et supprime l'élément à vérifier.",
      "fields": {
        "miss_id": {
          "name": "ID d'oubli",
          "description": "L'ID de l'élément à vérifier pour la tâche obligatoire manquée"
        }
      }
    },
    "request_swap": {
      "name": "Demander un échange de tâche",
      "description": "Un enfant demande à reprendre l'attribution par rotation d'une tâche pour aujourd'hui (en attente d'approbation parentale).",
      "fields": {
        "chore_id": {
          "name": "ID tâche",
          "description": "L'ID de la tâche à reprendre"
        },
        "requester_id": {
          "name": "ID enfant demandeur",
          "description": "L'ID de l'enfant qui demande l'échange"
        }
      }
    },
    "test_notification": {
      "name": "Notification de test",
      "description": "Envoie un exemple de notification du type indiqué à ses destinataires activés (ignore l'interrupteur principal afin de vérifier le routage).",
      "fields": {
        "type_id": {
          "name": "Type de notification",
          "description": "ID du type de notification, par ex. pending_chore_approval, badge_earned, streak_milestone"
        }
      }
    },
    "record_allowance_payout": {
      "name": "Enregistrer un versement d'argent de poche",
      "description": "Déduire des points et enregistrer un versement d'argent de poche réel dans le journal (taux de conversion fixe ; contrôlé par les parents).",
      "fields": {
        "child_id": {
          "name": "ID enfant",
          "description": "L'ID de l'enfant recevant le versement"
        },
        "points": {
          "name": "Points",
          "description": "Points à convertir en argent et à déduire"
        }
      }
    }
  },
  "entity": {
    "sensor": {
      "child_stats": {
        "unit_of_measurement": "tâches"
      },
      "child_badges": {
        "unit_of_measurement": "badges"
      }
    },
    "number": {
      "weekend_multiplier": {
        "name": "Multiplicateur week-end"
      },
      "perfect_week_bonus": {
        "name": "Bonus de semaine parfaite"
      }
    },
    "select": {
      "streak_reset_mode": {
        "name": "Mode de réinitialisation de série"
      },
      "card_design": {
        "name": "Design de carte"
      }
    }
  }
}
