# Information Architecture and Screen Specification ## 1. Product Structure Fan Passport should be organized around five user mental models: 1. **Today** — what to do now. 2. **Journey** — where I am in the tournament. 3. **Play** — predictions, trivia, and challenges. 4. **Collection** — album, stickers, badges, and stamps. 5. **Compete/Profile** — leaderboards, friends, sharing, identity, settings. The information architecture should make daily actions one tap away while keeping deeper completion systems discoverable. ## 2. Primary Navigation ### 2.1 Recommended Top-Level Tabs | Tab | Purpose | Primary User Questions | | --- | --- | --- | | Home | Daily dashboard | What should I do today? What changed? | | Journey | Tournament map, teams, matches, stadiums | Where is the tournament and my team journey? | | Play | Predictions, trivia, challenges | What can I play now? | | Collection | Album, badges, stamps, packs | What have I collected and what is missing? | | Leaderboards | Rankings and friend competition | How do I compare? | | Profile | Passport identity, recap, settings | Who am I as a fan? What can I share/control? | On small mobile layouts, Profile can be accessible through Home header/avatar rather than a sixth bottom tab if tab capacity is constrained. ### 2.2 Home Priority Order Home modules should sort by urgency: 1. Critical account/privacy notice if needed. 2. Prediction locks within two hours. 3. Live or recently completed favorite-team match. 4. Daily passport stamp. 5. Daily trivia. 6. Today’s fixture list. 7. Active challenge progress. 8. Pack available to open. 9. Badge/collection progress. 10. Leaderboard movement. 11. Tomorrow/next match teaser. ## 3. Sitemap ```text Fan Passport ├── Onboarding │ ├── Welcome │ ├── Guest/Create Account │ ├── Choose Favorite Team │ ├── Choose Country/Region │ ├── Privacy and Leaderboard Visibility │ └── Starter Pack ├── Home │ ├── Today Dashboard │ ├── Daily Passport Stamp │ ├── Daily Summary │ └── Notification Permission Prompt ├── Journey │ ├── Tournament Overview │ ├── Groups │ │ └── Group Detail │ ├── Knockout Bracket │ ├── Match List │ │ └── Match Detail │ ├── Teams │ │ └── Team Detail │ └── Stadiums │ └── Stadium Detail ├── Play │ ├── Prediction Hub │ │ ├── Match Prediction │ │ ├── Giant Killing Pick │ │ ├── Bracket Prediction │ │ └── Prediction History │ ├── Daily Trivia │ │ ├── Quiz Intro │ │ ├── Question │ │ └── Results and Explanation │ └── Challenges │ └── Challenge Detail ├── Collection │ ├── Album Overview │ ├── Album Page │ ├── Sticker Detail │ ├── Pack Opening │ ├── Crafting │ ├── Badge Cabinet │ ├── Badge Detail │ └── Stamps Timeline ├── Leaderboards │ ├── Overall │ ├── Prediction Pro │ ├── Trivia Masters │ ├── Collectors │ ├── Friends │ ├── Country/Region │ └── Favorite Team Fans └── Profile ├── Passport Cover ├── Public Profile Preview ├── Share Moments ├── Friends/Invite ├── Notification Settings ├── Privacy Settings ├── Account Settings ├── Data Export/Delete └── Passport Archive ``` ## 4. Fan-Facing Screen Inventory | ID | Screen | Purpose | Primary Actions | Required States | | --- | --- | --- | --- | --- | | S01 | Welcome | Explain Fan Passport value | Start guest, create account, sign in | First visit, returning guest | | S02 | Account Start | Create or continue identity | Continue as guest, sign up, log in | Error, loading, existing account | | S03 | Favorite Team Selection | Personalize journey | Choose team, skip, search | Teams loading, search empty | | S04 | Country/Region Selection | Leaderboard and localization | Choose region, skip/private | Privacy note | | S05 | Privacy Setup | Set public visibility | Public, friends, private | Minor-safe defaults | | S06 | Starter Pack | First collection reward | Open pack, view album | Pack opening, duplicate-free | | S07 | Home Today | Daily dashboard | Stamp, predict, quiz, open pack | Matchday, rest day, post-final | | S08 | Daily Stamp | Claim daily passport stamp | Stamp passport, share | Already stamped, missed yesterday | | S09 | Daily Summary | Show completed actions | Review rewards, share, continue | No rewards, multiple unlocks | | S10 | Tournament Overview | Big-picture tournament state | Browse groups, bracket, today | Pre-tournament, group, knockout | | S11 | Match List | Browse fixtures | Filter by date/team/group/stadium | No matches, loading, postponed | | S12 | Match Detail | Match companion | Predict, stamp, view result | Upcoming, locked, live, final | | S13 | Match Prediction | Submit prediction | Pick outcome, score, save | Editable, locked, late, saved | | S14 | Giant Killing Pick | Bold upset prediction | Declare, remove before lock | Eligible, ineligible, locked | | S15 | Prediction History | Trust and review | View settled/pending picks | Empty, correction notice | | S16 | Bracket Prediction | Knockout predictions | Fill bracket, save | Not open, editable, locked | | S17 | Daily Trivia Intro | Start daily quiz | Start quiz, view streak | Already completed | | S18 | Quiz Question | Answer question | Select answer, next | Timed optional, answered | | S19 | Quiz Results | Show score and explanations | Review, share, practice | Perfect, correction notice | | S20 | Challenge Hub | Active objectives | Filter, open challenge | Empty/rest-day content | | S21 | Challenge Detail | Explain criteria/reward | Track, act, share completion | In progress, completed, expired | | S22 | Album Overview | Collection progress | Open category, open pack, craft | No items, pack available | | S23 | Album Page | View set progress | Inspect item, craft missing | Complete, missing, locked | | S24 | Sticker Detail | Item context | Favorite, share, craft if missing | Owned, duplicate, missing | | S25 | Pack Opening | Reward reveal | Open, reveal all, continue | Network retry, duplicate conversion | | S26 | Crafting | Use duplicate tokens | Craft item, choose pack | Insufficient tokens | | S27 | Badge Cabinet | Achievement display | Filter, inspect, share | Locked, unlocked, progress | | S28 | Badge Detail | Badge criteria/progress | Share, navigate to action | Secret, archived | | S29 | Stamps Timeline | Memory timeline | Browse stamps, share day | Empty, post-final archive | | S30 | Leaderboard Hub | Compare rankings | Switch leaderboard/filter | Private user, opt-in | | S31 | Leaderboard Detail | Ranking list | View friends, country, team | Loading, hidden, anomaly | | S32 | Public Profile | Passport identity | View badges, collections, share | Private sections hidden | | S33 | Share Moment Preview | Safe sharing | Customize, copy link, save image | Privacy warning | | S34 | Friend Invite | Social competition | Invite, join code, manage friends | Invalid code | | S35 | Notification Settings | Return loop controls | Toggle categories, quiet hours | Permission denied | | S36 | Privacy Settings | Visibility controls | Change leaderboard/share settings | Confirmation | | S37 | Account Settings | Account management | Upgrade, log out, delete/export | Guest upgrade, deletion | | S38 | Passport Archive | Post-tournament memory | View recap, share, start next | Live, provisional, archived | | S39 | Error/Offline State | Resilience | Retry, view cached content | Offline, expired action | | S40 | Help and Rules | Explain mechanics | Read scoring, FAQ, contact | Rule version updates | ## 5. Admin Screen Inventory | ID | Screen | Purpose | Primary Actions | Required States | | --- | --- | --- | --- | --- | | A01 | Admin Dashboard | Operational overview | View today, incidents, content status | Matchday/rest day | | A02 | Fixture Manager | Manage fixtures | Create/update match, kickoff, venue, status | Scheduled, postponed, final | | A03 | Result Settlement | Enter/verify results | Set score, settle predictions, rerun | Pending, settled, corrected | | A04 | Team/Group Manager | Maintain tournament structure | Update teams, groups, standings | Pre/post draw | | A05 | Stadium Manager | Maintain venue content | Edit facts, images/rights status | Missing rights warning | | A06 | Trivia CMS | Manage quiz questions | Create, review, schedule, retire | Draft, reviewed, published | | A07 | Challenge Manager | Configure missions | Create, schedule, expire, reward | Active, completed by users | | A08 | Badge Rule Manager | Configure badge criteria | Create, version, archive | Rule version warning | | A09 | Collection Manager | Configure album/items/packs | Edit items, rarity, pack rules | Rights/rarity review | | A10 | Leaderboard Moderation | Protect fairness | Hide, review, restore, recalc | Pending review | | A11 | Notification Manager | Send campaigns | Schedule, segment, test | Quiet hours, opt-out counts | | A12 | Analytics Dashboard | Monitor product health | View KPIs, export reports | Data delay notice | | A13 | Audit Log | Trace admin actions | Filter actor/action/date | Immutable history | | A14 | Content Rights Register | Track asset permissions | Mark licensed/neutral/restricted | Expiry warning | ## 6. Detailed Screen Specifications ### S01 — Welcome **Purpose:** Communicate the product promise in under 10 seconds. Content: - Product name. - Short value statement: “Collect your World Cup journey.” - Three feature bullets: - Predict matches. - Unlock badges. - Collect teams, stadiums, and moments. - Primary CTA: “Start my passport.” - Secondary CTA: “Sign in.” - Link: “How it works.” Acceptance behavior: - First-time users see Welcome. - Returning users with active session bypass to Home. - Users can continue without understanding every mechanic. ### S02 — Account Start Options: - Continue as guest. - Create account. - Log in. Requirements: - Guest mode warns progress may be device-bound until upgraded. - Upgrade path must preserve passport progress. - Authentication errors use plain language. - Users can read privacy summary before account creation. ### S03 — Favorite Team Selection Purpose: - Personalize challenges, notifications, and team journey. Requirements: - Search and browse qualified teams. - Show group where known. - Allow skip with “choose later.” - Allow later edit, but badge criteria based on current or historical favorite team must be clear. - If a team is eliminated, offer adopt-a-team prompt without erasing original favorite-team history. ### S04 — Country/Region Selection Purpose: - Localize leaderboards and community identity. Requirements: - Explain that country/region can be hidden. - Do not require exact location. - Allow “Prefer not to say.” - Region affects leaderboard grouping only if user opts in. ### S05 — Privacy Setup Settings: - Public leaderboard visibility. - Friend leaderboard visibility. - Share card display name. - Country/region visibility. - Favorite team visibility. Defaults: - Adult/general users: public can be offered but must be explicit. - Younger or unknown-age users: conservative defaults where required by applicable law. ### S06 — Starter Pack Purpose: - Give immediate collection satisfaction. Contents: - Favorite team item if selected. - One stadium item. - One group or host city item. - One random common item. Rules: - No duplicates in starter pack. - User sees album slots filled after reveal. - Pack opening can be skipped with items still awarded. ### S07 — Home Today Modules: - Header with passport level and streak. - Daily stamp card. - Prediction deadline card. - Favorite team match card. - Daily trivia card. - Pack available card. - Active challenges. - Recent unlocks. - Leaderboard movement. - Tomorrow teaser. States: | State | Behavior | | --- | --- | | Pre-tournament | Countdown, onboarding completion, champion prediction | | Group stage matchday | Prediction queue prioritized | | Rest day | Trivia, collection, recap, upcoming bracket | | Knockout | Bracket and high-stakes match cards | | Final day | Final prediction, final stamp, recap preview | | Post-final | Recap and archive CTA | ### S08 — Daily Stamp Purpose: - Reinforce passport metaphor. Visual elements: - Stamp artwork based on phase. - Date. - Tournament day number. - Short copy. - Reward summary. States: - Available. - Already stamped. - Missed yesterday with streak freeze option. - Streak broken with compassionate reset copy. ### S09 — Daily Summary Shows: - XP earned. - Passport Points earned. - Badge progress. - Collection items gained. - Streak changes. - Next recommended action. Requirements: - Consolidates multiple rewards without overwhelming the user. - Offers one share CTA only for meaningful moments. - Shows “continue” path back to Home. ### S10 — Tournament Overview Displays: - Current phase. - Groups or bracket. - Today’s matches. - Favorite team status. - Completion progress by phase. Interactions: - Tap group. - Tap match. - Tap team. - Tap stadium. - View challenge linked to phase. ### S11 — Match List Filters: - Date. - Team. - Group. - Stadium. - Phase. - Prediction status. - Favorite team. States: - No matches today. - Matches postponed. - Results final. - Prediction missing. - Prediction locked. ### S12 — Match Detail Sections: - Teams. - Kickoff time in local timezone. - Stadium. - Group/phase. - Prediction status. - Stamp status. - Result and settlement after match. - Related challenges. - Related collectibles. - Trivia/facts. Primary CTA logic: | Match State | Primary CTA | | --- | --- | | Upcoming and prediction open | Make prediction | | Upcoming and prediction saved | Edit prediction | | Prediction locked | View locked prediction | | Live | Stamp match | | Final and unsettled | View result pending points | | Final and settled | View prediction points | | Post-match unstamped | Claim memory stamp if allowed by rule | ### S13 — Match Prediction Fields: - Outcome. - Exact score. - Knockout advancement pick where applicable. - Giant killing declaration if eligible. Requirements: - Save shows timestamp. - User can edit before lock. - Locked state clearly prevents changes. - Explain scoring inline. - Validate score inputs. - Show local kickoff and lock time. ### S14 — Giant Killing Pick Eligibility display: - “Eligible because [Team] is ranked at least 15 places lower.” - “Eligible because this knockout matchup is marked as a major upset opportunity.” Requirements: - User can add or remove declaration before lock. - User cannot declare if match is ineligible. - Correct giant killing has a special settlement animation and share card. ### S15 — Prediction History Filters: - Pending. - Settled. - Correct. - Exact score. - Giant killing. - Favorite team. Each row: - Match. - User prediction. - Result. - Points. - Status. - Details link. Correction state: - Shows “Adjusted” label if points changed after correction. - Detail explains previous and current settlement. ### S16 — Bracket Prediction Requirements: - Locked until knockout bracket known. - Users can save draft before final lock if supported. - Clear lock deadline. - Shows points available per round. - After lock, displays user bracket vs actual path. ### S17 — Daily Trivia Intro Shows: - Daily theme. - Number of questions. - Streak. - Reward potential. - One scored attempt warning. Primary CTA: - Start quiz. If already completed: - Show score. - Review explanations. - Practice mode CTA if available. ### S18 — Quiz Question Requirements: - Clear question text. - Four answer choices. - Progress indicator. - Accessible controls. - No answer change after submitting each question unless quiz design allows review-before-final-submit; choose one design and keep it consistent. - If network fails, preserve submitted answers safely. ### S19 — Quiz Results Shows: - Score out of 5. - Passport Points earned. - XP earned. - Streak status. - Correct answers with explanations. - Badge progress. - Share CTA for perfect score or milestone. Correction state: - If a question was invalidated, show corrected score and reason. ### S20 — Challenge Hub Sections: - Daily. - Matchday. - Phase. - Team. - Collection. - Prediction. - Legacy. Filters: - Active. - Completed. - Expiring soon. - Archived. Requirements: - Expiring soon challenges are prominent. - Completed challenges remain accessible. - Challenges link to the action needed. ### S21 — Challenge Detail Shows: - Criteria. - Progress. - Time remaining. - Rewards. - Linked badges or collection sets. - Eligible actions. States: - Not started. - In progress. - Completed and claimed. - Expired incomplete. - Expired completed. - Corrected due to data change. ### S22 — Album Overview Displays: - Overall collection percentage. - Category cards. - Packs available. - Craft Token balance. - Recently collected items. - Missing high-priority items. Requirements: - Completionists can understand exactly what remains. - Users can navigate directly to incomplete sets. - Album should not rely on official marks unless rights are secured. ### S23 — Album Page Shows: - Grid/list of items. - Owned/missing states. - Rarity. - Set progress. - Completion reward. - Ways to earn missing items. States: - Empty. - Partially complete. - Complete. - Limited-time item expired but still viewable if missed. ### S24 — Sticker Detail Owned state: - Art. - Name. - Category. - Rarity. - Description. - Date acquired. - Duplicate count. - Related match/team/stadium. Missing state: - Silhouette or neutral placeholder shape. - Hint for earning. - Craft option if available. - Pack source. ### S25 — Pack Opening Requirements: - Show pack source. - Reveal items with rarity. - Distinguish new vs duplicate. - Convert duplicates to Craft Tokens. - Allow skip/reveal all. - Persist reward before animation completes. - Retry state cannot double-award. ### S26 — Crafting Shows: - Craft Token balance. - Craftable missing items. - Costs. - Category filters. - Confirmation. Rules: - Crafting is irreversible. - Achievement-only legendary items cannot be crafted unless explicitly allowed. - Crafted items count as collected and can complete sets. ### S27 — Badge Cabinet Filters: - Category. - Tier. - Locked/unlocked. - Recent. - Shareable. Display: - Badge art. - Name. - Tier. - Progress where visible. - Unlock date if unlocked. ### S28 — Badge Detail Shows: - Description. - Criteria. - Progress. - Rewards. - Related challenge. - Unlock date. - Share card. Secret badge state: - Shows “Secret badge” until unlocked. - Does not reveal criteria unless product rules allow. ### S29 — Stamps Timeline Shows chronological: - Daily stamps. - Match stamps. - Stadium stamps. - Badge milestones. - Favorite-team moments. - Final recap markers. Requirements: - Useful as post-tournament memory artifact. - Supports share by day or milestone. - Missing days use gentle copy, not shame. ### S30 — Leaderboard Hub Shows available leaderboards: - Overall Passport. - Prediction Pro. - Trivia Masters. - Collectors. - Friends. - Country/Region. - Favorite Team Fans. - Phase. Requirements: - Private users see explanation and opt-in control. - User’s own rank visible even if outside top rows, unless private mode hides from public only. ### S31 — Leaderboard Detail Displays: - Rank. - Display name. - Avatar. - Score. - Relevant stat. - User row. - Last updated time. - Tie-breaker explanation link. States: - Public. - Friends only. - Private. - Hidden pending review. - Final archived. ### S32 — Public Profile Sections: - Passport cover. - Level. - Favorite team if public. - Selected badges. - Collection highlights. - Prediction highlights if public. - Share moments. Private sections show a respectful hidden state. ### S33 — Share Moment Preview Requirements: - User previews exact card. - Privacy toggles visible. - Copy link/save image/share native. - Deep link target is shown or described. - For private accounts, warn when sharing public link. ### S34 — Friend Invite Features: - Create invite link/code. - Join code. - Friend leaderboard. - Remove friend. - Block/report if social features expand. Rules: - Friends can compare leaderboard rows. - Joining a friend leaderboard should not expose private fields beyond chosen display settings. ### S35 — Notification Settings Controls: - Prediction reminders. - Daily trivia. - Streak reminders. - Match result settlement. - Badge/collection rewards. - Friend leaderboard movement. - Tournament recap. - Quiet hours. - Channel preferences. Requirements: - Users can disable all non-essential notifications. - Permission denied state explains browser/OS steps without trapping user. ### S36 — Privacy Settings Controls: - Public leaderboard participation. - Show country/region. - Show favorite team. - Public profile visibility. - Share-card defaults. - Friend discoverability. Requirements: - Changes apply prospectively and update public surfaces promptly. - If hiding from leaderboard, explain effect on rankings. ### S37 — Account Settings Features: - Upgrade guest account. - Change email/login method where applicable. - Log out. - Export data. - Delete account. - Legal/privacy links. Guest upgrade: - Shows what will be preserved. - Confirms successful merge. Deletion: - Requires confirmation. - Explains leaderboard anonymization where legally permitted. ### S38 — Passport Archive Post-final sections: - Tournament summary. - Total stamps. - Favorite team journey. - Prediction stats. - Quiz stats. - Collection completion. - Badges unlocked. - Final leaderboard ranks. - Share recap. - Start next passport. States: - Live tournament: “Archive unlocks after final.” - Provisional: “Scores finalizing.” - Archived: final memory mode. ### S39 — Error/Offline State Common messages: - “You’re offline. We’ll show saved passport content.” - “Prediction deadline has passed.” - “This result is being verified.” - “Pack reward already claimed.” - “Quiz unavailable; retry.” Requirements: - Never imply an action succeeded unless persisted. - Avoid duplicate rewards on retry. - Provide next best action. ### S40 — Help and Rules Sections: - How Passport Points work. - How XP and levels work. - Prediction rules. - Giant killing rules. - Quiz rules. - Collection and crafting rules. - Leaderboard privacy. - Score corrections. - Contact/support. Requirements: - Rule versions can be referenced after corrections. - Help links from scoring breakdowns go directly to relevant section. ## 7. Key User Flows ### 7.1 First Session Flow 1. Welcome. 2. Continue as guest or create account. 3. Choose favorite team. 4. Choose privacy level. 5. Open Starter Pack. 6. Home Today. 7. Stamp today. 8. Make first prediction or answer quiz. 9. Unlock first badge. 10. See daily summary. ### 7.2 Match Prediction Flow 1. Home shows match prediction deadline. 2. User taps match. 3. User opens prediction. 4. User selects outcome and score. 5. User optionally declares giant killing if eligible. 6. User saves. 7. Confirmation shows lock time. 8. User can edit until lock. 9. After result, settlement card appears. 10. User views points and share card if notable. ### 7.3 Daily Trivia Flow 1. Home shows Daily Trivia. 2. User opens quiz intro. 3. User starts one scored attempt. 4. User answers five questions. 5. Results page shows score, explanations, rewards. 6. Badge/streak progress updates. 7. Perfect score or milestone can be shared. ### 7.4 Collection Completion Flow 1. User earns pack through mission. 2. Pack available appears on Home and Album. 3. User opens pack. 4. Items reveal as new/duplicate. 5. Album progress updates. 6. If set complete, badge unlocks. 7. User shares collection set or continues to missing items. ### 7.5 Team Elimination Retention Flow 1. Favorite team is eliminated. 2. Home acknowledges journey without negative tone. 3. User receives completed team badge if criteria met. 4. Product suggests: - Adopt a team. - Complete stadium set. - Predict knockout bracket. - Continue trivia streak. 5. User’s original team remains in passport history. ## 8. Product Content/Data Contracts These are product-level contracts, not implementation schemas. Engineering can convert them into database/API models. ### 8.1 User Profile Fields: - User ID. - Display name. - Avatar. - Account type: guest or registered. - Favorite team ID. - Adopted team ID history. - Country/region. - Privacy settings. - Notification settings. - XP. - Level. - Passport Points. - Streak state. - Created date. - Last active date. ### 8.2 Team Fields: - Team ID. - Name. - Short name. - Country/region code. - Group. - Ranking/seed source if used. - Visual asset rights status. - Team facts. - Fixtures. - Elimination status. ### 8.3 Match Fields: - Match ID. - Competition phase. - Group or round. - Team A. - Team B. - Stadium ID. - Kickoff time. - Lock time. - Status: scheduled, postponed, live, final, abandoned, void. - Score by settlement basis. - Knockout advancement winner if applicable. - Result source. - Settlement version. ### 8.4 Stadium Fields: - Stadium ID. - Name. - Host city. - Host country. - Capacity/facts if sourced. - Matches hosted. - Visual asset rights status. - Collection item IDs. ### 8.5 Prediction Fields: - Prediction ID. - User ID. - Match ID. - Outcome pick. - Score pick. - Advancement pick. - Giant killing declaration. - Submitted timestamp. - Updated timestamp. - Lock timestamp. - Status: draft, submitted, locked, settled, void. - Points awarded. - Rule version. - Settlement event ID. ### 8.6 Quiz Question Fields: - Question ID. - Prompt. - Answers. - Correct answer. - Explanation. - Difficulty. - Category. - Locale. - Source/review note. - Active date/window. - Status: draft, reviewed, scheduled, live, retired, invalidated. ### 8.7 Quiz Attempt Fields: - Attempt ID. - User ID. - Quiz date. - Question IDs. - Submitted answers. - Correct count. - Points awarded. - XP awarded. - Streak impact. - Status: in progress, complete, corrected. - Rule version. ### 8.8 Badge Fields: - Badge ID. - Name. - Category. - Tier. - Criteria. - Progress display rule. - Reward XP. - Reward Passport Points. - Visibility. - Active window. - Rule version. - Share template. ### 8.9 User Badge Progress Fields: - User ID. - Badge ID. - Current progress. - Target progress. - State: locked, in progress, unlocked, archived. - Unlock timestamp. - Rewards awarded event ID. ### 8.10 Collectible Item Fields: - Item ID. - Name. - Category. - Rarity. - Album page. - Related team/match/stadium/challenge. - Art asset rights status. - Description. - Availability window. - Craftable flag. ### 8.11 User Collection Item Fields: - User ID. - Item ID. - Owned count. - First acquired timestamp. - Acquisition source. - Duplicate count. - Craft status. ### 8.12 Challenge Fields: - Challenge ID. - Name. - Type. - Description. - Criteria. - Start/end time. - Rewards. - Related badge. - Related collection set. - Eligibility. - Status. - Rule version. ### 8.13 Score Event Fields: - Event ID. - User ID. - Source type. - Source ID. - XP delta. - Passport Points delta. - Craft Token delta. - Created timestamp. - Rule version. - Reversal/correction reference. - Admin actor if manually applied. ### 8.14 Share Moment Fields: - Share ID. - User ID. - Trigger type. - Source ID. - Template ID. - Privacy fields. - Generated asset URL or payload. - Deep link. - Created timestamp. - Expiry policy if any. ## 9. Empty, Loading, and Error State Principles ### 9.1 Empty States Empty states should always answer: - Why is this empty? - What can I do next? - When will it change? Examples: - No predictions: “No open predictions right now. Next match opens soon.” - No collectibles: “Open your Starter Pack to begin your album.” - No friends: “Invite friends to create a private leaderboard.” ### 9.2 Loading States Loading states should: - Preserve layout where possible. - Avoid blocking already cached content. - Show last updated time for fixtures and leaderboards. - Avoid allowing prediction submission until lock state is confirmed. ### 9.3 Error States Error states should: - Be specific. - Preserve user input where safe. - Offer retry. - Avoid double-awarding rewards. - Give support path for scoring disputes. ## 10. Accessibility Requirements by Screen Type | Screen Type | Requirement | | --- | --- | | Prediction forms | Labels for teams, scores, lock state; keyboard navigable | | Quiz | Screen-reader answer choices; no color-only correct state | | Pack opening | Reduced motion option; reveal-all fallback | | Badge cabinet | Text labels for badge art and tier | | Leaderboards | Table semantics or accessible list grouping | | Share preview | Alt text preview and privacy warning | | Timeline | Chronological labels and date clarity | | Notifications | Plain-language opt-in and opt-out | ## 11. Localization Requirements by Screen Type | Screen Type | Requirement | | --- | --- | | Match detail | Local timezone, localized date and time | | Quiz | Locale-reviewed questions, not raw machine translation | | Badges | Translatable names and descriptions | | Collections | Avoid text embedded in art where possible | | Leaderboards | Localized number formatting | | Privacy | Jurisdiction-aware legal copy | | Notifications | Localized kickoff times and team names | ## 12. Screen-to-System Dependency Map | Screen | Depends On | | --- | --- | | Home Today | User profile, daily stamp, fixtures, predictions, quiz, challenges, badges, collections | | Match Prediction | Fixtures, lock service, prediction rules, user profile | | Quiz | Quiz schedule, attempt rules, scoring | | Album | Collection inventory, pack rules, crafting | | Badge Cabinet | Badge rules, progress events | | Leaderboard | Score events, privacy settings, moderation | | Share Preview | Share templates, privacy settings, source moment | | Passport Archive | Aggregated user history, final leaderboard, recap generation | | Admin Settlement | Fixtures, results, scoring rules, audit log | ## 13. Implementation Readiness Notes This screen specification intentionally separates: - **Product behavior** — what must happen. - **Visual design** — to be created in a prototype/design milestone. - **Technical architecture** — to be created in an engineering milestone. The required product states, data contracts, and flows are complete enough for design, backlog creation, and technical modeling.