[
  {
    "slug": "art-battle",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/art-battle/mcp",
    "interface": {
      "displayName": "Huddle AI Art Battle",
      "shortDescription": "Draw it with AI, vote the best",
      "longDescription": "A party game for 3 to 8 people where every player makes a picture with their own ChatGPT, then the group votes on the best one.\n\nOne person starts a game and shares a 4-letter code. Friends join from their own ChatGPT chat or from a browser link on any phone. Each round everyone gets the same quirky theme (\"A cat running a bakery on Mars\", \"Your hometown as a video game boss level\") plus a secret twist of their own (\"make it look like a 1950s cereal box\", \"hide a rubber duck in it\"). The card shows the exact prompt to ask for. Each player asks their own ChatGPT to draw it and submits the picture; browser players choose a picture from their device.\n\nWhen everyone is in, the pictures appear as an anonymous gallery and each player votes for a favorite (not their own). Then a quick bonus: everyone guesses which secret twist went into the top picture. The reveal shows who drew what, every twist, and the votes. Each vote received is worth 2 points and a right twist guess is worth 1. After 3 or 5 rounds the final card crowns the winner with the picture of the game.\n\nThe pictures are made by each player's own ChatGPT; the game only carries them to the table. The host can skip ahead when someone is away. Rooms and their pictures are deleted 12 hours after the last move.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start an AI Art Battle, I'm Dana",
        "Join Huddle AI Art Battle game KXQF as Sam",
        "Draw my art battle picture and submit it"
      ],
      "capabilities": [
        "Every player's own ChatGPT draws their picture from a shared theme",
        "A secret twist per player, worked into their picture",
        "An anonymous gallery and a vote for the favorite",
        "A bonus guess: which twist made the top picture?",
        "Players join from their own ChatGPT chat or a browser link",
        "Live cards: pictures, votes and scores update on every screen"
      ],
      "logo": "https://games-worker.demos.42a.ai/art-battle/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/art-battle/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "ai art battle",
      "ai drawing game",
      "image generation party game",
      "draw with ai and vote",
      "art contest with friends",
      "picture prompt game",
      "multiplayer drawing game",
      "ai art competition"
    ],
    "tools": [
      {
        "name": "start_art_battle",
        "title": "Start AI Art Battle",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "join_art_battle",
        "title": "Join AI Art Battle",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "art_battle_status",
        "title": "AI Art Battle Status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "play_art_battle",
        "title": "Submit, Vote or Guess",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "art_battle_host",
        "title": "Host Controls",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Let's play AI Art Battle, I'm Dana",
          "tools_triggered": [
            "start_art_battle"
          ],
          "expected_behavior": "A lobby card with a 4-letter code, a join link and Dana as host; the text gives her player key."
        },
        {
          "description": "A friend joins with the code",
          "prompt": "Join Huddle AI Art Battle game DEMO as Riley",
          "tools_triggered": [
            "join_art_battle"
          ],
          "expected_behavior": "Riley's own player key and the lobby with Dana, Sam and Riley."
        },
        {
          "description": "Host starts round 1: a theme and a secret twist",
          "prompt": "Everyone is in, start the art battle",
          "tools_triggered": [
            "art_battle_host"
          ],
          "expected_behavior": "Round 1 drawing: the theme, Dana's own secret twist and the exact prompt to ask ChatGPT, plus Choose my image."
        },
        {
          "description": "The last picture (generated in ChatGPT) opens the gallery",
          "prompt": "[after ChatGPT generated the picture] Submit this to the art battle",
          "tools_triggered": [
            "play_art_battle"
          ],
          "expected_behavior": "The anonymous gallery opens with 3 pictures; Cleo's is marked as hers and she can't vote for it."
        },
        {
          "description": "The last vote opens the twist bonus",
          "prompt": "I vote for picture A",
          "tools_triggered": [
            "play_art_battle"
          ],
          "expected_behavior": "Picture A (Nia) wins with 3 votes; the bonus asks which of 5 twists made it."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Draw me a cat running a bakery on Mars.",
          "expected_behavior": "Does not call Huddle AI Art Battle: A plain image request with no game: ChatGPT draws it directly."
        },
        {
          "prompt": "Rate this painting I made out of 10.",
          "expected_behavior": "Does not call Huddle AI Art Battle: Art critique is a chat task, not a multiplayer game."
        },
        {
          "prompt": "Let us play a game where I sketch something and you guess what it is.",
          "expected_behavior": "Does not call Huddle AI Art Battle: A one-on-one sketch-and-guess game is different; this game is a group vote on AI pictures."
        }
      ]
    }
  },
  {
    "slug": "bluff-dictionary",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/bluff-dictionary/mcp",
    "interface": {
      "displayName": "Huddle Bluff Dictionary",
      "shortDescription": "Fake the meaning, fool friends",
      "longDescription": "A party game for 3 to 10 people about real words nobody knows. Each round shows a genuine but obscure English word (gongoozler, snollygoster, borborygmus, apricity…) and everyone invents a fake definition that sounds real.\n\nThe twist: your own ChatGPT is your writing partner. Ask it for a bluff in your chat (\"make up a convincing definition of gongoozler, make it sound like an old sailing term\"), tweak it if you like, and submit it in one tap. Players in a browser type their own. Then every bluff and the one true definition appear shuffled as big lettered tiles, and everyone votes for the one they think is real.\n\nFind the real definition for 2 points. Earn 1 point for every friend your bluff fools. The reveal shows the real meaning, who wrote each bluff and who fell for it. After 3 or 5 rounds the final card crowns a winner, the Most Convincing Liar and the Human Dictionary.\n\nOne person starts a game and shares a 4-letter code; friends join from their own ChatGPT chat or from a browser link on any phone. Over 100 words, each with a short, accurate definition. Bluffs with links or slurs are refused, and a \"bluff\" that just copies the real meaning is politely sent back. Rooms are deleted 12 hours after the last move.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start a Bluff Dictionary game, I'm Dana",
        "Join Huddle Bluff Dictionary game KXQF as Sam",
        "Make up a fake definition of my Bluff Dictionary word"
      ],
      "capabilities": [
        "A real, obscure word each round, with its true definition hidden until the reveal",
        "Your own ChatGPT writes your fake definition; you approve it and submit in one step",
        "All bluffs plus the real meaning, shuffled, as big lettered tiles to vote on",
        "Players join from their own ChatGPT chat or a browser link",
        "Live cards: bluffs, votes and scores update on every screen",
        "Final awards: winner, Most Convincing Liar, Human Dictionary"
      ],
      "logo": "https://games-worker.demos.42a.ai/bluff-dictionary/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/bluff-dictionary/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "bluff dictionary",
      "fake definition game",
      "guess the real definition",
      "dictionary bluffing game",
      "obscure words party game",
      "word game with friends",
      "multiplayer game in chatgpt",
      "party game for a group chat"
    ],
    "tools": [
      {
        "name": "start_bluff_dictionary",
        "title": "Start Bluff Dictionary",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "join_bluff_dictionary",
        "title": "Join Bluff Dictionary",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "bluff_dictionary_status",
        "title": "Bluff Dictionary Status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "play_bluff_dictionary",
        "title": "Submit a Bluff or Vote",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "host_bluff_dictionary",
        "title": "Host Controls",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Let's play Bluff Dictionary, I'm Dana",
          "tools_triggered": [
            "start_bluff_dictionary"
          ],
          "expected_behavior": "A lobby card with a 4-letter code, a join link and Dana as host; the text gives her player key."
        },
        {
          "description": "A friend joins with the code",
          "prompt": "Join Huddle Bluff Dictionary game DEMO as Riley",
          "tools_triggered": [
            "join_bluff_dictionary"
          ],
          "expected_behavior": "Riley's own player key and the lobby with Dana, Sam and Riley."
        },
        {
          "description": "Host starts round 1 (the real definition stays hidden)",
          "prompt": "Everyone's in, start the game",
          "tools_triggered": [
            "host_bluff_dictionary"
          ],
          "expected_behavior": "Round 1 of 5: the word, its part of speech, a ready prompt for ChatGPT and Dana's bluff box; the real meaning appears nowhere."
        },
        {
          "description": "The last bluff opens voting",
          "prompt": "Love it, submit that: \"A crust of salt left on rocks after a sea fog lifts.\"",
          "tools_triggered": [
            "play_bluff_dictionary"
          ],
          "expected_behavior": "Voting opens with 4 shuffled definitions of petrichor (3 bluffs and the real one); Cleo's bluff is marked."
        },
        {
          "description": "The last vote reveals the real definition",
          "prompt": "I vote B, that one sounds real",
          "tools_triggered": [
            "play_bluff_dictionary"
          ],
          "expected_behavior": "The reveal: B was real (a holder for a handleless coffee cup); Max and Pia found it, and Nia and Pia each fooled someone."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "What does \"gongoozler\" mean?",
          "expected_behavior": "Does not call Huddle Bluff Dictionary: Looking up a definition is a question for the model, not a party game."
        },
        {
          "prompt": "Give me a list of weird English words to use in my essay.",
          "expected_behavior": "Does not call Huddle Bluff Dictionary: Vocabulary help is a chat task; the game only starts when someone wants to play."
        },
        {
          "prompt": "Start a crossword puzzle for me.",
          "expected_behavior": "Does not call Huddle Bluff Dictionary: A single-player word puzzle is a different game."
        }
      ]
    }
  },
  {
    "slug": "fact-or-fib",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/fact-or-fib/mcp",
    "interface": {
      "displayName": "Huddle Fact or Fib",
      "shortDescription": "Two true facts. One fib.",
      "longDescription": "A research party game for 3 to 8 people. Everyone gets a topic card (octopuses, the Eiffel Tower, honey, the moon landing…) and asks their own ChatGPT to research it: two surprising TRUE facts, each with a source link, plus one believable fib written in the same style. Then the table hunts for the fibs.\n\nOne person starts a game and shares a 4-letter code. Friends join from their own ChatGPT chat or from a browser link on any phone. In the research round, each player gets a ready-made prompt to paste into ChatGPT, which searches the web when it can and hands back facts with real, checkable links. Not feeling your topic? Roll a new one or pick your own. Browser players can type their own facts.\n\nThen each player's set takes the spotlight in turn: three statements, shuffled, as big tiles. Everyone else taps the one they think is the fib. The reveal marks the fib, shows who fell for it and links the true facts' sources so you can check them.\n\nSpot a fib for 1 point; the author scores 1 for every player their fib fooled. The final card crowns the winner, the Best Fibber and the Fact Checker. The research is done by each player's own ChatGPT in their own chat, never by this server. Statements with links or slurs are politely refused; source links must be https. Rooms are deleted 12 hours after the last move.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start a Fact or Fib game, I'm Dana",
        "Join Fact or Fib game KXQF as Sam",
        "Research my Fact or Fib topic: 2 true facts with sources and 1 fib"
      ],
      "capabilities": [
        "Every player gets a topic card to research with their own ChatGPT",
        "Two true facts with source links and one believable fib per player",
        "Each set takes the spotlight: everyone votes for the fib",
        "The reveal links every true fact to its source",
        "Players join from their own ChatGPT chat or a browser link",
        "Final awards: winner, Best Fibber, Fact Checker"
      ],
      "logo": "https://games-worker.demos.42a.ai/fact-or-fib/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/fact-or-fib/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "fact or fib",
      "two truths and a lie",
      "guess the fake fact",
      "spot the fake fact game",
      "research party game",
      "bluffing trivia game",
      "true or false party game with friends",
      "multiplayer game with friends"
    ],
    "tools": [
      {
        "name": "start_fact_or_fib",
        "title": "Start Fact or Fib",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "join_fact_or_fib",
        "title": "Join Fact or Fib",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "fact_or_fib_status",
        "title": "Fact or Fib Status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "play_fact_or_fib",
        "title": "Submit a Set or Vote",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "host_fact_or_fib",
        "title": "Host Controls",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Let's play Fact or Fib, I'm Dana",
          "tools_triggered": [
            "start_fact_or_fib"
          ],
          "expected_behavior": "A lobby card with a 4-letter code, a join link and Dana as host; the text gives her player key."
        },
        {
          "description": "A friend joins with the code",
          "prompt": "Join Fact or Fib game DEMO as Riley",
          "tools_triggered": [
            "join_fact_or_fib"
          ],
          "expected_behavior": "Riley's own player key and the lobby with Dana, Sam and Riley."
        },
        {
          "description": "Host starts: everyone gets a topic to research",
          "prompt": "Everyone is in, start the game",
          "tools_triggered": [
            "host_fact_or_fib"
          ],
          "expected_behavior": "Research time: Dana's topic card with a ready prompt to paste into ChatGPT, and the form."
        },
        {
          "description": "The last set opens the guessing",
          "prompt": "Submit those: 1) Egyptian families shaved their eyebrows when their cat died (Wikipedia) 2) hundreds of thousands of cats were mummified for Bastet, and the fib about cats with royal titles",
          "tools_triggered": [
            "play_fact_or_fib"
          ],
          "expected_behavior": "All three sets are in: the first set takes the spotlight as 3 tiles, with no fib marked and no sources."
        },
        {
          "description": "The last vote reveals the fib",
          "prompt": "I think B is the fib",
          "tools_triggered": [
            "play_fact_or_fib"
          ],
          "expected_behavior": "The reveal: B was Max's fib about ten arms; Omar and Nia spotted it; the true facts link their sources."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Is it true that octopuses have three hearts?",
          "expected_behavior": "Does not call Huddle Fact or Fib: A single fact-check is a question for the model, not a party game."
        },
        {
          "prompt": "Give me five fun facts about honey for my newsletter.",
          "expected_behavior": "Does not call Huddle Fact or Fib: Writing fun facts is a chat task with no game."
        },
        {
          "prompt": "Start a trivia quiz about world capitals for me.",
          "expected_behavior": "Does not call Huddle Fact or Fib: Single-player trivia is a different game."
        }
      ]
    }
  },
  {
    "slug": "spot-the-bot",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/spot-the-bot/mcp",
    "interface": {
      "displayName": "Huddle Spot the Bot",
      "shortDescription": "An AI hides among your friends",
      "longDescription": "A party game for 3 to 10 people where a hidden AI player answers every prompt alongside your group, and everyone votes on which answer the bot wrote.\n\nOne person starts a game and shares a 4-letter code. Friends join from their own ChatGPT chat or from a browser link on any phone. Each round everyone gets the same prompt (\"Describe your perfect Sunday in one sentence\", \"Explain the internet to someone from 1850\") and writes a short answer of up to 120 characters. A hidden AI writes one too, on the server, so nobody at the table (not even the host) can see it early. Then all the answers appear anonymously in a shuffled list and every player votes for the one they think the bot wrote.\n\nSpot the bot for 2 points. Fool the table into thinking YOU are the bot and earn a point for every vote you get. After every round the card shows who wrote what and how many people the bot fooled; the bot studies how your table writes and gets harder to spot as the game goes on. After 3, 5 or 7 rounds the final card crowns a winner and hands out awards: Bot Hunter, Most Robotic Human, and the bot's best line.\n\nThe host can skip ahead when someone is away. Answers with links or slurs are politely refused, and all prompts are family-friendly. Rooms are deleted 12 hours after the last move.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start a Spot the Bot game, I'm Dana",
        "Join Spot the Bot game KXQF as Sam",
        "Start a 3-round Spot the Bot game for our team call, my name is Lee"
      ],
      "capabilities": [
        "A hidden AI answers every prompt alongside your group",
        "Anonymous, shuffled answers and a vote on which one the bot wrote",
        "Players join from their own ChatGPT chat or a browser link",
        "The bot learns how your table writes as the rounds go on",
        "Live cards: answers, votes and scores update on every screen",
        "Final awards: Bot Hunter, Most Robotic Human, the bot's best line"
      ],
      "logo": "https://games-worker.demos.42a.ai/spot-the-bot/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/spot-the-bot/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "spot the bot",
      "guess the ai game",
      "human or ai party game",
      "find the ai player",
      "which answer did the ai write",
      "party game for a group chat",
      "multiplayer game with friends",
      "turing test game"
    ],
    "tools": [
      {
        "name": "start_spot_the_bot",
        "title": "Start Spot the Bot",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "join_spot_the_bot",
        "title": "Join Spot the Bot",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "spot_the_bot_status",
        "title": "Spot the Bot Status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "play_spot_the_bot",
        "title": "Answer or Vote",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "host_spot_the_bot",
        "title": "Host Controls",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Let's play Spot the Bot, I'm Dana",
          "tools_triggered": [
            "start_spot_the_bot"
          ],
          "expected_behavior": "A lobby card with a 4-letter code, a join link and Dana as host; the text gives her player key."
        },
        {
          "description": "A friend joins with the code",
          "prompt": "Join Spot the Bot game DEMO as Riley",
          "tools_triggered": [
            "join_spot_the_bot"
          ],
          "expected_behavior": "Riley's own player key and the lobby with Dana, Sam and Riley."
        },
        {
          "description": "Host starts round 1 (the bot answer stays hidden)",
          "prompt": "Everyone is in, start the game",
          "tools_triggered": [
            "host_spot_the_bot"
          ],
          "expected_behavior": "Round 1 of 5 with the prompt and Dana's answer box; the hidden answer appears nowhere."
        },
        {
          "description": "The last answer opens voting",
          "prompt": "My answer is: 'early hike, then pizza on the porch'",
          "tools_triggered": [
            "play_spot_the_bot"
          ],
          "expected_behavior": "Voting opens with 4 anonymous answers (3 people and the bot); Cleo's is marked as hers."
        },
        {
          "description": "The last vote reveals the bot",
          "prompt": "I vote C, that one sounds like a robot",
          "tools_triggered": [
            "play_spot_the_bot"
          ],
          "expected_behavior": "The reveal: the bot wrote B and fooled 3 of 4; Max spotted it."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Is this text written by AI? \"Our synergies drive value.\"",
          "expected_behavior": "Does not call Huddle Spot the Bot: AI-text detection is a question for the model, not a party game."
        },
        {
          "prompt": "Write me a funny answer to \"describe your perfect Sunday\".",
          "expected_behavior": "Does not call Huddle Spot the Bot: Writing jokes is a chat task; the game never writes answers for players."
        },
        {
          "prompt": "Start a trivia quiz about world capitals for me.",
          "expected_behavior": "Does not call Huddle Spot the Bot: Single-player trivia is a different game."
        }
      ]
    }
  },
  {
    "slug": "emoji-telephone",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/emoji-telephone/mcp",
    "interface": {
      "displayName": "Huddle Emoji Telephone",
      "shortDescription": "Words to emoji and back again",
      "longDescription": "A party game of telephone where every other step is emoji only, played together from each person's own chat or phone.\n\nEveryone writes a secret sentence: a made-up movie plot, a weird news headline or a life motto (or taps Suggest one for an idea from the deck). Then the sentences travel around the table at the same time. The next player sees only the sentence and must translate it into 2 to 10 emoji. The player after that sees only the emoji and writes what they think the sentence was. Words, emoji, words, emoji, until each chain has gone through up to six people. With N players there are N chains running at once, so nobody sits waiting for a turn.\n\nThe rotation makes sure nobody sees their own sentence mid-game and nobody handles the same chain twice. Emoji answers are checked for real emoji only (flags, skin tones and joined emoji like families count as one each).\n\nThen the reveal: the host steps through the chains one at a time, each shown as a ladder from the original sentence to the final guess with every player's name on their step. Everyone votes for the best moment of drift on each chain, and each vote is a point. The final card shows the scoreboard, the most faithful chain (the most original words that survived) and the wildest drift.\n\nFor 3 to 12 players. The host can pick shorter chains for a quick round and skip a player who wandered off. Games are private rooms with a 4-letter code that expire after 12 hours.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start an Emoji Telephone game, I'm Dana",
        "Join Emoji Telephone game KXQF as Sam",
        "How do I play telephone with emoji with my friends?"
      ],
      "capabilities": [
        "Multiplayer telephone where every other step is emoji only",
        "Every player starts a chain, so all chains run at once",
        "Suggest-one deck of original movie plots, headlines and mottos",
        "Real emoji checking: 2 to 10 emoji, no letters or numbers",
        "Step-by-step reveal ladders with drift votes and points",
        "Most faithful chain and wildest drift on the final card"
      ],
      "logo": "https://games-worker.demos.42a.ai/emoji-telephone/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/emoji-telephone/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "emoji telephone",
      "telephone game with emoji",
      "emoji party game",
      "broken telephone game online",
      "emoji translation game",
      "guess the emoji game with friends",
      "multiplayer emoji game",
      "drawing telephone with emoji"
    ],
    "tools": [
      {
        "name": "start_emoji_telephone",
        "title": "Start Emoji Telephone",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      },
      {
        "name": "join_emoji_telephone",
        "title": "Join Emoji Telephone",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      },
      {
        "name": "emoji_telephone_status",
        "title": "Emoji Telephone Status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "submit_emoji_telephone",
        "title": "Submit Emoji Telephone Step",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      },
      {
        "name": "emoji_telephone_action",
        "title": "Emoji Telephone Action",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Start an Emoji Telephone game, I'm Dana",
          "tools_triggered": [
            "start_emoji_telephone"
          ],
          "expected_behavior": "A lobby card with a 4-letter code, the join link, Dana as host, and her player key."
        },
        {
          "description": "A friend joins by code",
          "prompt": "Join Huddle Emoji Telephone game DEMO as Riley",
          "tools_triggered": [
            "join_emoji_telephone"
          ],
          "expected_behavior": "Riley is seated (4 players) with their own key; the card waits for Dana to start."
        },
        {
          "description": "A player asks what to do mid-game",
          "prompt": "What do I do now in emoji telephone? My key is DEMQ-BBBB",
          "tools_triggered": [
            "emoji_telephone_status"
          ],
          "expected_behavior": "Sam's card: step 2 of 4, translate Dana's goat headline into emoji (without the model writing them)."
        },
        {
          "description": "A player sends their own emoji",
          "prompt": "My emoji are 🐐 🗳️ 🏆, key DEMQ-BBBB",
          "tools_triggered": [
            "submit_emoji_telephone"
          ],
          "expected_behavior": "Accepted as 3 emoji; Sam now waits for Lee and Riley."
        },
        {
          "description": "A vote during the reveal",
          "prompt": "Vote for step 3 on this chain, the lizard braces one. Key DEMR-AAAA",
          "tools_triggered": [
            "emoji_telephone_action"
          ],
          "expected_behavior": "Dana's vote goes to Lee's guess; the ladder shows the vote and 2 of 3 have voted."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Turn \"I love pizza on Fridays\" into emoji for me.",
          "expected_behavior": "Does not call Huddle Emoji Telephone: A one-off emoji translation is something the model does in chat, not a multiplayer game."
        },
        {
          "prompt": "Start a game of charades for my party.",
          "expected_behavior": "Does not call Huddle Emoji Telephone: A different party game; Emoji Telephone is only the words-to-emoji chain game."
        },
        {
          "prompt": "What does the telephone game teach kids about rumors?",
          "expected_behavior": "Does not call Huddle Emoji Telephone: A question about the classic game, not a request to play."
        }
      ]
    }
  },
  {
    "slug": "tier-list-party",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/tier-list-party/mcp",
    "interface": {
      "displayName": "Huddle Tier List Party",
      "shortDescription": "Rank it, then compare tastes",
      "longDescription": "Tier List Party is a multiplayer taste game for 3 to 12 people, each on their own phone or in their own ChatGPT chat. Every round has a topic with 6 to 8 items (breakfast foods, ways to spend a Sunday, pizza toppings, holidays…). Everyone privately sorts each item into S, A, B, C or D on their card. When the last list is in, the reveal shows the group tier list as a chart, the most divisive item, anything the table agreed on unanimously, each player's hottest take, the taste twins (the two closest lists) and the contrarian of the round.\n\nScoring has two tracks: Mainstream points for agreeing with the group and Chaos points for straying from it. After the last topic the final card crowns the Oracle (most mainstream) and the Wildcard (most chaos).\n\nTopics come from a bank of 50 original lists, or ChatGPT writes one on request: ask for \"a tier list of camping snacks\" and it picks the items. The host can reveal early if someone wandered off. Friends join with a 4-letter code from their own chat or from a browser link, no sign-in.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start a Tier List Party game, I am Dana",
        "Start a tier list game about road trip snacks, I am Sam",
        "Join tier list game KXQF as Priya"
      ],
      "capabilities": [
        "Private S to D tier lists for every player, revealed together",
        "Group tier list chart, most divisive item and unanimous picks",
        "Hot takes, taste twins and contrarian of the round",
        "Mainstream vs Chaos scoring, with an Oracle and a Wildcard at the end",
        "Custom topics with items chosen by ChatGPT, or 50 built-in topics",
        "Join from ChatGPT or any phone browser with a 4-letter code"
      ],
      "logo": "https://games-worker.demos.42a.ai/tier-list-party/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/tier-list-party/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "tier list game",
      "tier list party",
      "group tier list",
      "rank things with friends",
      "multiplayer tier list",
      "taste test game",
      "party game",
      "S tier A tier"
    ],
    "tools": [
      {
        "name": "start_tier_list_party",
        "title": "Start Tier List Party",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      },
      {
        "name": "join_tier_list_party",
        "title": "Join Tier List Party",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      },
      {
        "name": "tier_list_party_status",
        "title": "Tier List Party Status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "submit_tier_list",
        "title": "Submit Tier List",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      },
      {
        "name": "tier_list_party_host",
        "title": "Tier List Party Host Controls",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game with a theme: the model picks the items.",
          "prompt": "Start a tier list party about things that are better cold, I'm Dana",
          "tools_triggered": [
            "start_tier_list_party"
          ],
          "expected_behavior": "A lobby card with a 4-letter code and join link; the first topic is queued."
        },
        {
          "description": "A friend joins the demo lobby from their own chat.",
          "prompt": "Join tier list game DEMO as Priya",
          "tools_triggered": [
            "join_tier_list_party"
          ],
          "expected_behavior": "Priya gets her own player key; the lobby now has 3 players."
        },
        {
          "description": "The host starts round 1 from the bank.",
          "prompt": "Everyone is here, start the game",
          "tools_triggered": [
            "tier_list_party_host"
          ],
          "expected_behavior": "Round 1 begins with a topic and 6-8 items to sort; the card shows the first item with S to D buttons."
        },
        {
          "description": "The last player tells the model their tiers; the reveal follows.",
          "prompt": "My pizza list: pepperoni S, mushrooms C, pineapple B, olives B, extra cheese A, anchovies D, jalapenos C, sausage A",
          "tools_triggered": [
            "submit_tier_list"
          ],
          "expected_behavior": "The reveal: S tier Pepperoni and Extra cheese, Pineapple most divisive, Anchovies unanimous D."
        },
        {
          "description": "After the last topic, a player asks who won.",
          "prompt": "Who won the tier list game?",
          "tools_triggered": [
            "tier_list_party_status"
          ],
          "expected_behavior": "Final results: Priya is the Oracle and Sam the Wildcard, with the score table."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Make me a tier list of classic sci-fi movies",
          "expected_behavior": "Does not call Huddle Tier List Party: One person wants the model's own ranking in chat, not a multiplayer game."
        },
        {
          "prompt": "Rank these five laptops by battery life",
          "expected_behavior": "Does not call Huddle Tier List Party: A factual comparison, not a group taste game."
        },
        {
          "prompt": "Start a werewolf game for my friends",
          "expected_behavior": "Does not call Huddle Tier List Party: A different party game."
        }
      ]
    }
  },
  {
    "slug": "werewolf",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/werewolf/mcp",
    "interface": {
      "displayName": "Huddle Werewolf",
      "shortDescription": "Hidden roles, no moderator",
      "longDescription": "Play the classic hidden-role party game (werewolves among villagers, also known as Mafia) with 5-12 friends, with the server as the narrator so nobody has to sit out to moderate.\n\nOne person starts a game and shares a 4-letter code. Everyone joins from their own ChatGPT chat or from a browser link on their phone, so each secret role lives only on its owner's card. The game deals werewolves (who know each other), a Seer and a Doctor (the host can switch either off), and villagers.\n\nAt night everyone taps a name: wolves agree on a victim and see each other's picks, the Seer learns whether one player is a wolf, the Doctor guards one player, and villagers log a harmless hunch so every screen looks the same. At dawn the card announces who died and their role, or that the Doctor saved someone. By day everyone votes to eliminate a player or skip, with an advisory discussion timer; the most votes goes, and a tie means nobody.\n\nThe village wins when every wolf is gone; the wolves win once they match the rest. Dead players become ghosts who see every role. The final card reveals everyone and the game night by night, and the host can deal a new game for the same table. Your assistant narrates dawn and the vote, and can help you think through who to suspect without ever seeing anyone else's role.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start a werewolf game for my friends, I'm Dana",
        "Join werewolf game KXQF as Sam",
        "Who should I vote for in our werewolf game?"
      ],
      "capabilities": [
        "Deals secret roles: werewolves, a Seer, a Doctor and villagers for 5-12 players",
        "Runs the night: wolves agree on a victim, the Seer reads, the Doctor guards",
        "Announces dawn with the role of the dead, or a save without naming who",
        "Day votes with live tallies, skip, ties and a discussion timer",
        "Ghost view for the dead and a full reveal with night-by-night history",
        "Players join from ChatGPT or any phone browser with a 4-letter code"
      ],
      "logo": "https://games-worker.demos.42a.ai/werewolf/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/werewolf/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "werewolf game",
      "play werewolf",
      "mafia party game",
      "werewolf narrator",
      "werewolf moderator",
      "hidden role game",
      "social deduction game",
      "party game with friends"
    ],
    "tools": [
      {
        "name": "start_werewolf",
        "title": "Start a Werewolf game",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "join_werewolf",
        "title": "Join a Werewolf game",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "werewolf_status",
        "title": "Werewolf game status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "werewolf_pick",
        "title": "Werewolf night pick or vote",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "werewolf_host",
        "title": "Werewolf host controls",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Start a werewolf game for my friends, I'm Dana",
          "tools_triggered": [
            "start_werewolf"
          ],
          "expected_behavior": "A lobby card with a 4-letter code to share, Dana as host, and her player key."
        },
        {
          "description": "A friend joins the seeded lobby",
          "prompt": "Join Huddle Werewolf game DEMO as Priya",
          "tools_triggered": [
            "join_werewolf"
          ],
          "expected_behavior": "Priya is seated as the 5th player; the lobby is ready to deal 1 werewolf, a Seer, a Doctor and 2 villagers."
        },
        {
          "description": "The Seer checks their card at night",
          "prompt": "What's my role in the werewolf game? My key is DEMQ-BBBB",
          "tools_triggered": [
            "werewolf_status"
          ],
          "expected_behavior": "Sam's private card: the Seer, night 1, a grid of names to read. No one else's role."
        },
        {
          "description": "The wolf picks a victim",
          "prompt": "We kill Max tonight (key DEMQ-AAAA)",
          "tools_triggered": [
            "werewolf_pick"
          ],
          "expected_behavior": "The pack agrees on Max; the night goes on until the Seer and Doctor have picked."
        },
        {
          "description": "A day vote",
          "prompt": "I vote for Sam. My werewolf key is DEMV-CCCC",
          "tools_triggered": [
            "werewolf_pick"
          ],
          "expected_behavior": "Lee votes Sam on day 1; 2 of 5 have voted, Max (a Villager) died at dawn."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Explain the rules of Mafia and suggest some variants for a big group.",
          "expected_behavior": "Does not call Huddle Werewolf: A rules question with no game to run; the model can answer it directly."
        },
        {
          "prompt": "Write a short horror story about a werewolf in a small village.",
          "expected_behavior": "Does not call Huddle Werewolf: Creative writing about werewolves, not a party game."
        },
        {
          "prompt": "Pick a random name from Ana, Ben and Cy to go first.",
          "expected_behavior": "Does not call Huddle Werewolf: A one-off random pick, not a hidden-role game."
        }
      ]
    }
  },
  {
    "slug": "secret-spy",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/secret-spy/mcp",
    "interface": {
      "displayName": "Huddle Secret Spy",
      "shortDescription": "Find the spy who has no clue",
      "longDescription": "A social deduction party game for 3 to 10 players: everyone gets the same secret location and a role there, except one player, the spy, who gets nothing. Ask each other questions to find the spy before they work out where you are.\n\nOne person starts a game and reads out a 4-letter code. Friends join from their own ChatGPT or Claude chat, or from a browser link on any phone, so every secret card stays on its owner's screen. Each round the server picks one of 36 original locations (a submarine, a night market, a space station, a ski lodge, a film set, a wedding reception and more), deals a role to every player except the spy, and starts a 5, 8 or 10 minute clock. The card says who asks the first question.\n\nPlayers question each other out loud or in a group chat. Answers have to prove you know the place without naming it. Anyone may once per round accuse another player: everyone else votes, and a unanimous yes ends the round. The spy may at any moment reveal themself and guess the location from the list on their card. When the clock runs out the table votes, and the most-voted player is unmasked (a tie lets the spy escape).\n\nScoring: the spy scores 2 for escaping and 4 for guessing the location; if the spy is caught or guesses wrong, everyone else scores 1, and whoever started a successful accusation scores 2. A running scoreboard carries across rounds until the host ends the game.\n\nYour assistant can help you phrase a sly question or a vague answer that fits your role, or help the spy bluff, without ever telling the table the location.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start a Secret Spy game, I'm Dana",
        "Join Huddle Secret Spy game KXQF as Sam",
        "I'm not the spy: help me ask a sneaky question that doesn't give our location away"
      ],
      "capabilities": [
        "36 original locations, each with 6 to 8 roles",
        "Secret cards dealt privately to every player, one hidden spy",
        "Round clock (5, 8 or 10 minutes) and a random first asker",
        "One accusation per player per round, unanimous vote to convict",
        "The spy can reveal and guess the location any time",
        "Final vote when time runs out, with a running scoreboard"
      ],
      "logo": "https://games-worker.demos.42a.ai/secret-spy/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/secret-spy/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "spy party game",
      "find the spy game",
      "secret location game",
      "who is the spy",
      "social deduction game",
      "party game for groups",
      "spy game with friends",
      "guess the location game"
    ],
    "tools": [
      {
        "name": "start_secret_spy",
        "title": "Start Secret Spy",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "join_secret_spy",
        "title": "Join Secret Spy",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "secret_spy_status",
        "title": "Secret Spy Card",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "secret_spy_move",
        "title": "Secret Spy Move",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "secret_spy_host",
        "title": "Secret Spy Host Controls",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Let's play the spy game where everyone knows the location except the spy. I'm Dana, 8 minute rounds.",
          "tools_triggered": [
            "start_secret_spy"
          ],
          "expected_behavior": "A lobby card with a 4-letter code, a join link and Dana as host; the model keeps the player key."
        },
        {
          "description": "A friend joins with the code",
          "prompt": "Join Huddle Secret Spy game DEMO as Sam",
          "tools_triggered": [
            "join_secret_spy"
          ],
          "expected_behavior": "Sam is seated in game DEMO (4 players) and gets their own player key."
        },
        {
          "description": "Host starts round 1",
          "prompt": "Everyone's in, start the round",
          "tools_triggered": [
            "secret_spy_host"
          ],
          "expected_behavior": "Round 1 starts: Dana's secret card (location and role, or the spy), an 8-minute clock and who asks first."
        },
        {
          "description": "A non-spy checks their card mid-round",
          "prompt": "What's my card again? I don't want to say it out loud.",
          "tools_triggered": [
            "secret_spy_status"
          ],
          "expected_behavior": "Priya's card: Submarine, sonar operator; Priya asks first; nothing about who the spy is."
        },
        {
          "description": "The spy reveals themself and guesses",
          "prompt": "I'm the spy and I'm pretty sure they're on a submarine. Reveal me and guess it.",
          "tools_triggered": [
            "secret_spy_move"
          ],
          "expected_behavior": "Round over: Leo the spy guessed the Submarine and scores 4."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Recommend some good spy movies for a movie night.",
          "expected_behavior": "Does not call Huddle Secret Spy: A recommendation in conversation, not a game."
        },
        {
          "prompt": "Start a werewolf game with night and day phases for my friends.",
          "expected_behavior": "Does not call Huddle Secret Spy: A different social deduction game with its own plugin."
        },
        {
          "prompt": "Explain the rules of the board game Clue.",
          "expected_behavior": "Does not call Huddle Secret Spy: Rules of another game are a conversation, not a Secret Spy round."
        }
      ]
    }
  },
  {
    "slug": "clue-grid",
    "mcpServerUrl": "https://games-worker.demos.42a.ai/clue-grid/mcp",
    "interface": {
      "displayName": "Huddle Clue Grid",
      "shortDescription": "Team word clues on a 5x5 grid",
      "longDescription": "A team word-association party game for 4 to 12 players: two teams race to find their secret words on a 5x5 grid from one-word clues.\n\nPlayers split into Red and Blue. Each team has one clue giver who sees the secret key: which of the 25 words belong to Red, which to Blue, which are harmless bystanders, and which single word is the trap. On their turn the clue giver gives one word and a number (\"Orbit 2\"), and their teammates tap the words they think it points to. Find a teammate word and keep going (up to the number plus one); hit a bystander or the other team's word and the turn passes; hit the trap and your team loses on the spot. The first team to uncover all of its words wins.\n\nEveryone plays from their own phone: in their own ChatGPT chat, or from a browser join link with no account needed. Each card shows only what that player may see, updates live as words are revealed, and keeps a running history of the clues. In a clue giver's chat the assistant can see the key and brainstorm clue options with a number, naming the words each one links and the risky words to stay away from. In a guesser's chat it never sees the key, but it can help reason about which words fit the clue.\n\nBoards come from an original list of nearly 500 everyday nouns, a new board every game, and the starting team alternates.",
      "category": "Entertainment",
      "defaultPrompt": [
        "Start a Clue Grid word game for our group, I am Dana",
        "Join Huddle Clue Grid game KXQF as Sam",
        "I am the clue giver: give me clue ideas for my words"
      ],
      "capabilities": [
        "Two teams, Red and Blue, with a clue giver each, 4 to 12 players",
        "A secret 5x5 key: 9 and 8 team words, 7 bystanders, 1 trap word",
        "Clue givers see the key; guessers see only revealed colours",
        "Live cards on every phone, in ChatGPT or a browser",
        "Clue checks: one word, never a board word or part of one",
        "The assistant suggests clues for clue givers and reasons with guessers"
      ],
      "logo": "https://games-worker.demos.42a.ai/clue-grid/icon.svg",
      "websiteURL": "https://games-worker.demos.42a.ai/clue-grid/",
      "supportURL": "https://games-worker.demos.42a.ai/support",
      "privacyPolicyURL": "https://games-worker.demos.42a.ai/privacy",
      "termsOfServiceURL": "https://games-worker.demos.42a.ai/terms",
      "developerName": "42a"
    },
    "keywords": [
      "team word association game",
      "word grid party game",
      "one word clue game",
      "spymaster word game",
      "red team blue team word game",
      "5x5 word guessing game",
      "party word game online",
      "clue giver word game"
    ],
    "tools": [
      {
        "name": "start_clue_grid",
        "title": "Start Clue Grid",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "join_clue_grid",
        "title": "Join Clue Grid",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "clue_grid_status",
        "title": "Clue Grid Status",
        "annotations": {
          "readOnlyHint": true,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": true
        }
      },
      {
        "name": "clue_grid_setup",
        "title": "Clue Grid Teams and Start",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      },
      {
        "name": "clue_grid_move",
        "title": "Clue Grid Move",
        "annotations": {
          "readOnlyHint": false,
          "destructiveHint": false,
          "openWorldHint": false,
          "idempotentHint": false
        }
      }
    ],
    "dataSources": [],
    "review": {
      "positiveTestCases": [
        {
          "description": "Host starts a game",
          "prompt": "Let's play the team word clue grid game, I'm Dana",
          "tools_triggered": [
            "start_clue_grid"
          ],
          "expected_behavior": "A lobby card with a 4-letter code and join link; Dana is Red clue giver and keeps her player key."
        },
        {
          "description": "A fourth friend joins and the table is ready",
          "prompt": "Join Huddle Clue Grid game DEMQ as Sam",
          "tools_triggered": [
            "join_clue_grid"
          ],
          "expected_behavior": "Sam lands on Blue as a guesser; both teams now have a clue giver and a guesser, so the host can start."
        },
        {
          "description": "The clue giver asks for clue ideas",
          "prompt": "I'm the red clue giver (key DEMO-AAAA). Give me some clue ideas for my words.",
          "tools_triggered": [
            "clue_grid_status"
          ],
          "expected_behavior": "Ana's key: 9 red words (Moon, Piano, Whale, Comet, Guitar, Planet, Shark, Drum, Bread), the trap Rocket. The model suggests clues like Orbit 2 (Moon, Planet) or Band 3 (Piano, Guitar, Drum), warning that Orbit also points at Rocket."
        },
        {
          "description": "The clue giver gives a clue",
          "prompt": "My clue is orbit, 2",
          "tools_triggered": [
            "clue_grid_move"
          ],
          "expected_behavior": "Clue \"Orbit 2\" is on every card; Red guessers have 3 guesses."
        },
        {
          "description": "A guesser reveals a word, with no key in their payload",
          "prompt": "We think orbit means Moon, let's reveal it (my key is DEMO-BBBB)",
          "tools_triggered": [
            "clue_grid_move"
          ],
          "expected_behavior": "Moon turns red; Ben has 2 guesses left. Ben's payload has only the revealed colour, never the key."
        }
      ],
      "negativeTestCases": [
        {
          "prompt": "Make me a 5x5 word search puzzle with animal names.",
          "expected_behavior": "Does not call Huddle Clue Grid: A word search is a solo puzzle to generate, not a team clue game."
        },
        {
          "prompt": "Split my 10 friends into two teams for trivia night.",
          "expected_behavior": "Does not call Huddle Clue Grid: Just picking teams, with no word grid or clues to play."
        },
        {
          "prompt": "What is a good one-word clue for \"apple\" in a crossword?",
          "expected_behavior": "Does not call Huddle Clue Grid: A crossword clue question is a conversation, not a multiplayer game."
        }
      ]
    }
  }
]