# Contributing Please open an issue before a large change. Keep all merge and generation paths bounded, local and deterministic except explicitly cryptographic random fields. Never introduce remote assets, arbitrary markup injection or silent printer assumptions. Run `npm run check` and `npm run test:browser` before proposing a change. New stock presets need a documented geometry source and must retain the instruction to verify physical sheets. Contributions are accepted under GPL-3.0-or-later.