Module configuration is per-row: auto-fill (payback economy or the opinionated filler) or hand-picking. There is no way to save a loadout — "prod mk2 everywhere, speed beacon pair" — and reuse it, so drafting a big block means repeating the same module choices row after row.
Shape:
- Project-level saved templates: an ordered module list plus optional beacon config (beacon type, count, beacon modules), with a name and icon.
- Compatibility filtering: a template applies only where the machine's module slots, allowed effects, and module categories accept it (same matching rules the TURD hidden-module path already uses in
effects.ts).
- Auto-apply: mark a template as the default for new rows (optionally scoped to machine types); adding a recipe picks the first compatible template, falling back to auto-fill.
- Per-row override always wins; a template is a starting point, not a lock.
Part of #31.
Module configuration is per-row: auto-fill (payback economy or the opinionated filler) or hand-picking. There is no way to save a loadout — "prod mk2 everywhere, speed beacon pair" — and reuse it, so drafting a big block means repeating the same module choices row after row.
Shape:
effects.ts).Part of #31.