MVP Homepage bundle (8 pages). Multi-page: source is the bundle root, not one file — see build-home-staging.sh and handoffs/HANDOFF-home.md.
1Entry
Marketing surfaces — first touch to sign-up
2Discover
Finding players and opportunities. Thin on purpose, for now — one built surface and two holding slots. Search exists; the listing an opportunity belongs to, and everything a club or agent would browse rather than search, does not yet.
3Records
The core surfaces, one column per entity — claimed above unclaimed, private workspace last. Players and clubs are generated from data files; leagues have their own generator. Agents, agencies and coaches are still hand-authored, deliberately: there is one of each, and a claimed page and an unclaimed page share less than half their sections, so they are two designs rather than two states.
Players
Passport = claimed · Record = unclaimed · generated
The canonical claimed Passport (Elias Hartmann).
Tier-A claimed clone of the canonical Passport; does not touch /passport/. See handoffs/HANDOFF-tier-a-player-buildout.md.
Tier-A claimed clone of the canonical Passport; does not touch /passport/.
Claimed, NOT verified — no identity-verified corner mark; legal identity NOT PROVIDED, records club-attested. Gated against data/meridian-current-roster.json. See handoffs/HANDOFF-meridian-claimed-passports.md.
Claimed, NOT verified — same terms as Ante Marković.
Deliberately the SAME player (Elias) as /passport/, a before/after pair (Founder call 2026-07-27). "Record" unclaimed, "Passport" claimed.
Tier-A unclaimed; stays passport:pending. Interim portrait until headshot-unclaimed-01 exists. See handoffs/HANDOFF-amara-tomas-unclaimed.md.
Tier-A unclaimed; same terms as Amara Okafor.
Coaches
Passport = claimed · Record = unclaimed · flows are driveable
FD-048, flag coach_passport: prototype + controlled staging ONLY. Daniel Vos, bound to the Club Profile’s club-declared staff. See handoffs/HANDOFF-coach-passport.md.
FD-048 scope. Marta Ilić, club-created.
WF-002 driveable state machine: club confirms, only Roster Assist verifies.
WF-001 v2.0 driveable state machine; FD-048 widened scope to any represented profile type.
Agents
Profile = claimed · Record = unclaimed
Agencies
Profile = claimed · Record = unclaimed
Clubs
Profile = claimed · Hub = private workspace · generated
Meridian. Evidence-led Overview + unified roster; Schedule/Stats/History are stubs.
Unclaimed counterpart, league-sourced.
PRIVATE GM workspace — a separate surface from the public Club Profile (Founder: do not combine).
The settings shell with a CLUB subject (FD-047 d.3). BUILD FROM SOURCES (club-declared, never "verified"; nothing fetched) and ANONYMOUS OPENINGS (measured cover). Presentation Asset.
Two milestones separated (claim commits at #/success; setup skippable, non-reversing). Four relationships kept distinct (follow / roster / invite / entitlement). Nothing is sent. Club adapter implemented; player/agent/agency contracts declared, shell refuses to run them.
Leagues
Competition profile · generated from a league record
The SECOND league, and the one that proves the template is a template: same generator, same build script, a different LEAGUE RECORD and nothing else. Section is 'leagues' (moved from 'clubs', 9 Aug 2026 — Records now has a Leagues column) rather than 'realworld' because the subject is invented — 'realworld' is what that section means, and this is the fictional estate's own competition, the one Meridian plays in. ITS REEL IS A GALLERY: the record sets videos.playable = false, so the cards are stills with no player, and the build asserts the shipped bundle reaches no video host at all.
4Real World Mockups
The same surfaces carrying REAL data end to end — a real player's career, a real club's season, a real competition. Kept separate from everything above, which is invented: mixing the two is how a demonstration starts asserting something false. Everything platform-side (record IDs, claimed state, verification, contact routing) is staged, and each page says so in its own notice. Not affiliated with or endorsed by the subjects; compiled from public sources for demonstration.
First Passport with REAL end-to-end data: RealGM bio + 11 pro seasons, 3 NCAA, 4 playable YouTube clips.
REAL data, 2025-26 completed season (RealGM, official SLB standings, public record). First Club Partner sponsor band — a worked proposal, NOT an approved component.
GENERATED from club-profile.html by _gen_league_slb.py — third configuration of the profile system (person/organisation/competition); shell cannot drift. Real data; claimed and not verified, deliberately. Flat route /league-slb/ (gallery flattens all routes).
5Platform
Shared-shell destinations from the global header — where a signed-in person lands and what they manage from there
One adaptable signed-in homepage plus a Match Centre and a Following manager, rendered for five example people. The role layer decides a PAGE, not a column: a sixth role is one HOME_PRESETS entry, not a new surface. Every professional persona is bound to a record the estate already held. No post composer, no comments, no likes, no follower counts — every item is a system-generated event that can explain why it is there. TWO THINGS ARE UNRATIFIED and the builder puts a notice on the staged page saying so in plain words: the prototype role switcher, and the competition media card (published-activity scope covers media added by the owner of a claimed player or club record; a competition adding its own sits outside it). NO sync tags on purpose — this page carries its own token layer rather than the generated RA-SYSTEM regions, which is an open decision, and tagging it here would quietly answer it. Assets are COLLECTED by driving the page rather than hand-listed (_ra_home_assets.mjs): it holds one literal asset path and builds every other URL at runtime. Gates: 351 behaviour/permission/provenance assertions, plus a 44-audit axe sweep over both themes, five roles and three views.
First surface a signed-in person EDITS. Four account states. NO governing Component Standard (CS-005 is a workspace; CS-006–009 deferred, FD-025) — an exploration, not a ratified pattern.
Internal — not part of the product flow
Archive — superseded, still built
Out of the site map, not deleted. These still build and their URLs still resolve, so anything already shared keeps working; they are here so the map above shows what the product is rather than everything it has ever been.
ARCHIVED 9 Aug 2026: a branded holding placeholder that never became a real surface, and the marketing site no longer needs a waiting list. Kept building so its route does not 404.
Route /network/ (FD-041), post-login destination. CS-005 (FD-042); Presentation Asset (FD-027); Follow control out while CS-004 is Draft. Six states behind a labelled control. ARCHIVED 9 Aug 2026: superseded as the post-login destination by the role-aware Home ('ra-home'). Still built and still reachable at /network/ so existing links keep working; it is out of the main site map, not deleted. Whether Home formally replaces it is an open route-ownership decision — PS-005 §10 still names /network/ — so nothing here re-decides it.