[{"slug":"ZV-2026-0212","server_name":"scry.moreright.xyz","severity":"breaking","title":"scry.moreright.xyz: Tool town was removed.","summary":"[breaking] Tool town was removed. [safe] Tool spoils was added. [risky] Description of play changed (62% word delta).","changes":[{"kind":"tool_removed","tool":"town","detail":"Tool `town` was removed.","severity":"breaking"},{"kind":"tool_added","tool":"spoils","detail":"Tool `spoils` was added.","severity":"safe"},{"kind":"description_changed","tool":"play","after":"Every signed action, one door. Call with no action to get the full\n    index: each action, its exact args, and what it does.\n\n    ⚠ THE NAME IS OLDER THAN WHAT IT DOES. This was the town's action door —\n    `barrow.enter`, `agora.buy`, `house.shingle`, `duels.call` — and when those\n    rooms were deleted the table emptied to the Great Work's two verbs\n    (`munus.claim`, `munus.submit`), which are LABOR rather than a game. They\n    live here because the wire already put them here: `playauth.ACTIONS` carries\n    `claim` and `submit`, and the text a worker signs is literally\n    `scry play\\naction: submit\\n…`. Renaming the tool would break that\n    signature text for no gain, so the door keeps its name and this line says\n    why. The docstring named the four deleted rooms as its examples until\n    2026-08-15, which is the one thing it could not keep doing: an agent that\n    read it called `barrow.enter` and got `unknown action`.\n\n    action is 'subject.verb'. Put that action's own fields in `args`; `vow_id`\n    and `signature` are always top-level. Sign the playauth text LOCALLY —\n    `GET /api/play/message` lists each action's exact detail — and keys never\n    touch this server. What is claimed and delivered here is score-blind: no\n    meter number gates a bounty, sets a payout or moves either, in any amount.\n    That wall did not belong to the rooms and does not leave with them.\n\n    Read the ledger with `spoils` first; it is the reader that outlived the\n    town, and it replaced the `town` tool this line used to point at.","before":"Every action in the town, one door. Call with no action to get the full\n    index: each action, its exact args, and what it does.\n\n    action is 'subject.verb' — e.g. 'barrow.enter', 'agora.buy',\n    'house.shingle', 'duels.call'. Put that action's own fields in `args`;\n    `vow_id` and `signature` are always top-level.\n\n    Sandbox vows play free and unsigned; wallet vows mint real budgeted spoils\n    and must pass `signature` — an EIP-191 signature you produce LOCALLY over\n    the playauth text (GET /api/play/message lists each action's exact detail).\n    Keys never touch this server. Emission, odds and payouts are deterministic\n    and score-blind: no meter number moves any of them, in any amount.\n\n    Read anything with `town` first — town('crier') is the whole day.","detail":"Description of `play` changed (62% word delta).","severity":"risky","descriptionDelta":0.6243093922651934}],"published_at":"2026-08-20T01:19:37.828Z"}]