Problem
The block solver models fluid-temperature variants internally, but folds them to the base fluid name before persisting block boundary flows. Factory Scenario therefore treats all temperatures of a fluid as interchangeable. It can allocate scarce high-temperature supply to an unrestricted consumer or accept low-temperature supply for a strict consumer.
Direction
- Let a user select Auto or an exact known compatible temperature on each recipe fluid ingredient.
- Keep Factorio fluid prototypes canonical; temperature variants remain planner identities.
- Preserve exact producer temperatures and consumer accepted ranges through cached block flows and composed/factory solves.
- Compile qualified flows into exact variants and compatibility pools in the factory LP.
- Keep supply priority behavior within compatible supplies.
- Make the implementation generic for every temperature-sensitive fluid, not steam-specific.
Acceptance criteria
- A consumer pinned to 250 C cannot be satisfied by 2000 C supply.
- A consumer requiring 2000 C cannot be satisfied by 250 C supply.
- An Auto consumer can use any recipe-compatible known temperature.
- Temperature choices are filtered to the ingredient prototype range.
- Existing blocks without selections retain Auto behavior.
- Temperature identity survives saved block flows, composed blocks, Factory Scenario preview/apply validation, and supply-allocation reporting.
- Main UI flow has E2E coverage and planner behavior has focused unit tests.
- User and development documentation describe temperature selection and factory routing.
Follow-up to #110: in-block temperature identity exists, but its original factory-boundary scope is still folded away.
Problem
The block solver models fluid-temperature variants internally, but folds them to the base fluid name before persisting block boundary flows. Factory Scenario therefore treats all temperatures of a fluid as interchangeable. It can allocate scarce high-temperature supply to an unrestricted consumer or accept low-temperature supply for a strict consumer.
Direction
Acceptance criteria
Follow-up to #110: in-block temperature identity exists, but its original factory-boundary scope is still folded away.