A Reprocessing Plant advertised every item its recipe lists, voidsteel included,
while the pool would never pick a group holding a locked item -- so the summary
promised a yield the building could not produce, and disagreed with the output
buffers below it, which listed unlocked items only.
Three places drew those groups: the panel summary, the option button that offers
the recipe, and the item tooltip's producer line. All three now go through
toUnlockedOutputGroups, which drops a group whole exactly as the pool does.
It asks of every group, single-group recipes included, where the pool exempts
them. That exemption exists so a building whose one output nothing yet demands
still produces -- a rule about running, not about what to state. What makes the
stricter rule safe to state is that no building can hold a recipe with nothing
left to draw: the dialog does not offer one, auto-selection does not adopt one,
and the blueprint gate does not apply one.
The tooltip needed one more condition. A recipe listing the item only in a group
holding something locked is no path to that item at all, so it is no longer
listed as a producer of it -- otherwise the line drawn beneath the recipe's name
would not have named the item it was opened to explain.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x