Skip to content

Work / Charades / Wiki / Concepts

code-map

Conceptverified 2026-10-30

code-map

What the file names do not say. The tree in CLAUDE.md is the outline.

  • components/games/GameScreen is the /game screen: card progress, streak, hint pill, end-game modal, and every router call, which is where canon's design check reads them. GameTopBar holds ✕, scores, round list, settings.
  • /bundle has two faces: PaywallScreen (no ?industry: Everything or One world, PaywallHero, WorldChips) and BundleScreen (one industry: BundleHero, BundlePackGrid). PackPreviewModal sells the world or everything.
  • components/ui/ is feature-agnostic, and holds the sticker parts every screen builds from: IconButton, GoButton (the way forward; pay = gold), BottomBar.
  • score.tsx records to history before mount.
  • constants/ is one file per feature. Class-string tables live here as literals so Tailwind sees them.
  • purchase-store holds the shared RevenueCat offering and prices, fetched once per run, seeded from the MMKV price cache on first frame. Screens never fetch: purchase state comes from the store.

Game screen hooks, in the order it calls them

use-game-round (store slice), use-game-initialization, use-game-feedback (flash + use-game-sounds + haptics), use-game-orientation, use-game-autosave, use-tilt-results (use-tilt-control → recordResult), use-end-when-out-of-movies. Also use-game-round-list (the live round's detail), use-game-focused (tilt pauses under another screen).

Other hooks

use-bundle-screen, use-offer-prices, use-offer-purchase (Everything / one world), use-pack-purchase (restore), use-round-end-prompt (free pick → paywall → review), use-owned-pack-ids (bought + free pick, for locks).

lib

format (describePacks/dates), movie (pack selection + shuffle), pack-selection (default

  • restore), history-row (tone, dominant pack), price (currency maths), price-cache (last-seen prices, parse/TTL), retry (bounded retry for the offering fetch), entitlements (what an entitlement unlocks; which worlds are still for sale), free-pick (the six packs offered), screenshot-fixture (capture builds only), platform (store URL), storage (MMKV adapter), translate (useT's pure core), pack-name (a pack's label key: Family packs use category names).