An unofficial implementation of Sid Sackson's Acquire for boardgamers.space, for 2 to 6 players. Not affiliated with or endorsed by Hasbro, Avalon Hill, Renegade Game Studios or any other publisher of Acquire.
- AGENTS.md: agent instructions, current BGS status and publishing workflow.
packages/engine: the rules engine.wrapper.tsimplements the BGS Engine API.packages/viewer: the Svelte viewer, built as one IIFE bundle for the BGS iframe.rules.md: the rules the engine follows. Tests cite its section numbers.docs/registering.md: how to publish the engine and viewer to BGS.docs/admin/: the text, pictogram and screenshots for the BGS admin panel.
Requires Node 24 and pnpm 11 (corepack enable pnpm provides pnpm).
pnpm install
pnpm checkpnpm check checks formatting, lints, type-checks, runs the tests and builds both packages. To run it
before every commit, enable the hook with git config core.hooksPath .githooks.
pnpm build
pnpm devOpen http://localhost:5173. The test page runs the engine in the browser and shows the viewer as each player sees it. With hot seat on, it switches to whoever must act, so one person can play every seat. The toolbar plays random moves, jumps to the next merger, and switches player, theme and language.
URL parameters: players=2..6, seed=..., holdingsVisibility=cash (or cashAndShareCount, public; legacy publicHoldings=1), teamPlay=1, autoEnd=1,
endSize=31, twoPlayerMode=fourHands, stockSwap=3 (or 5, 7, unlimited), twoTiles=1, limitedLog=1, theme=light|dark, locale=de, moves=50 (random
moves on load), merger=1 (continue to the next merger).
The test page (packages/viewer/index.html, src/dev.ts, dev-badge.svg) is never part of
what BGS runs, so nothing needs removing for live:
- The viewer build bundles only
src/viewer.tsand what it imports, intoacquire-viewer.iife.jsandacquire-viewer.css. - The engine package (
pnpm packinpackages/engine) contains onlydist/andpackage.json.
Each GitHub Release has the built engine package and viewer files attached, ready to upload.
AGPL-3.0. See LICENSE.
After pnpm build, open the dev server with ?bundle=1&tutorial=founding (or
mergers, scoring). Add &locale=fr to switch languages. Tutorials use the real
engine, remember progress locally and support replaying a step or restarting.
pnpm test:browser starts its own Vite server on port 5191 and checks the compiled
viewer, not a source-only preview. Install Chromium once with
pnpm exec playwright install chromium. Screenshots and the report go to ignored
release/qa/. Set ACQUIRE_TEST_URL to reuse an existing dev server.