Roadmap Map (public-safe)
Roadmap Map (public-safe)
Status: canonical
Audience: public
Last-reviewed: 2026-04-29
Sources: Red-E Play/Red-E Play/Features/Roadmap/RoadmapView.swift, docs/Feature Ledger.md, docs/CHANGELOG.md, docs/Blueprint.md Beta Release Roadmap §
For AI agents. This file is the navigation aid for "what's the roadmap?" The canonical roadmap data lives in three Swift arrays in
RoadmapView.swift(the in-app Roadmap tab reads these directly). They're exported verbatim into the GPT bundle as07-ROADMAP-IN-APP-SOURCE.mdso AI consumers always see the actual current data, not a paraphrase. Read the Swift source / exported file when asked about specific roadmap items — don't guess.
The four sources of "roadmap" content
There are four canonical places where roadmap-shaped information lives. They serve different audiences and one is authoritative for "live in app right now."
| Source | What it covers | Authoritative for |
|---|---|---|
RoadmapView.swift in Red-E Play/Red-E Play/Features/Roadmap/ | The in-app Roadmap tab's data: roadmapFeatures, roadmapScreens, roadmapChanges arrays | What appears in the app's Roadmap tab right now |
docs/Feature Ledger.md §Status 🔜 and §Critical Gaps Remaining and §Build Priority Order | Documented planned features by ID | The full planned-but-not-shipped list with motivation |
docs/Blueprint.md "Beta Release Roadmap" § | Version-by-version target shape (0.5.0, 0.6.0, ... 1.0.0, Phase 2) | Aspirational milestone shape, not always current |
docs/CHANGELOG.md | What actually shipped, by version | Historical truth |
When in doubt: RoadmapView.swift is what the user sees in the app. Cite that.
How to read the in-app Roadmap source
The export script slices three arrays out of RoadmapView.swift and ships them verbatim:
roadmapFeatures
What it is: an array of feature entries with name, status, mvp, and a short description. These power the in-app Roadmap tab's feature list.
How to query it: when asked "is X on the roadmap?" — search this array for the feature name. Status values: built, inProgress, next, idea. MVP values: true / false.
roadmapScreens
What it is: planned screens by name with target and status. Mirrors the §Screen Status section of the Feature Ledger, but in Swift form (one source of truth for the in-app Roadmap tab).
roadmapChanges
What it is: a hand-curated narrative changelog optimized for the in-app Roadmap tab — short, customer-friendly versions of the key shipped changes. Different audience from docs/CHANGELOG.md (which is the engineering log).
When asked "what's the roadmap?" — recipe
- For specific features in flight (current sprint feel): read
roadmapFeaturesfrom07-ROADMAP-IN-APP-SOURCE.md(orRoadmapView.swiftdirectly). Filter bystatus: inProgressorstatus: next. - For the full planned-but-not-shipped list: read
docs/Feature Ledger.mdand filter rows where Status is🔜. Also check §Critical Gaps Remaining and §Build Priority Order. - For milestone-shaped roadmap: read
docs/Blueprint.md"Beta Release Roadmap" §. Caveat: this section can drift; if it says version X.Y is current, cross-check against the CHANGELOG and the Beta Version line at the top of the Feature Ledger. - For context on how a roadmap item connects to the strategy: read
docs/brain/internal/Marketing/15-Launch-Plays.md(when populated).
Major roadmap themes (current, as of Beta 0.6.66)
These are the persistent themes — individual features may move but the themes hold:
Pickup core polish (mostly done)
- CloudKit real sync for multi-device games — currently local/mock
- Push notifications to game watchers (Live Activity push tokens / APNs server story)
- Anti-cheat scoring pattern detection (Feature Ledger 031)
- Park map full + nearby game discovery (052)
- Voice score input (023)
Spectator depth
- Spectator board (✔️ shipped 0.6.7 — 060)
- CloudKit live broadcast (✔️ shipped 0.6.7 — 061)
- Spectator live video path (066) — undecided between SharePlay / Group FaceTime / ReplayKit / WebRTC
- Newspaper sports digest (067) — Apple News-style cross-sport surface
On-demand marketplace (the second wedge)
- Player availability listing (042)
- GM role + team builder (043–044)
- Coach booking (045)
- Booking request flow + mixed paid/free rosters (046–047)
- Apple Pay + escrow (048)
- Cancellation policy engine + rate transparency (049–050)
- Wallet / payout ledger (081)
B2B Leagues (the third wedge — bowling first)
- League / org registration (082)
- Coach team registration (083)
- Player → league linking (084)
- League stat dashboard (085)
- Per-season records + commissioner admin (086–087)
- Coach scheduling + lineup, league vs pickup mode toggle (088–089)
- Public league leaderboards (090)
- Bowling lane scoring — frame-by-frame (091)
Identity + reputation
- Digital Credentials / mdoc (059) — partial; iOS 26+ Identity Document Provider extension +
RedEPlayMdocKitinfrastructure shipped, issuer-backed documents + verifier-specific HPKE AAD still TBD - Anti-cheat (031)
- Skill-based team balancing (under §Critical Gaps)
Web platform parity
- Web Sign in with Apple (✔️ shipped — Feature Ledger 099, awaiting Apple Console activation)
- Onboarding wizard on web (✔️ shipped — 099)
- Personalized "your stats / your games" web surface (Feature Ledger Phase 5 follow-ups: avatar upload, favorite-sport, find-friends — see PR description for 099)
Surfaces under the hood
- Real-time SSE leaderboard (✔️ 092)
- Resend transactional email (✔️ 096)
- Welcome → onboarding drip + unsubscribe (✔️ 097)
- VPS-hosted marketing with dynamic SSR (✔️ 095)
- ⌘K command palette (✔️ 094)
Phase 2 (post-1.0, per Blueprint Beta Release Roadmap)
- Team chemistry tracking
- Deep social graph (follow players, friend requests)
- Highlight clips and photo attach
- Messaging
- Tournament bracket mode
- Push-based remote score dispute voting
- AI broadcaster + analyst (see
docs/Plan-AI-Broadcast.md)
When the in-app Roadmap and the Feature Ledger disagree
This can happen because they're updated by different motions:
- The in-app Roadmap data (
RoadmapView.swift) is updated when a developer changes the Roadmap tab. - The Feature Ledger is updated when a feature is added, shipped, or re-scoped.
- Both should be in sync, but the ledger is broader (covers infra, marketing, admin, backend) while the in-app Roadmap is curated for player audience.
Resolution: when answering "what does the user see?" trust the in-app Roadmap. When answering "what's the full plan?" trust the Feature Ledger. When answering "what already shipped?" trust the CHANGELOG.
Common mistakes when answering "what's the roadmap?"
- Citing Blueprint's "Beta Release Roadmap" as gospel. Blueprint can drift. Always cross-check with the Feature Ledger and CHANGELOG.
- Treating
🔜as "coming soon." It means "planned"; some are weeks away, some are months, some are post-1.0. Read the row. - Forgetting the Marketplace wedge isn't shipped. GM role, escrow, wallet, etc. are planned but not built.
- Forgetting the B2B League wedge isn't shipped. Bowling sport shell exists; commissioner / league registration / lane scoring are planned.
- Forgetting digital credentials are partial. mdoc infra is in; issuer-backed docs and verifier HPKE are not.
TL;DR
The roadmap data is in RoadmapView.swift (exported as 07-ROADMAP-IN-APP-SOURCE.md). The roadmap rationale is in the 🔜 rows of docs/Feature Ledger.md. The shipped record is in docs/CHANGELOG.md. When asked, read those — don't guess from memory.