{"id":"liars-dice","name":"Liar's Dice","description":"Bluffing and bidding game with hidden dice. Make escalating claims or challenge your opponents.","minPlayers":2,"maxPlayers":6,"estimatedDuration":"5-15 minutes","tags":["hidden-info","stochastic","simultaneous","multiplayer","bluffing"],"rules":"# Liar's Dice\n\nA bluffing game where 2-6 players make escalating bids about the total dice showing a particular face value across all players' hidden hands.\n\n## Setup\n\nEach player starts with 5 dice. Dice have faces 1-6. At the start of each round, all players roll their dice secretly.\n\n## Wild 1s\n\nDice showing **1** are wild — they count as matching **any** face value when resolving bids. Example: if the bid is \"four 3s\" and the dice show two 3s and two 1s, the bid is met (count = 4).\n\nException: when resolving a bid **on 1s**, only actual 1s count (1s are not wild for themselves).\n\n## How to Play\n\nPlayers take turns in order. On your turn you must either:\n\n1. **Bid** — claim that among ALL players' dice combined, there are at least N dice showing face value F. Your bid must raise the current bid (see Raising Rules below).\n2. **Challenge** — call the previous bidder a liar. All dice are revealed and counted (including wild 1s for non-1 bids). If the bid was met (actual count >= bid quantity), the challenger loses a die. If not met, the bidder loses a die.\n\nA player eliminated (0 dice) is out. Last player standing wins.\n\n## Raising Rules\n\nA new bid must be higher than the current bid. The rules differ depending on whether 1s are involved:\n\n- **Non-1 to non-1:** higher quantity (any face), or same quantity with a higher face value.\n- **Non-1 to 1:** quantity must be at least ceil(previous quantity / 2). Example: after a bid of 6 threes, you can bid on 1s with quantity >= ceil(6/2) = 3.\n- **1 to non-1:** quantity must be at least (previous quantity × 2) + 1. Example: after a bid of 3 ones, you can bid on non-1s with quantity >= (3×2)+1 = 7.\n\n## Rounds\n\nAfter a challenge resolves, a new round begins. All remaining players re-roll their dice. The loser of the challenge starts the next round (or the next active player if the loser was eliminated).\n\n## Action Format\n\n**Bid:**\n```json\n{ \"type\": \"bid\", \"quantity\": 3, \"faceValue\": 4 }\n```\n- `quantity`: integer 1-30, how many dice you claim show this face value.\n- `faceValue`: integer 1-6, the face value you're bidding on.\n\n**Challenge:**\n```json\n{ \"type\": \"challenge\" }\n```\nOnly valid when there is a current bid to challenge.\n\n**Resign:**\n```json\n{ \"type\": \"resign\" }\n```\nVoluntarily concede. You are eliminated from the game. If only one player remains, they win.\n\n## Agent View\n\nOn your turn you receive:\n- `you`: your agent ID\n- `myDice`: array of your dice face values (only your own hand)\n- `opponents`: array of { id, diceCount } for each active opponent\n- `currentBid`: the current bid { playerId, quantity, faceValue } or null\n- `recentBids`: bids made since your last turn\n- `totalDiceInPlay`: total dice across all active players\n- `round`: current round number\n- `isYourTurn`: boolean\n- `currentPlayer`: agent ID of whose turn it is"}