Skip to content

Challenges

A challenge is a goal that fires when you actually live it. Some are quests you opt into (today's daily, this week's weekly). Some are slow-burn achievements that just track in the background. Either way, completing one earns you a curio — a small piece of story-bearing artwork for your collection.

The story

We needed a way to give the engine something to aim at — concrete goals that route activity toward earning collectible things. Without challenges, every curio would need its own complicated rule. With them, curios stay simple (they're just art + story) and challenges do the work of describing "what does it take to earn this?"

A challenge is defined by:

  • A rule — what counts toward it. Built from leaves (visit_count, friend_count, geographic_breadth, etc.) and operators (all_of, any_of, n_of, sequence).
  • A cadence — permanent, day, week, month, or special.
  • An opt-in mode — always-on (engine evaluates passively) or opt-in (you start it explicitly).
  • An optional reward curio — the artwork that lands in your collection on completion.

Always-on vs opt-in

We use both, and the distinction matters:

Always-on challenges run silently. You don't pick them up, you don't see them in a quest panel. They're just there, tracking. The canonical example is "collect 100 unique cities" — you're not going to explicitly start that quest; you'll travel and one day the engine will say "huh, that's a hundred." Permanent slow-burns + global events live here. The progress row gets created lazily, the first time anything actually moves.

Opt-in challenges are quests. You pick them from a Quests panel ("today's daily," "this week's series"). Day, week, and month cadences are typically opt-in — without explicit subscription, a daily would expire silently and you'd never know it existed. Quests give the daily loop something to grab onto.

The distinction maps to UX surfaces: - Always-on challenges show in your Tomoda Collection progress only after you've made qualifying progress (silhouettes don't clutter the view). - Opt-in challenges show in the Quests panel — pickable cards grouped by cadence, then move to "In progress" once you start.

Parents and children

A challenge can have a parent. Parents are the "season pass" pattern: opt into the parent, and a curated set of children come along — typically the four weeklies that make up a month-long arc, or a five-step sequence within a special event. Each child is a real challenge with its own rule and reward; the parent's reward fires when all (or N of) the children complete.

You don't separately opt into the children — they ride on the parent's opt-in. You can't opt out of a child while staying in the parent. The parent is the contract.

What happens when you complete one

The engine writes a completed row in your challenge_progress. If the challenge has a reward curio, the curio lands in your Tomoda Collection (with audit — we record which challenge earned which curio). If it's a parent's child, the parent re-evaluates and may itself complete (which may grant the parent's reward curio, and so on up).

Completed rows live forever as your audit trail. Incomplete rows for challenges whose window closed are deleted — not held against you.

What it isn't

  • No challenge "score." A challenge is binary — complete or not. We don't rank you against other users on a challenge.
  • No "challenge currency" that buys things. Completing challenges earns the curio that's specifically attached as the reward. There's no fungible point system.
  • No "you missed yesterday's daily" guilt. A daily you opted into but didn't complete just expires. We tell you it's gone if you ask; we don't notify you to make you feel bad.