Use Node.js 22 or newer:
npm ci
npm run check
npm pack --dry-runChanges to betting, pots, dealing, or evaluation must include a focused scenario test. Preserve these invariants:
- Transitions never mutate their input state.
- Rejected commands return the original state.
- Cards remain unique and total 52 throughout a hand.
- Stack chips plus active commitments are conserved.
- Folded players contribute to pots but cannot win them.
- The same configuration and command log produce identical states and events.
- Player/spectator projections never expose hidden cards.
Use safe integer chips and explicit bet-to/raise-to totals. Keep the published package free of runtime dependencies.
Describe the poker rule being changed, include a minimal hand history, and identify the new or updated tests. Run the complete exhaustive suite before requesting review.