# Task 1: Workspace Scaffold **Depends on:** none ## Context Files - `.dev/2026-05-28-procgen-map-core/spec/design.md` — §2 (workspace layout), §3 (the `Map` contract these crates revolve around). - `.dev/2026-05-28-procgen-map-core/README.md` — architecture + dependency direction. ## Files - Create: `Cargo.toml` — workspace manifest. - Create: `.gitignore` — `/target`. - Create: `reikhelm-core/Cargo.toml` — core lib manifest. - Create: `reikhelm-core/src/lib.rs` — empty crate root (later tasks append `pub mod` lines). - Create: `reikhelm-viz/Cargo.toml` — viz binary manifest. - Create: `reikhelm-viz/src/main.rs` — stub `main` that compiles. ## What to Build A two-crate Cargo workspace (spec §2). `reikhelm-core` is a library with **no rendering dependencies** — only `rand`, `rand_chacha`, and `serde` (with the `derive` feature). `reikhelm-viz` is a binary depending on `reikhelm-core` (by path) and `macroquad`. `git init` the repo first so per-task commits work. Use `resolver = "2"`. Pin recent stable crate versions. `lib.rs` starts empty (a crate doc comment is fine); `main.rs` is a trivial `fn main()` placeholder — Task 13 replaces it. The point of this task is a workspace where `cargo build` and `cargo test` succeed with zero modules. ## Interface Dependencies - **Produces:** a compiling workspace; `reikhelm-core` crate (lib), `reikhelm-viz` crate (bin). ## Tests - No unit tests yet. The success check is that the workspace compiles. ## Success Criteria - [ ] `git init` done; `.gitignore` excludes `/target`. - [ ] `reikhelm-core` declares `rand`, `rand_chacha`, `serde` (derive); declares **no** rendering/GUI dependency. - [ ] `reikhelm-viz` depends on `reikhelm-core` by path and on `macroquad`. - [ ] `cargo build` succeeds from the workspace root. - [ ] `cargo test` succeeds (zero tests is fine). ## Commit `"chore: scaffold reikhelm cargo workspace (core + viz crates)"`