F014 — Multi-stage Betting
| Field | Value |
|---|---|
| ID | F014 |
| Phase | 2 — Betting |
| Jira | HEDGE-133 |
| Status | TS ⬜ · JS ⬜ · UMA ⬜ |
Business Rule
Texas HedgeEm supports up to four betting windows, each corresponding to a game stage. The operator configures which stages are active at installation time. Available betting stages:| Stage name | When | Cards visible | HedgeEm dealStatus |
|---|---|---|---|
| ANTE-BET | Before any cards dealt | None | Pre-deal (-1) |
| PRE-FLOP | After hole cards dealt | Hole cards only | Hole (0) |
| POST-FLOP | After flop dealt | Hole + 3 community | Flop (1) |
| TURN | After turn card dealt | Hole + 4 community | Turn (2) |
Source: Game Concept Document
“In its default configuration there is only one betting stage (POST-FLOP) but the operator can choose to enable other betting stages: ANTE-BET, PRE-FLOP, POST-FLOP, and TURN.”
“The configuration changes the gameplay experience to suit the target audience.”
Current Implementation vs Design Doc
The TypeScript standalone client currently implements three betting stages (PRE-FLOP / POST-FLOP / TURN, i.e. hole/flop/turn). This is intentional for the reference implementation — it showcases the full multi-stage betting experience. The POST-FLOP-only default from the design doc is for the simpler/faster operator configuration. The JavaScript reference client athedgeem.qeetoto.com should be audited to confirm which stages are active.
Design Detail
Per-stage bet accumulation
Each bet is recorded with its stage at placement:Ante-Bet stage
ANTE-BET (before hole cards) is not implemented in the current TS or JS clients. When implemented:- No cards visible
- Odds would be equal for all hands (pure speculation, no information)
dealStatus = -1— betting window added beforeadvance()to hole
Operator configuration scope
Configuring betting stages is an installation-time setting (F032), not a per-game or per-player option.JavaScript Reference
JS Source: Audit required to confirm which stages are active in the live JS client athedgeem.qeetoto.com.
TypeScript Implementation
Current status: Three betting stages active (hole/flop/turn = PRE-FLOP/POST-FLOP/TURN). Stage is enforced inGameEngine.placeBet():
dealStatus = -1) is not currently enabled.
Acceptance Criteria
| # | Criterion | JS | TS | UMA |
|---|---|---|---|---|
| AC1 | Bets can be placed at each configured active stage | ⬜ | ✅ (3 stages) | ⬜ |
| AC2 | Bets cannot be placed at river (dealStatus = 3) | ⬜ | ✅ | ⬜ |
| AC3 | Bets from all stages accumulate in bets[] | ⬜ | ✅ | ⬜ |
| AC4 | Stage identifier stored with each bet for payout traceability | ⬜ | ✅ | ⬜ |
| AC5 | Operator can configure POST-FLOP only (single stage) | ⬜ | ⬜ | ⬜ |
| AC6 | ANTE-BET stage: betting before hole cards | ⬜ | ⬜ | ⬜ |
Version Parity
| Version | Status | Notes |
|---|---|---|
| JS (reference) | ⬜ Not audited | Live config unknown — audit required |
| TS | ⬜ Partial | 3 of 4 stages active; ANTE-BET not implemented |
| UMA | ⬜ Not audited | Phase 5 |
Related Features
- F004 — Game Stages (stage definitions and transitions)
- F011 — Bet Placement (per-stage mechanics)
- F015 — Payout Calculation (bets from all stages resolved)
- F032 — RTP Config (operator stage configuration)
