{
  "site": "NPG 桌遊（免費、無廣告的手機派對遊戲）",
  "note": "給 AI 與外部網頁讀的遊戲目錄。url 為相對於官網根目錄的路徑。",
  "games": [
    {
      "id": "bluff",
      "name": "唬爛王",
      "summary": "冷知識唬爛派對遊戲。1 位想想、1 位老實人、其他人唬爛；只有老實人知道答案，輪流說明後投票猜誰是老實人。",
      "players": [
        5,
        16
      ],
      "minutes": 20,
      "modes": [
        "single",
        "multi"
      ],
      "url": "bluff/index.html",
      "deeplink": {
        "single": "bluff/index.html?mode=single&players={players}&speak={seconds}&autostart=1",
        "multi_host": "bluff/index.html?mode=multi&autostart=1",
        "join": "bluff/index.html?room={code}"
      },
      "embed": {
        "iframe": true,
        "postMessage_in": {
          "type": "npg:start",
          "mode": "single|multi",
          "players": "number",
          "speak": "30|45|60|90|0",
          "room": "4 碼房號（選填）"
        },
        "postMessage_out": {
          "type": "npg:state",
          "game": "bluff",
          "phase": "home|role|speak|vote|reveal|end|lobby"
        },
        "safe_in_sandbox": "single（多機需要外部連線元件與 WebRTC，嵌入環境可能被擋）"
      }
    },
    {
      "id": "werewolf",
      "name": "狼人殺",
      "summary": "一支手機當主持人，有真人語音引導夜晚流程。",
      "players": [
        4,
        18
      ],
      "minutes": 30,
      "modes": [
        "single"
      ],
      "url": "werewolf/index.html",
      "embed": {
        "iframe": true,
        "postMessage_in": {
          "type": "npg:start",
          "players": "number",
          "win": "side|city|parity（選填）"
        },
        "postMessage_out": {
          "type": "npg:state",
          "game": "werewolf",
          "phase": "home|role"
        },
        "safe_in_sandbox": "single"
      },
      "deeplink": {
        "single": "werewolf/index.html?players={players}&autostart=1"
      }
    },
    {
      "id": "undercover",
      "name": "誰是臥底",
      "summary": "大家拿到同一個詞，臥底拿到很像但不一樣的詞（自己不知道）。輪流用一句話描述，投票淘汰，找出臥底。可加白板、可自己出題。",
      "players": [
        4,
        20
      ],
      "minutes": 15,
      "modes": [
        "single"
      ],
      "url": "undercover/index.html",
      "deeplink": {
        "single": "undercover/index.html?players={players}&speak={seconds}&autostart=1"
      },
      "embed": {
        "iframe": true,
        "postMessage_in": {
          "type": "npg:start",
          "players": "number",
          "speak": "30|45|60|90|0"
        },
        "postMessage_out": {
          "type": "npg:state",
          "game": "undercover",
          "phase": "home|role|speak|vote|reveal|end"
        },
        "safe_in_sandbox": "single"
      }
    },
    {
      "id": "dice",
      "name": "吹牛骰",
      "summary": "每人一組只有自己看得到的骰子，輪流喊「全桌至少有幾個幾」，不信就開，手機翻開全部骰子自動算輸贏。淘汰制或罰分制。",
      "players": [
        2,
        8
      ],
      "minutes": 15,
      "modes": [
        "single"
      ],
      "url": "dice/index.html",
      "deeplink": {
        "single": "dice/index.html?players={players}&dice=5&mode=elim|points&autostart=1"
      },
      "embed": {
        "iframe": true,
        "postMessage_in": {
          "type": "npg:start",
          "players": "number",
          "dice": "3|4|5|6",
          "mode": "elim|points",
          "wild": "boolean"
        },
        "postMessage_out": {
          "type": "npg:state",
          "game": "dice",
          "phase": "home|start|bid|reveal|end"
        },
        "safe_in_sandbox": "single"
      }
    }
  ],
  "home": "index.html"
}