Phase 41 · planning only

Rules fidelity & full hand validation plan

Map what the Rules Engine can prove at the table versus what stays advisory or blocked until licensing — no new validation implementation in this phase.

Plan summary

Rules fidelity plan · table mechanics now, hand lines later

  • 11 fidelity areas catalogued — 2 deterministic table-flow lanes, 3 scaffolds, 1 advisory BYOC lanes, 2 blocked until licensed.
  • Three validation layers: Table mechanics validation; BYOC advisory validation; Licensed validation (future).
  • Licensing-sensitive areas: licensed_card_validation, scoring, mahjong_declaration, byoc_hand_path.
  • Phase 42 — Charleston flow scaffold: deterministic pass sequence and optional teaching mode — still no official card-line validation, still client-only.

Phase 42 — Charleston flow scaffold: deterministic pass sequence and optional teaching mode — still no official card-line validation, still client-only.

Fidelity matrix

AreaNowSourceFuture sourceConfidence
table_flow
Table flow & turn phases
supported scaffoldengineenginedeterministic
charleston
Charleston passes
partialengineenginefuture
draw_discard
Draw & discard legality
supported scaffoldengineenginedeterministic
claim_exposure
Claim & exposure scaffold
supported scaffoldengineenginescaffold
joker_swap
Joker swap scaffold
supported scaffoldengineenginescaffold
dead_hand
Dead hand detection
not supportednot_supportedhuman_reviewfuture
mahjong_declaration
Mahjong declaration
supported scaffoldenginelicensed_futurescaffold
scoring
Scoring & points
not supportednot_supportedlicensed_futureblocked until licensed
byoc_hand_path
BYOC hand path hints
supported scaffoldbyoc_user_notebyoc_user_noteadvisory
licensed_card_validation
Licensed official line validation
blockednot_supportedlicensed_futureblocked until licensed
multiplayer_sync
Multiplayer ledger sync
architecture onlyledgerledgerfuture

Licensing-sensitive areas

  • licensed_card_validation
  • scoring
  • mahjong_declaration
  • byoc_hand_path
  • Never hardcode official NMJL hand lines, point tables, or typography in code or coaching copy.
  • BYOC shorthand is advisory — source attribution must name user notes, not league authority.
  • Scoring and licensed line matching stay `blocked_until_licensed` until contracts exist.
  • Mahjong declarations in rehearsal are ledger events, not certified wins.
  • OCR, card uploads, and LLM pattern inference are out of scope for MAHJ v1 planning.

Implementation warnings

  • Label every validation output with confidence: deterministic · scaffold · advisory · blocked.
  • Separate table mechanics checks from hand-line interpretation in UI and docs.
  • Do not let coaching layers override blocked Rules Engine outcomes.
  • Multiplayer must sync accepted ledger events only — not BYOC notebooks.