Cards become JSON data in course/cards (one file per card, validated against card.schema.json and the catalog); the M5 references load them via registerCards and interpret effects, replacing content closures. Adds assemble(base, donor, half), the assemble/buffHand effects with an injected chooser, Fleshshape as the data-only Expansion Drop, and stages course/cards in verify-references and start-module. Co-Authored-By: Claude Opus 5.5 <[email protected]>
613 B
613 B
Systemic Design Course: Rust workspace
Your engine lives in src/engine/ (generic rules machinery) and src/content/ (card definitions; only this directory may name specific cards). src/harness.rs is the thin adapter the course tests call; wire its todo!() stubs to your engine.
Tests live in tests/ and use use engine::harness::*;. Get a module's tests with node tools/start-module.mjs NN <this-dir> from the course repo.
cargo test
The crate has no dependencies yet. serde (with the derive feature) and serde_json are added at Module 5, when cards become JSON files in cards/.