aboutsummaryrefslogtreecommitdiff
path: root/building_guide/rooms.md
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-15 14:18:14 -0400
committerhistoria <[not public]>2026-09-15 14:18:14 -0400
commit396c3facb8287b9a34076cae8f3d7b300d366d99 (patch)
tree941f280d051fac474fa68ca08318a8d16adc8d0f /building_guide/rooms.md
parentb3568f03e4103dd46db2ccc680fbab0a6454d604 (diff)
downloadthehouseoficarus-396c3facb8287b9a34076cae8f3d7b300d366d99.tar.gz
fix: atomic saves, casino RNG/config isolation, tick lifecycle
Diffstat (limited to 'building_guide/rooms.md')
-rw-r--r--building_guide/rooms.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/building_guide/rooms.md b/building_guide/rooms.md
index 4da4284..4eaa843 100644
--- a/building_guide/rooms.md
+++ b/building_guide/rooms.md
@@ -322,6 +322,29 @@ casino_machines:
payout: 0.97
```
+#### Casino configuration validation
+
+Room create/update requests validate casino definitions before writing; startup
+validation reports invalid definitions, and game lookup refuses invalid room
+casino configurations. Raw file editing is not a validated save endpoint.
+
+- IDs must be nonempty, have no surrounding whitespace, and be unique across
+ the room's tables and machines (including legacy slots table entries).
+- Supported table games are `blackjack` and `baccarat`; machines use `slots`
+ with the optional variant `huff_and_even_more_puff`.
+- Omitted/zero numeric values keep their existing defaults. Negative bets,
+ timers, seat counts, split counts, decks, and payouts are rejected.
+- An explicit `max_bet` must be at least `min_bet`; zero still means no cap.
+- `decks` is capped at 64 to bound shoe allocation. An explicit `shuffle_at`
+ must be greater than zero and less than one.
+- Payouts and shuffle fractions must be finite (no NaN/infinity). Slots `payout`
+ is an RTP fraction greater than zero and at most one; zero defaults to 0.97.
+- Unknown casino fields are rejected by the room create/update API.
+
+Existing instantiated games retain their rules until restart; editing a room
+does not hot-reconfigure a live table or machine. Use explicit, modest wager
+limits: validation does not yet make currency arithmetic overflow-safe.
+
### Objects — interactive fixtures
Simple placement: