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/GameScreenis the /game screen: card progress, streak, hint pill, end-game modal, and every router call, which is where canon's design check reads them.GameTopBarholds ✕, scores, round list, settings./bundlehas two faces:PaywallScreen(no?industry: Everything or One world,PaywallHero,WorldChips) andBundleScreen(one industry:BundleHero,BundlePackGrid).PackPreviewModalsells 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.tsxrecords to history before mount.constants/is one file per feature. Class-string tables live here as literals so Tailwind sees them.purchase-storeholds 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).