e6e2bd10c529f6ae41aaee89bf22f04eb486203d
5-sprint outside-in FT suite. Each FT class drives one sprint: Sprint 1 (DeckContributionTest): role confirmation sets TableSeat.deck_variant to the gamer's equipped deck; Game Kit tooltip shows game name + In-Use status. Sprint 2 (DeckInUseGameKitTest): DON btn-disabled w.o DOFF toggle for in-use deck; tooltip names the game; non-contributing deck retains normal DON/DOFF. Sprint 3 (GameInviteNotificationTest, @two-browser): invite_gamer() creates BillPost(kind=INVITE) for invitee; INVITE: <room> link appears in My Posts. Sprint 4 (GameInviteBillPostTest): /billboard/post/<pk>/ renders _billpost_invite partial; BYE dismisses; OK shows join-guard when valid deck is equipped. Sprint 5 (GameInviteDeckValidationTest): OK btn-disabled + tooltip when no valid deck; confirming join assigns deck to seat and locks Game Kit DON. New model surface: billboard.BillPost (kind, recipient, room, invite, dismissed) New field: epic.TableSeat.deck_variant FK → DeckVariant Code architected by Disco DeDisco <discodedisco@outlook.com> Git commit message Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
Python
45%
JavaScript
37.6%
HTML
9%
SCSS
8.2%
Jinja
0.1%