Round 2 per lanes/LANE-SIM.md.
- splitters: round-robin across outward-facing belts, blocked outputs
skipped not waited on; rank now traces THROUGH splitters and takes the
best outcome reachable across every terminal a lane reaches
- buffer tanks: charge on surplus, discharge to cover deficit, brownout
only once dry; bandwidth.stored is the pool
- heat v1: heatPerTick while active + RecipeDef.heat per craft, ambient
cooling, linear throttle 1.0@0.7 -> 0.5@1.0, scram at 1.0, restart
under 0.5, both edges emit 'scram'. Throttle applies to powerGen too,
so a hot decoder sags before it drops off the bus
- commission queue: data-order activation, repeat re-enters at the back
- jammed:'starved' (edge-triggered) and BeltItem.id (stable through belt
transfers and splitters alike)
15 new fixture tests for the M2 mechanics -- data/ carries none of the v2
fields yet, so heat and tanks are tested against a fixture this lane owns.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>