# Feature Coverage Audit — Tables vs Plan

Every table in the database, mapped to whether the current plan covers it.

## Legend
- COVERED = Plan explicitly handles this table
- PARTIAL = Plan mentions the domain but doesn't detail this specific table
- MISSING = Not in the plan at all
- ADMIN-ONLY = Only used by management panel (player app reads but doesn't write)
- SKIP = Infrastructure/internal table (not player-facing)

---

## Coverage Map (106 tables)

| # | Table | Status | Current Plan Location | Gap |
|---|-------|--------|----------------------|-----|
| 1 | _migrations | SKIP | — | Infrastructure |
| 2 | achievements | COVERED | Phase 8 (Rewards) | — |
| 3 | activity_feed | **MISSING** | — | Social activity feed not in plan |
| 4 | ad_campaigns | **MISSING** | — | Ad display in player app not planned |
| 5 | ad_creatives | **MISSING** | — | Ad rendering not planned |
| 6 | ad_impressions | **MISSING** | — | Ad impression tracking not planned |
| 7 | ad_slots | **MISSING** | — | Ad slot rendering not planned |
| 8 | admin_users | ADMIN-ONLY | — | Management panel only |
| 9 | approval_requests | ADMIN-ONLY | — | Management panel workflow |
| 10 | audit_log | ADMIN-ONLY | — | Management panel only |
| 11 | audit_logs | ADMIN-ONLY | — | Management panel only |
| 12 | bracket_matches | PARTIAL | Phase 11 (Rank/Tournaments) | Bracket viewing mentioned but not detailed |
| 13 | categories | PARTIAL | Phase 11 | Tournament categories not detailed |
| 14 | charities | **MISSING** | — | Charity system not in plan |
| 15 | charity_donations | **MISSING** | — | Donation tracking not in plan |
| 16 | chat_messages | **MISSING** | — | In-game chat not detailed |
| 17 | cheat_reports | **MISSING** | — | Player reporting not in plan |
| 18 | club_members | **MISSING** | — | Club system not in plan |
| 19 | clubs | **MISSING** | — | Club system not in plan |
| 20 | cosmetic_type_registry | PARTIAL | Phase 10 (Shop) | Type registry reading implied |
| 21 | cosmetics | COVERED | Phase 10 (Shop) | — |
| 22 | domino_matches | COVERED | Phase 5 (Domino) | — |
| 23 | domino_queue | COVERED | Phase 5 (Domino) | — |
| 24 | economy_transactions | COVERED | Phase 8 (Rewards) | — |
| 25 | el3ab_organizations | PARTIAL | Phase 11 (mentioned) | Org browsing/joining not detailed |
| 26 | el3ab_tournament_rounds | PARTIAL | Phase 11 | Round viewing not detailed |
| 27 | el3ab_tournaments | COVERED | Phase 11 (Rank) | — |
| 28 | events | **MISSING** | — | OTB events not in plan |
| 29 | feature_flags | COVERED | Phase 0 (Core/config) | — |
| 30 | friendships | COVERED | Phase 7 (Social) | — |
| 31 | game_plugins | COVERED | Phase 2 (Play carousel) | — |
| 32 | game_theme_overrides | **MISSING** | — | Per-game theming not in plan |
| 33 | leaderboards | COVERED | Phase 11 (Rank) | — |
| 34 | ludo_matches | COVERED | Phase 6 (Ludo) | — |
| 35 | ludo_queue | COVERED | Phase 6 (Ludo) | — |
| 36 | matches | COVERED | Phase 3/4 (Chess) | — |
| 37 | matchmaking_queue | COVERED | Phase 4 (Chess Live) | — |
| 38 | notifications | COVERED | Phase 7 (Social) | — |
| 39 | org_achievements | **MISSING** | — | Org-specific achievements not planned |
| 40 | org_activity_log | ADMIN-ONLY | — | — |
| 41 | org_announcements | **MISSING** | — | Org announcements for members not planned |
| 42 | org_asset_overrides | ADMIN-ONLY | — | — |
| 43 | org_challenges | **MISSING** | — | Inter-org challenges not in plan |
| 44 | org_chat_channels | **MISSING** | — | Org chat not in plan |
| 45 | org_chat_messages | **MISSING** | — | Org chat not in plan |
| 46 | org_chat_moderation | ADMIN-ONLY | — | — |
| 47 | org_content | **MISSING** | — | Org articles/guides not in plan |
| 48 | org_event_participants | **MISSING** | — | Org events not in plan |
| 49 | org_events | **MISSING** | — | Org events not in plan |
| 50 | org_invite_codes | PARTIAL | — | Joining org mentioned, invite flow not detailed |
| 51 | org_invite_links | PARTIAL | — | Same |
| 52 | org_invite_uses | PARTIAL | — | Same |
| 53 | org_leaderboards | **MISSING** | — | Org internal leaderboard not planned |
| 54 | org_loyalty_rewards | **MISSING** | — | Org loyalty system not planned |
| 55 | org_media | **MISSING** | — | Org media gallery not planned |
| 56 | org_member_spotlights | **MISSING** | — | MVPs/spotlights not planned |
| 57 | org_members | PARTIAL | — | Org detail mentioned, member list not detailed |
| 58 | org_membership_applications | **MISSING** | — | Application flow not planned |
| 59 | org_memberships | PARTIAL | — | Joining mentioned, full flow not detailed |
| 60 | org_partnerships | ADMIN-ONLY | — | — |
| 61 | org_player_transfers | **MISSING** | — | Transfer system not planned |
| 62 | org_recruitment_posts | **MISSING** | — | Recruitment browsing not planned |
| 63 | org_referrals | **MISSING** | — | Referral system not planned |
| 64 | org_roster_players | **MISSING** | — | Roster viewing not planned |
| 65 | org_rosters | **MISSING** | — | Roster system not planned |
| 66 | org_seasonal_rankings | **MISSING** | — | Org seasonal rankings not planned |
| 67 | org_theme_overrides | **MISSING** | — | Org theming not in player plan |
| 68 | org_training_sessions | **MISSING** | — | Training sessions not planned |
| 69 | org_treasury | **MISSING** | — | Org treasury (player view) not planned |
| 70 | org_treasury_transactions | **MISSING** | — | Treasury history not planned |
| 71 | organizations | PARTIAL | Phase 11 | Swiss org system — viewing only |
| 72 | pairings | PARTIAL | Phase 11 | Tournament pairings viewing |
| 73 | platform_assets | **MISSING** | — | Dynamic asset loading not planned |
| 74 | platform_branding | **MISSING** | — | Dynamic branding not planned |
| 75 | platform_roles | PARTIAL | — | Auth uses it but not explicitly surfaced |
| 76 | platform_theme | **MISSING** | — | Dynamic theme tokens not planned |
| 77 | player_achievements | COVERED | Phase 8 (Rewards) | — |
| 78 | player_cosmetics | COVERED | Phase 10 (Shop) | — |
| 79 | player_frames | **MISSING** | — | Frame equipping not in plan |
| 80 | player_game_ratings | COVERED | Phase 3 (Chess) | — |
| 81 | player_loyalty_claims | **MISSING** | — | Org loyalty claims not planned |
| 82 | profile_frames | **MISSING** | — | Frame system not detailed |
| 83 | profiles | COVERED | Phase 1/9 (Auth/Profile) | — |
| 84 | puzzles | COVERED | Phase 12 (Puzzles) | — |
| 85 | rating_history | COVERED | Phase 9 (Profile chart) | — |
| 86 | rounds | PARTIAL | Phase 11 | Round viewing |
| 87 | sponsors | **MISSING** | — | Sponsor display not planned |
| 88 | standings | PARTIAL | Phase 11 | Standings viewing |
| 89 | system_config | PARTIAL | Phase 0 | Config loading |
| 90 | theme_settings | **MISSING** | — | Theme system not planned |
| 91 | tournament_ad_slots | ADMIN-ONLY | — | — |
| 92 | tournament_announcements | **MISSING** | — | Tournament announcements not planned |
| 93 | tournament_brackets | PARTIAL | Phase 11 | Bracket viewing |
| 94 | tournament_format_registry | PARTIAL | Phase 11 | Format display |
| 95 | tournament_media | **MISSING** | — | Tournament media not planned |
| 96 | tournament_page_views | SKIP | — | Analytics tracking (background) |
| 97 | tournament_phases | PARTIAL | Phase 11 | Multi-phase viewing |
| 98 | tournament_players | PARTIAL | Phase 11 | Player list in tournament |
| 99 | tournament_prize_payouts | **MISSING** | — | Prize claim/view not planned |
| 100 | tournament_registrations | COVERED | Phase 11 | — |
| 101 | tournament_sponsorships | **MISSING** | — | Sponsor branding in tournament view |
| 102 | tournaments | PARTIAL | Phase 11 | Swiss tournament viewing |
| 103 | trivia_questions | **MISSING** | — | Trivia game not in plan |
| 104 | user_profiles | PARTIAL | — | Legacy table, profile module covers |
| 105 | workflow_rules | ADMIN-ONLY | — | — |
| 106 | xp_levels | COVERED | Phase 8 (Rewards) | — |

---

## Summary

| Status | Count | % |
|--------|-------|---|
| COVERED | 28 | 26% |
| PARTIAL | 21 | 20% |
| **MISSING** | **40** | **38%** |
| ADMIN-ONLY | 10 | 9% |
| SKIP | 7 | 7% |

---

## Missing Features Grouped by Domain

### 1. ADVERTISING SYSTEM (4 tables)
`ad_campaigns`, `ad_creatives`, `ad_impressions`, `ad_slots`

**What's needed:** Player app must DISPLAY ads at configured slots (banners, interstitials, reward videos). Track impressions. This is a revenue feature.

### 2. ORGANIZATION ECOSYSTEM (22 tables)
`org_achievements`, `org_announcements`, `org_challenges`, `org_chat_channels`, `org_chat_messages`, `org_content`, `org_event_participants`, `org_events`, `org_invite_codes`, `org_invite_links`, `org_invite_uses`, `org_leaderboards`, `org_loyalty_rewards`, `org_media`, `org_member_spotlights`, `org_membership_applications`, `org_player_transfers`, `org_recruitment_posts`, `org_referrals`, `org_roster_players`, `org_rosters`, `org_seasonal_rankings`, `org_theme_overrides`, `org_training_sessions`, `org_treasury`, `org_treasury_transactions`

**What's needed:** Full org member experience — browse, join, view announcements, participate in events, earn org achievements, see org leaderboard, claim loyalty rewards, view rosters, participate in challenges, read org content, use org chat, see org theme applied.

### 3. SOCIAL ACTIVITY (2 tables)
`activity_feed`, `chat_messages`

**What's needed:** Activity feed (social timeline), in-game/match chat.

### 4. CLUBS (2 tables)
`clubs`, `club_members`

**What's needed:** Legacy club system — browse, join, member list.

### 5. CHARITIES (2 tables)
`charities`, `charity_donations`

**What's needed:** View charities, see donation history, tournament charity display.

### 6. REPORTING/MODERATION (1 table)
`cheat_reports`

**What's needed:** Players can REPORT other players for cheating/abuse.

### 7. THEMING (4 tables)
`game_theme_overrides`, `platform_theme`, `platform_assets`, `theme_settings`, `platform_branding`

**What's needed:** Dynamic theming — load platform theme tokens, apply game-specific overrides, org-specific themes.

### 8. FRAMES (2 tables)
`player_frames`, `profile_frames`

**What's needed:** Frame system — equip profile frames, view earned/purchased frames.

### 9. SPONSORS (2 tables)
`sponsors`, `tournament_sponsorships`

**What's needed:** Display sponsor branding in tournaments, sponsor logos.

### 10. TRIVIA (1 table)
`trivia_questions`

**What's needed:** Trivia mini-game (another game type alongside chess/domino/ludo).

### 11. TOURNAMENT EXTRAS (3 tables)
`tournament_announcements`, `tournament_media`, `tournament_prize_payouts`

**What's needed:** View tournament announcements, media gallery, prize claim history.

### 12. ORG LOYALTY (2 tables)
`org_loyalty_rewards`, `player_loyalty_claims`

**What's needed:** Org loyalty reward system (daily check-in within org, claim rewards).

---

## Verdict

The current plan covers the **core gameplay loop** (chess, domino, ludo, matchmaking, ratings, economy, basic social) but is missing:

1. **The entire org MEMBER experience** (22 tables worth of features!)
2. **Advertising** (revenue-critical)
3. **Dynamic theming** (platform + game + org themes)
4. **In-game chat** 
5. **Activity feed**
6. **Player reporting**
7. **Frames/cosmetic equipping** (beyond basic shop)
8. **Charity display**
9. **Sponsors display**
10. **Trivia game**
11. **Tournament rich content** (announcements, media, prizes)

The org system alone is MASSIVE and needs its own dedicated module with multiple sub-scenes.
