Just one code convention thing: could you please rename planAtLeastOne to plan_at_least_one?
In light if w-zocker's comment, I think you can also remove the TODO comment. I have also noticed another case of behaviour that's not wanted, but that problem is also present in trunk, so no need to fix it in this branch: If there is no warehouse to store the ware (warehouse policy set to "do not store") and no other building requests it, the ware is still produced, leading to a stock pile in front of the metal works.
Tested and LGTM. Sorry it took me so long.
Just one code convention thing: could you please rename planAtLeastOne to plan_at_least_one?
In light if w-zocker's comment, I think you can also remove the TODO comment. I have also noticed another case of behaviour that's not wanted, but that problem is also present in trunk, so no need to fix it in this branch: If there is no warehouse to store the ware (warehouse policy set to "do not store") and no other building requests it, the ware is still produced, leading to a stock pile in front of the metal works.
Maybe we should open a new bug for the 2 issues?