The engine is constant — worlds are mods: characters, boards, art, rules, even victory conditions are data. Six worlds ship in the box, and a new one can be generated from a book by AI, end to end:
npm run create-mod -- mybook.txt --from-book --portraits --boardbg --auto-balance
Four resumable stages: extract (map-reduce over the whole book — characters, places, factions) → build (six gameplay stats + a passive + personal lore per character; real places get real coordinates, fictional worlds get AI layouts) → art (pixel portraits for the whole cast + an era-styled board) → balance (a headless tournament simulator plays hundreds of games and hill-climbs the roster until no character is statistically over- or under-powered — it once caught a 67%-win-rate outlier before any player met it). Cost plans print before any API spend; a full novel runs about $0.5–1.
Play grows past roll-and-buy: rent duels (challenge the landlord instead of paying — 2d6 + stamina + luck÷2), player trading and round-robin auctions, seasons that shift prices every ten turns, four building tiers, three victory modes. Three renderers: the classic ring, a war-room atlas with glowing routes and forked paths, and a pixel globe you play on.
The favourite layer: an MCP server that seats LLM agents as real players —
ten tools covering match lifecycle, seat-scoped state, legal-move listing
(drift-oracle-tested against the engine), move execution and an event cursor.
After claude mcp add meinopoly, Claude sees only its own seat — and plays.
Since July the table also argues back. Persuasion (舌战群儒) opens a window on
every live rent, duel or trade in which a seat can make its case instead of
simply acting — and attempt_persuasion is the tenth MCP tool, so an agent
pleads exactly where a human would click. Bots answer under one of three
policies (never, always, value-weighted), the server can disable the layer
online without a redeploy, and a taunt window stops a duel stalling on a
responder who never shows.
None of it moves without proof: 167 frozen game-log snapshots pin every
engine message byte-for-byte, and GitHub Actions runs unit, build and Playwright
as three independent jobs on every push to main — a failure in one never hides
the signal from the other two.