3 Commits
Author SHA1 Message Date
hypercross 13b3eaed78 feat(bgm): derive definition names from role.type
A definition is identified by role.type and named role.type.lang
(package.lang for packages). Code blocks declare it via role= on the
info string; real files by their filename. Blocks and files without a
matching role.type are ignored. file= still overrides the auto-name.

Relative asset and $variants paths now resolve against the markdown
file's directory (baseDir) rather than the virtual name. Same role.type
with different ids groups under one name; duplicate type#id still
errors. Migrate fixtures and example games to role=.
2026-08-10 16:36:57 +08:00
hypercross dc721d5c2d refactor(games): use ordered setup placements
Convert poker and carcassonne setups to the ordered placement list. Deal the deck/draw first, then move the flop cards and opening tiles out onto their paths.
2026-08-10 11:27:53 +08:00
hypercross 77ffd8ff00 feat(carcassonne): add base game manifest
A 24-tile base game: one part per tile image (A-X), a board with a
draw pile and an 11x11 grid, and a setup seeding the tile supply.
2026-08-10 08:52:48 +08:00