Add CrowdThreading minigame; feature-gate the kit per minigame

Add CrowdThreading minigame; feature-gate the kit per minigame

#7 in Riparion/riparion-retro — merged 2026-06-09

Summary

  • New crowd_threading minigame — memorize a lit route through a crowd, then run it from memory once the map closes. Includes:
    • randomized start column (seed-driven, was hardcoded to center)
    • a parameterized phase-2 navigate timer (navigate_ms) that fails the run on timeout, scored like a collision with partial progress
    • a live countdown rendered in the center of the D-pad, going urgent in the final seconds
    • traversed cells in phase 2 keep their fill but no longer show a lit border
    • a runnable example seeded from browser entropy so layouts differ each launch
  • Per-minigame feature gating — each minigame (quickdraw, timing_bar, crowd_threading) is behind a same-named cargo feature, default = ["all"]. A host can now take only what it needs via default-features = false, features = [...]. Examples carry required-features so --no-default-features builds stay green.
  • oregon-trail now pulls only the quickdraw feature (the sole minigame it uses).
  • Patch bumps: minigames-kit 0.1.0 → 0.1.1, oregon-trail 0.1.0 → 0.1.1.

Test plan

  • cargo build --workspace — clean
  • cargo test -p minigames-kit — 14 passed
  • Feature combinations verified: default (all), single-feature, --no-default-features, and gated examples all compile

🤖 Generated with Claude Code

Last updated 2026-06-10