complete_chore: name: Complete Chore description: Mark a chore as completed by a child fields: chore_id: name: Chore ID description: The ID of the chore to complete required: true selector: text: child_id: name: Child ID description: The ID of the child completing the chore required: true selector: text: as_parent: name: As parent description: Complete on behalf of the child and award points immediately, bypassing approval. required: false default: false selector: boolean: photo_url: name: Photo URL description: Optional URL or path to a photo submitted as evidence for the completion (e.g. a camera snapshot). Shown to the parent during approval. required: false selector: text: note: name: Note description: What the child did, in their own words. Required when the chore is open-ended, and shown to the parent during approval. required: false selector: text: multiline: true suggested_points: name: Suggested points description: What the child reckons the work was worth. A hint for the approving parent — it awards nothing on its own. required: false selector: number: min: 0 max: 999 mode: box complete_bonus_subtask: name: Complete Bonus Sub-task description: Complete a bonus sub-task after the parent chore is done fields: chore_id: name: Chore ID description: The ID of the parent chore required: true selector: text: bonus_subtask_id: name: Bonus Sub-task ID description: The ID of the bonus sub-task to complete required: true selector: text: child_id: name: Child ID description: The ID of the child completing the bonus sub-task required: true selector: text: approve_chore: name: Approve Chore description: Approve a completed chore and award points fields: completion_id: name: Completion ID description: The ID of the chore completion to approve required: true selector: text: points: name: Points description: Award this many points instead of the chore's own value. Leave empty to use the chore's points. required: false selector: number: min: 0 max: 9999 mode: box rating: name: Quality rating description: Optional 1-3 star rating of how well the chore was done. When quality ratings are enabled it scales the points by that star's multiplier; leave empty to pay 100%. required: false selector: number: min: 1 max: 3 mode: slider approve_all_chores: name: Approve All Chores description: Approve all pending chore completions (or a specific set) and award points fields: completion_ids: name: Completion IDs description: Specific completion IDs to approve; omit to approve all pending required: false selector: object: rating: name: Quality rating description: Optional 1-3 star rating applied to every chore approved by this call (quality ratings must be enabled). required: false selector: number: min: 1 max: 3 mode: slider reject_chore: name: Reject Chore description: Reject a completed chore fields: completion_id: name: Completion ID description: The ID of the chore completion to reject required: true selector: text: reason: name: Reason description: Optional reason shown to the child required: false selector: text: apply_mandatory_penalty: name: Apply Mandatory Penalty description: Deduct the configured penalty points for a missed mandatory chore and clear the review item. fields: miss_id: name: Miss ID description: The ID of the mandatory-miss review item required: true selector: text: postpone_mandatory_chore: name: Postpone Mandatory Chore description: Give a missed mandatory chore another period (or tomorrow) without a penalty, and clear the review item. fields: miss_id: name: Miss ID description: The ID of the mandatory-miss review item required: true selector: text: dismiss_mandatory_chore: name: Dismiss Mandatory Chore description: Clear a missed mandatory chore review item with no penalty. fields: miss_id: name: Miss ID description: The ID of the mandatory-miss review item required: true selector: text: undo_transaction: name: Undo Transaction description: Reverse a points transaction by its ID — penalties, bonuses, manual add/remove adjustments and gifts (both legs). Automatic transactions (weekend/streak/perfect-week bonuses, pool moves, decay, interest) can't be undone. fields: transaction_id: name: Transaction ID description: The ID of the points transaction to reverse required: true selector: text: undo_chore: name: Undo Chore description: Let a child take back their own chore — a pending submission until a parent reviews it, or an automatically approved one within the chore undo window. Off unless the window is set above 0 in TaskMate settings; anything a parent has reviewed needs a parent to undo it. fields: completion_id: name: Completion ID description: The ID of the child's chore completion to take back required: true selector: text: undo_chore_approval: name: Undo Chore Approval description: Reverse an accidental chore approval — removes the awarded points and returns the completion to pending so it can be approved again. fields: completion_id: name: Completion ID description: The ID of the approved chore completion to revert to pending required: true selector: text: test_notification: name: Test Notification description: Send a sample notification of the given type to its enabled recipients (ignores the master on/off so routing can be verified). fields: type_id: name: Notification type description: "Notification type id, e.g. pending_chore_approval, badge_earned, streak_milestone" required: true selector: text: record_allowance_payout: name: Record Allowance Payout description: Deduct points and record a real-money allowance payout in the ledger (fixed conversion rate; parent-controlled). fields: child_id: name: Child ID required: true selector: text: points: name: Points description: Points to convert to cash and deduct. required: true selector: number: min: 1 max: 100000 mode: box gift_points: name: Gift Points description: Transfer spendable points from one child to another (parent-controlled). fields: from_child_id: name: From child ID required: true selector: text: to_child_id: name: To child ID required: true selector: text: points: name: Points required: true selector: number: min: 1 max: 10000 mode: box adjust_streak_freezes: name: Adjust Streak Freezes description: Give a child streak-freeze tokens (positive amount) or take some away (negative). A grant never goes past the streak_freeze_max cap. fields: child_id: name: Child ID description: The ID of the child whose tokens change required: true selector: text: amount: name: Amount description: Tokens to add (positive) or remove (negative) required: true selector: number: min: -10 max: 10 mode: box request_swap: name: Request Chore Swap description: A child requests to take over today's rotation assignment of a chore (pending parent approval). fields: chore_id: name: Chore ID required: true selector: text: requester_id: name: Requester child ID required: true selector: text: choose_avatar: name: Choose Avatar description: A child switches to an avatar they have unlocked. fields: child_id: name: Child ID required: true selector: text: icon: name: Avatar icon description: The mdi icon of an unlocked catalogue avatar (e.g. mdi:rocket-launch). required: true selector: text: claim_reward: name: Claim Reward description: Child claims a reward using their points fields: reward_id: name: Reward ID description: The ID of the reward to claim required: true selector: text: child_id: name: Child ID description: The ID of the child claiming the reward required: true selector: text: approve_reward: name: Approve Reward description: Approve a reward claim fields: claim_id: name: Claim ID description: The ID of the reward claim to approve required: true selector: text: allocate_points_to_pool: name: Allocate Points to Pool description: Move points from a child's spendable balance into a reward's savings pool (locked). fields: child_id: name: Child ID description: The ID of the child making the allocation required: true selector: text: reward_id: name: Reward ID description: The ID of the reward pool to deposit into required: true selector: text: points: name: Points description: Number of points to allocate (capped at pool capacity and spendable balance) required: true selector: number: min: 1 max: 10000 mode: box add_points: name: Add Points description: Add bonus points to a child fields: child_id: name: Child ID description: The ID of the child to add points to required: true selector: text: points: name: Points description: The number of points to add required: true selector: number: min: 1 max: 10000 mode: box reason: name: Reason description: Optional reason for the bonus required: false selector: text: remove_points: name: Remove Points description: Remove points from a child (penalty) fields: child_id: name: Child ID description: The ID of the child to remove points from required: true selector: text: points: name: Points description: The number of points to remove required: true selector: number: min: 1 max: 10000 mode: box reason: name: Reason description: Optional reason for the penalty required: false selector: text: reject_reward: name: Reject Reward description: Reject a reward claim (no points deducted as approval was pending) fields: claim_id: name: Claim ID description: The ID of the reward claim to reject required: true selector: text: reason: name: Reason description: Optional reason shown to the child required: false selector: text: preview_sound: name: Preview Sound description: Preview a completion sound effect in the browser fields: sound: name: Sound description: The sound to preview required: true selector: select: options: - "none" - "coin" - "levelup" - "fanfare" - "chime" - "powerup" - "undo" - "fart1" - "fart2" - "fart3" - "fart4" - "fart5" - "fart6" - "fart7" - "fart8" - "fart9" - "fart10" - "fart_random" set_chore_order: name: Set Chore Order description: Set the display order of chores for a child fields: child_id: name: Child ID description: The ID of the child to set chore order for required: true selector: text: chore_order: name: Chore Order description: Ordered list of chore IDs required: true selector: object: add_penalty: name: Add Penalty description: Create a new penalty definition fields: name: name: Name description: The name of the penalty required: true selector: text: points: name: Points description: The number of points to deduct when applied required: true selector: number: min: 1 max: 10000 mode: box description: name: Description description: Optional description of the penalty required: false selector: text: icon: name: Icon description: MDI icon for the penalty required: false selector: icon: assigned_to: name: Assigned To description: List of child IDs this penalty applies to (empty for all) required: false selector: object: update_penalty: name: Update Penalty description: Update an existing penalty definition fields: penalty_id: name: Penalty ID description: The ID of the penalty to update required: true selector: text: name: name: Name description: New name for the penalty required: false selector: text: points: name: Points description: New points value for the penalty required: false selector: number: min: 1 max: 10000 mode: box description: name: Description description: New description for the penalty required: false selector: text: icon: name: Icon description: New icon for the penalty required: false selector: icon: assigned_to: name: Assigned To description: New list of child IDs this penalty applies to required: false selector: object: remove_penalty: name: Remove Penalty description: Remove a penalty definition fields: penalty_id: name: Penalty ID description: The ID of the penalty to remove required: true selector: text: apply_penalty: name: Apply Penalty description: Apply a penalty to a child, deducting points fields: penalty_id: name: Penalty ID description: The ID of the penalty to apply required: true selector: text: child_id: name: Child ID description: The ID of the child to apply the penalty to required: true selector: text: add_bonus: name: Add Bonus description: Create a new bonus definition fields: name: name: Name description: The name of the bonus required: true selector: text: points: name: Points description: The number of points to award when applied required: true selector: number: min: 1 max: 10000 mode: box description: name: Description description: Optional description of the bonus required: false selector: text: icon: name: Icon description: MDI icon for the bonus required: false selector: icon: assigned_to: name: Assigned To description: List of child IDs this bonus applies to (empty for all) required: false selector: object: update_bonus: name: Update Bonus description: Update an existing bonus definition fields: bonus_id: name: Bonus ID description: The ID of the bonus to update required: true selector: text: name: name: Name description: New name for the bonus required: false selector: text: points: name: Points description: New points value for the bonus required: false selector: number: min: 1 max: 10000 mode: box description: name: Description description: New description for the bonus required: false selector: text: icon: name: Icon description: New icon for the bonus required: false selector: icon: assigned_to: name: Assigned To description: New list of child IDs this bonus applies to required: false selector: object: remove_bonus: name: Remove Bonus description: Remove a bonus definition fields: bonus_id: name: Bonus ID description: The ID of the bonus to remove required: true selector: text: apply_bonus: name: Apply Bonus description: Apply a bonus to a child, awarding points fields: bonus_id: name: Bonus ID description: The ID of the bonus to apply required: true selector: text: child_id: name: Child ID description: The ID of the child to apply the bonus to required: true selector: text: add_chore: name: Add Chore description: Create a new chore dynamically, typically from an automation or script fields: name: name: Name description: The name of the chore required: true selector: text: description: name: Description description: Optional description of the chore required: false selector: text: points: name: Points description: Points awarded when this chore is completed required: false default: 10 selector: number: min: 1 max: 10000 mode: box assigned_to: name: Assigned To description: List of child IDs to assign this chore to. Leave empty to assign to all children required: false selector: object: time_category: name: Time Category description: When this chore should be completed required: false default: anytime selector: select: options: - morning - afternoon - evening - night - anytime difficulty: name: Difficulty description: Difficulty tier; scales awarded points by the tier multiplier (medium = ×1.0 baseline) required: false default: medium selector: select: options: - easy - medium - hard one_shot: name: One-Shot description: If true, this is a one-time chore that expires after being completed or at the end of the day required: false default: false selector: boolean: requires_approval: name: Requires Approval description: If true, a parent must approve the completion before points are awarded required: false default: true selector: boolean: expires_in_minutes: name: Expires in (minutes) description: >- Make this a reactive chore with a deadline this many minutes from now — e.g. the washing machine finished, empty it within 30 minutes. The chore disappears and is disabled once the deadline passes. 0 = no deadline. required: false default: 0 selector: number: min: 0 max: 10080 mode: box unit_of_measurement: min speed_bonus_points: name: Speed bonus points description: Extra points awarded if the chore is completed before the deadline. Needs expires_in_minutes. required: false default: 0 selector: number: min: 0 max: 10000 mode: box team_size: name: Team size description: >- Make this a teamwork chore that only counts once this many different children have joined it. Each child's Done tap joins; when the team is full it submits for all of them. 0 = a normal chore. required: false default: 0 selector: number: min: 0 max: 10 mode: box team_points_mode: name: Team points description: >- How a teamwork chore pays out — "each" gives every participant the full points, "split" divides them evenly (rounded down). required: false default: each selector: select: options: - each - split team_bonus: name: Team bonus description: Extra points each participant earns when a teamwork chore is completed. required: false default: 0 selector: number: min: 0 max: 10000 mode: box read_aloud: name: Read Chores Aloud description: >- Speak a child's outstanding chores to a media player — "Ella, you have three things left...". Wording is set by the read-aloud templates in the TaskMate panel settings. fields: child_id: name: Child ID required: true selector: text: media_player: name: Media player description: Where to speak. Falls back to the default set in Settings. required: false selector: entity: domain: media_player tts_entity: name: Text-to-speech entity description: Which TTS service to use. Falls back to Settings, then to the only one installed. required: false selector: entity: domain: tts message: name: Message override description: Say this instead of the generated summary. required: false selector: text: spin_roulette: name: Spin Chore Roulette description: >- Pick a random outstanding chore for a child at a points multiplier. Opt-in — enable it and set the multiplier and daily spin allowance in the TaskMate panel settings. fields: child_id: name: Child ID description: The ID of the child spinning required: true selector: text: skip_chore: name: Skip Chore description: Skip today's assigned child for a rotating chore and move the pointer to the next child in the pool. Ephemeral — tomorrow the rotation resumes its normal schedule. fields: chore_id: name: Chore ID description: The ID of the chore to skip required: true selector: text: set_chore_manual_start: name: Set Manual Start Child description: Set which child the rotation starts with for a rotating chore. For alternating mode this reorders the pool and resets the anchor; for random/balanced it overrides today's cached assignee only. fields: chore_id: name: Chore ID description: The ID of the chore to update required: true selector: text: child_id: name: Child ID description: The ID of the child who should start the rotation required: true selector: text: add_task_group: name: Add Task Group description: Create a task group that coordinates assignments across chores (sticky = same child, spread = different children). fields: name: name: Name description: Display name for the group required: true selector: text: policy: name: Policy description: sticky (same child) or spread (different children) required: true default: sticky selector: select: options: - sticky - spread chore_ids: name: Chore IDs description: List of chore IDs to include in the group. For sticky, the first chore is the leader. required: false selector: object: update_task_group: name: Update Task Group description: Update a task group's name, policy, or chore membership. fields: group_id: name: Group ID description: The ID of the group to update required: true selector: text: name: name: Name description: New display name required: false selector: text: policy: name: Policy description: New policy (sticky or spread) required: false selector: select: options: - sticky - spread chore_ids: name: Chore IDs description: Replacement list of chore IDs. For sticky, the first chore is the leader. required: false selector: object: remove_task_group: name: Remove Task Group description: Delete a task group. The member chores are not affected. fields: group_id: name: Group ID description: The ID of the group to delete required: true selector: text: start_timed_task: name: Start Timed Task description: Start or resume the timer on a timed task fields: chore_id: name: Chore ID description: The ID of the timed chore required: true selector: text: child_id: name: Child ID description: The ID of the child starting the timer required: true selector: text: leave_team_chore: name: Leave Teamwork Chore description: Take a child back out of a teamwork chore they joined today, before the team is complete fields: chore_id: name: Chore ID description: The ID of the teamwork chore required: true selector: text: child_id: name: Child ID description: The ID of the child leaving the team required: true selector: text: complete_next_chore: name: Complete Next Chore description: >- Complete the child's next outstanding chore, in the order the child card shows them. Chores that need a photo, a note, a timer or a team are skipped. Made for watch buttons and shortcuts; normal approval rules apply. fields: child_id: name: Child ID description: The ID of the child whose next chore to complete required: true selector: text: post_bounty: name: Post Bounty description: >- Post a one-off job to the bounty board for a fixed number of points. Any eligible child can claim it; finishing it goes through the normal approval queue. fields: title: name: Title description: "What the job is, e.g. \"Wash the car\"" required: true selector: text: points: name: Points description: "Fixed points paid when a parent approves the finished job" required: true selector: number: min: 1 max: 100000 mode: box description: name: Description description: "Optional extra detail for the children" required: false selector: text: multiline: true icon: name: Icon description: "MDI icon shown on the board" required: false selector: icon: expires_at: name: Expires at description: "Optional date and time the bounty leaves the board if nobody has claimed it. Leave empty for no expiry." required: false selector: datetime: eligible_child_ids: name: Eligible children description: "IDs of the children who may claim it. Empty = every child." required: false selector: object: claim_hours: name: Claim lock (hours) description: "How long a claim lasts before the bounty goes back on the board" required: false default: 2 selector: number: min: 1 max: 48 unit_of_measurement: h mode: box require_photo: name: Require photo description: "The child must attach a photo when marking it done" required: false default: false selector: boolean: notify_children: name: Notify children description: "Send the \"New bounty\" notification to the eligible children" required: false default: true selector: boolean: update_bounty: name: Update Bounty description: >- Edit a bounty. Once it has been claimed, only its points and expiry can change. fields: bounty_id: name: Bounty ID description: "The ID of the bounty to edit" required: true selector: text: title: name: Title description: "What the job is, e.g. \"Wash the car\"" required: false selector: text: points: name: Points description: "Fixed points paid when a parent approves the finished job" required: false selector: number: min: 1 max: 100000 mode: box description: name: Description description: "Optional extra detail for the children" required: false selector: text: multiline: true icon: name: Icon description: "MDI icon shown on the board" required: false selector: icon: expires_at: name: Expires at description: "Optional date and time the bounty leaves the board if nobody has claimed it. Leave empty for no expiry." required: false selector: datetime: eligible_child_ids: name: Eligible children description: "IDs of the children who may claim it. Empty = every child." required: false selector: object: claim_hours: name: Claim lock (hours) description: "How long a claim lasts before the bounty goes back on the board" required: false selector: number: min: 1 max: 48 unit_of_measurement: h mode: box require_photo: name: Require photo description: "The child must attach a photo when marking it done" required: false selector: boolean: notify_children: name: Notify children description: "Send the \"New bounty\" notification to the eligible children" required: false selector: boolean: remove_bounty: name: Remove Bounty description: >- Take a bounty off the board. Not allowed while a finished job waits for approval. fields: bounty_id: name: Bounty ID description: "The ID of the bounty to remove" required: true selector: text: claim_bounty: name: Claim Bounty description: >- Claim a bounty for a child, locking it to them for its claim period. A child can hold one claim at a time. fields: bounty_id: name: Bounty ID description: "The ID of the bounty to claim" required: true selector: text: child_id: name: Child ID description: "The ID of the child claiming it" required: true selector: text: give_back_bounty: name: Give Back Bounty description: >- Hand a claimed bounty back to the board so another child can take it fields: bounty_id: name: Bounty ID description: "The ID of the claimed bounty" required: true selector: text: child_id: name: Child ID description: "The ID of the child who claimed it" required: true selector: text: complete_bounty: name: Complete Bounty description: >- Mark a claimed bounty as done. It goes to the approval queue like a chore. fields: bounty_id: name: Bounty ID description: "The ID of the claimed bounty" required: true selector: text: child_id: name: Child ID description: "The ID of the child who claimed it" required: true selector: text: photo_url: name: Photo URL description: "Photo of the finished job (required when the bounty asks for one)" required: false selector: text: pause_timed_task: name: Pause Timed Task description: Pause a running timed task timer fields: chore_id: name: Chore ID description: The ID of the timed chore required: true selector: text: child_id: name: Child ID description: The ID of the child pausing the timer required: true selector: text: stop_timed_task: name: Stop Timed Task description: Stop a timed task timer and submit for approval fields: chore_id: name: Chore ID description: The ID of the timed chore required: true selector: text: child_id: name: Child ID description: The ID of the child stopping the timer required: true selector: text: add_badge: name: Add Badge description: Create a custom badge. fields: name: name: Name required: true example: "Holiday Helper" selector: text: description: name: Description example: "Earned for big effort during school holidays" selector: text: icon: name: Icon example: "mdi:beach" selector: icon: tier: name: Tier default: bronze selector: select: options: - bronze - silver - gold - platinum point_bonus: name: Point bonus default: 0 selector: number: min: 0 max: 1000 step: 1 mode: box criteria: name: Criteria description: "List of metric / operator / value dicts (operator one of >=, ==, <=, >, <, !=). Empty = manual-award only." selector: object: combinator: name: Combinator description: "How multiple criteria combine: AND (all must pass) or OR (any). Default AND." default: AND selector: select: options: - AND - OR assigned_to: name: Assigned to description: "List of child IDs (empty = all)" selector: object: notify_on_earn: name: Notify on earn default: true selector: boolean: update_badge: name: Update Badge description: Update an existing badge. For built-ins, only point_bonus, tier, assigned_to, enabled, notify_on_earn are editable. fields: badge_id: name: Badge ID required: true selector: text: name: selector: text: description: selector: text: icon: selector: icon: tier: selector: select: options: - bronze - silver - gold - platinum point_bonus: selector: number: min: 0 max: 1000 step: 1 mode: box criteria: selector: object: combinator: selector: select: options: - AND - OR assigned_to: selector: object: enabled: selector: boolean: notify_on_earn: selector: boolean: remove_badge: name: Remove Badge description: Remove a custom badge. Built-ins cannot be removed. fields: badge_id: name: Badge ID required: true selector: text: award_badge_manually: name: Award Badge Manually description: Manually award a badge to a child. fields: badge_id: name: Badge ID required: true selector: text: child_id: name: Child ID required: true selector: text: revoke_badge: name: Revoke Badge description: Revoke an awarded badge. If a point bonus was credited, it is reversed. fields: awarded_badge_id: name: Awarded Badge ID required: true selector: text: rebuild_badges: name: Rebuild Badges description: Re-evaluate all badges across all children silently (no notifications, no point bonuses). # Wishlist (#932) add_wish: name: Add Wish description: A child adds something they want to save for. It waits for a parent to approve it. fields: child_id: name: Child ID description: The ID of the child making the wish required: true selector: text: name: name: Name description: What the child wants required: true selector: text: target: name: Target description: Suggested number of points it costs. The parent can change it when approving. required: true selector: number: min: 1 max: 100000 mode: box link: name: Link description: Optional web address (http or https) for the thing required: false selector: text: type: url photo_url: name: Picture description: Optional picture just uploaded through the TaskMate photo endpoint required: false selector: text: withdraw_wish: name: Withdraw Wish description: A child takes back a wish that is still waiting for approval, or clears one that was declined. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: child_id: name: Child ID description: The ID of the child whose wish it is required: true selector: text: move_points_to_wish: name: Move Points to Wish description: Move points from a child's spendable balance into one of their approved wishes. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: child_id: name: Child ID description: The ID of the child whose wish it is required: true selector: text: points: name: Points description: How many points to move (capped at the balance and at what the wish still needs) required: true selector: number: min: 1 max: 100000 mode: box take_points_from_wish: name: Take Points from Wish description: Give some of a child's own saved points back from a wish. Pledged points never come out. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: child_id: name: Child ID description: The ID of the child whose wish it is required: true selector: text: points: name: Points description: How many saved points to take back (capped at what the child saved) required: true selector: number: min: 1 max: 100000 mode: box request_wish_redeem: name: Ask to Redeem Wish description: A fully funded wish becomes a reward claim waiting for the parent's approval. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: child_id: name: Child ID description: The ID of the child whose wish it is required: true selector: text: approve_wish: name: Approve Wish description: Turn a waiting wish into a savings goal, optionally at a different target. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: target: name: Target description: Points the wish costs. Leave empty to keep the child's suggestion. required: false selector: number: min: 1 max: 100000 mode: box decline_wish: name: Decline Wish description: Say no to a wish. Saved points go back to the child and pledges are voided. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: reason: name: Reason description: Optional reason shown to the child required: false selector: text: multiline: true pledge_to_wish: name: Pledge to Wish description: Record points a relative chips in towards a child's wish. They never touch any balance. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: name: name: From description: Who the pledge is from, e.g. Grandma required: true selector: text: points: name: Points description: How many points to pledge (capped at what the wish still needs) required: true selector: number: min: 1 max: 100000 mode: box message: name: Message description: Optional message for the child required: false selector: text: remove_wish_pledge: name: Remove Wish Pledge description: Undo a pledge. Allowed until the wish is redeemed. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: pledge_id: name: Pledge ID description: The ID of the pledge to remove required: true selector: text: remove_wish: name: Remove Wish description: Delete a wish. Saved points go back to the child and pledges are voided. fields: wish_id: name: Wish ID description: The ID of the wish required: true selector: text: start_inspection: name: Start Inspection description: >- Flag a chore approved in the last 24 hours for a surprise inspection. Pass or fail it before the window closes; an undecided inspection closes quietly. fields: completion_id: name: Completion ID description: The ID of the approved chore completion to inspect required: true selector: text: bonus: name: Bonus description: Points paid if it passes. Defaults to the Settings value. required: false selector: number: min: 0 max: 10000 mode: box window: name: Window description: "How long you have to check it: 1h, 2h, 4h or bed (until bedtime). Defaults to the Settings value." required: false selector: select: options: - "1h" - "2h" - "4h" - "bed" tell_child: name: Tell the child description: Show "Inspection coming" on the child's card now. Turn off for a secret check. required: false selector: boolean: pass_inspection: name: Pass Inspection description: The inspected chore passed. Pays the bonus as a normal points entry and celebrates on the child's card. fields: inspection_id: name: Inspection ID description: The ID of the open inspection required: true selector: text: bonus: name: Bonus description: Points to pay. Defaults to the bonus set when the inspection started. required: false selector: number: min: 0 max: 10000 mode: box note: name: Note description: Optional note shown to the child required: false selector: text: fail_inspection: name: Fail Inspection description: The inspected chore didn't pass. No points are taken. It can be sent back to redo; the redo earns nothing extra. fields: inspection_id: name: Inspection ID description: The ID of the open inspection required: true selector: text: redo: name: Send back to redo description: Put the chore back on the child's list as not done for today. Defaults to the Settings value. required: false selector: boolean: note: name: Note description: Optional note shown to the child (what needs fixing) required: false selector: text: cancel_inspection: name: Cancel Inspection description: Call off an open inspection, as if it never started. fields: inspection_id: name: Inspection ID description: The ID of the open inspection required: true selector: text: