Product proposal · BJCV

Override card correction — live CV, apply to PC

Ask product to lock the requirements below so UI, backend, and CV can start. Computer-vision rebuild work already exists under CV-837. What is missing is the product contract: when the dealer may correct cards, what Override sends, and when CV is allowed to append again.

1. Decision we need from product

Do not add a separate Rescan button on Dealer Dashboard as the first slice. Use the existing Table Dashboard Override → Result surface for BJCV: live top-card graphics from CV, dealer edits (rank/suit, Split, Double, add/remove), then Apply writes that table into CV player-card memory. Until Apply succeeds, CV must not append further cards on later seats.

Chip-tray “rescan on last pay” (PROD-15083, PROD-19030) is a different feature. It is not in this epic.

2. Why this, not a one-shot Rescan

PROD-8463 as written This proposal
Correct totals / wrong stack / duplicate card Same outcomes, done as live Override edits + Apply
Rescan button on DD and TD TD Override is the v1 surface. DD is a follow-up if product wants it
Backend must accept new card information Apply payload is that accept path (Shauna’s backend blocker)
Dealer cards for side bets / Tableguard Dealer row is first-class on Result and in the Apply payload
Effect on backend from new totals Apply is the commit. Paid seats and side bets need an explicit rule (open question)

3. System contract

  1. CV → Override. As soon as CV adds a card, Result shows the top-card graphic and running total on that seat or dealer hand.
  2. Table can diverge. If CV misses a split, double, stack, rank, or hole card, Override shows CV’s PC. Extra physical cards sit in Card Buffer.
  3. Dealer corrects on Override. Edit rank/suit, Split, Double, add from buffer, or remove a card.
  4. Apply → CV PC. Backend accepts the Override snapshot. CV replaces its PC with that snapshot.
  5. Append gate. While the blocked condition is open, CV must not append on subsequent positions. After Apply matches the required structure, normal append resumes.

4. Requirements to lock (acceptance)

Must have — v1

ID Requirement Accept when
R1 BJCV Override Result shows Dealer + Seats 1–6 (H1/H2 after split) Baccarat Banker/Player grid is not used on BJCV tables
R2 Live top-card graphics from CV, no wait-for-rescan batch A newly accepted CV card appears on that seat without Apply
R3 Dealer can edit rank/suit, add a buffer card, or remove a card Draft differs from CV PC; Reset Cards restores last CV snapshot
R4 Split and Double are live on each player hand when legal Pair enables Split. 9–11 two-card hand enables Double. Both update structure and can pull from buffer
R5 Apply writes Override draft into CV PC Footer / CV overlay reflects the new stacks; next frame uses that PC
R6 Append gate while a listed miss is open Deal / hit / double on later seats does not mutate CV PC until Apply clears the gate
R7 Card Buffer holds table cards not in CV PC Unassigned cards are visible and can be placed onto a hand
R8 Dealer hand is in the Apply payload Hole / upcard corrections reach CV (side bets / Tableguard)
R9 Audit Successful Apply emits a named event: who, before PC, after PC, seat list

Explicitly later / out of v1

5. Use cases — blocked until Apply

These are the demo presets. Each is a required test case. Walk them on the interactive demo.

Case Table truth CV / backend Blocked Unblock
UC1 P1 split missed 5S+9D and 5C+4H One stack 5S 5C. 9D, 4H in buffer Append on seats 2–6 Split Seat 1, place buffer cards, Apply
UC2 P3 double missed 5C 6H 9D marked DD 5C 6H only Append on other seats Double on Seat 3 (takes 9D), Apply
UC3 Wrong stack 8D on P4 8D on P5; P4 short Later appends Remove 8D from Seat 5, add to Seat 4, Apply
UC4 Wrong rank P2 KS 7D KS 6D Later appends Edit 6 → 7, Apply
UC5 Dealer hole misread Dealer 10S 6H Hole 5H Player appends Edit dealer 5 → 6, Apply

6. Suggested stories so development can start

Create these as children of PROD-8463 unless product names a different parent. Do not file them under an RD epic until Sovik or Shamsher opens one. No RD rescan epic is open today.

Story Team Scope
BJCV Override Result layout (Dealer + 6 seats, H1/H2) UI Replace Banker/Player. Grey slots, Split/Double, Reset/Apply/Void stay
Live CV → Override card stream UI + CV Top-card graphic and total as soon as CV accepts a card
Override draft + Card Buffer UI Edit, add, remove, Split, Double. Reset snaps to last CV PC
Apply accept API Backend Validate snapshot, persist, emit audit. This is the hard path called out on 4 Dec 2025
CV PC replace + append gate CV Load Applied PC (same job as CV-848). Refuse later appends until gate cases are clear
UC1–UC5 test pack QA The five blocked presets on the demo become official AC

7. Open questions for product (block stories if unanswered)

  1. Is v1 Table Dashboard Override only, or must Dealer Dashboard ship in the same release?
  2. If Apply happens after first pay, do we freeze paid seats or replay payouts / side bets / Tableguard?
  3. Does pressing Split or Double on Result also book the chip, or only fix CV structure? (Today Override already books Double as a bet.)
  4. Who may Apply — dealer, supervisor, or either?
  5. If Apply is incomplete (split without the extra cards), do we reject or allow a partial PC?

Product: confirm the decision in section 1 and answer section 7. Then we create the six stories under PROD-8463 and point QA at the demo.

Download PDF Open the five blocked-case demo