Skip to content

Tomoda Collection — Domain Spec

The Tomoda Collection is the user's earned set of curios + curated stamps. Formerly named the Archive in earlier drafts. This page is the rules for what's earnable, how it's surfaced, and how visibility works.

Mental model

Two parallel content tiers:

Tier Source of earn Author
Curios Granted on challenge completion (reward_curio_id) Curated artwork + story
Stamps Genuine geographic visits (visit_specific or aggregate_count unlock) Curated artwork + scope

Same UI shelf, same "earned at" timestamps, same hidden-tier system. Different earn paths.

Data shape

Table Owns
user_curios_earned Dedup row per (user, curio). Existence = the user has the curio.
curio_earn_events Multi-row audit trail per (user, curio). Records source: rule\|challenge\|admin_grant, source_id, occurred_at.
user_stamp_progress Per-user stamp progress with matched_ids JSONB, earned_at.

user_curios_earned is the read-side source of truth for "do they have it." curio_earn_events is the audit / "earned via" history surface.

Hidden tiers

Both curios and stamps use the same three-tier discoverability model (stored on the content row, applied at render time):

Tier Pre-earn render Post-earn render
soft Silhouette + category + hint + progress count ("3 of ?") Full art + story + source attribution
hard Silhouette + category + hint, no progress Full art + story + source attribution
secret No UI surface at all Surprise drop, hero-level reveal animation

Recommended mix in the 100-launch curio set: ~60 soft / ~30 hard / ~10 secret. Tunable per content batch.

Visibility

The Collection respects the user's existing visibility settings:

  • Public profile: anyone can see the user's earned grid (locked items rendered per tier rules).
  • Friends-only profile: only accepted friends see earned grid; strangers see counts only ("12 curios, 8 stamps").
  • Private profile: no surface visible to others.

What's not in the Collection

  • Active challenges (in-progress, not yet completed) — those live in the Hub's Quests / In-Progress sections, not the Collection.
  • Locked stamps without progress — by design; the Collection surfaces earned + in-progress-toward-earned, not the full catalog.
  • Earned by admin grant are flagged in curio_earn_events.source but render identically to other earns — no special "manually granted" badge.

See also