Add the ability to toggle recipes within a block on/off, and to toggle an entire block on/off, so that disabled items are kept in the plan but excluded from the solve and rollups.
Why
Two concrete uses:
- Comparing alternatives. Keep two recipes for the same output side by side and flip between them to see which is the better path, without deleting and re-adding one each time.
- Placeholder / staged planning. Sketch out future work but only count what's active for now. For example, a block covering T1–T4 buildings where only T1 is enabled today; T2–T4 stay in place as a visible reminder to come back to, but don't affect rates, building counts, byproducts, or power.
Behavior
- A disabled recipe stays in the block (still listed, still editable) but is treated as absent by the solver — no contribution to inputs/outputs, building counts, or any rollup.
- A disabled block stays in the factory (still visible, still openable) but contributes nothing to factory-wide production, byproduct balance, power/pollution, etc.
- Disabled state is persisted in the store and clearly shown in the UI (e.g. dimmed row/card with a toggle).
Open questions
- How disabled recipes/blocks interact with byproduct sinks and cross-block matching — presumably they simply drop out of the graph while disabled.
- Whether the AI assistant should be aware of disabled state (skip it when reasoning, or be able to propose enabling/disabling).
Relates to the block composition epic (#33).
Add the ability to toggle recipes within a block on/off, and to toggle an entire block on/off, so that disabled items are kept in the plan but excluded from the solve and rollups.
Why
Two concrete uses:
Behavior
Open questions
Relates to the block composition epic (#33).