So I’m guessing at some point we’ll be getting more stockpile management tools, but there’s going to be a need to keep it from bloating into the abomination that is Dwarf Fortress’s UI.
So here’s a simple solution: on the stockpile management screen, there’s a button called “Link Workbenches.” The user can then select workbenches to link to that stockpile. On the workbench screen, there can be a similar button called “Link Stockpiles” that’ll let you select stockpiles in the same manner.
Linked workbenches will prefer to take from a linked stockpile. Workers will carry supplies from generic stockpiles to that stockpile, removing the need for the player to manually set up a complex supply chain like in Dwarf Fortress.
There’s no real need to specify output stockpiles. For example, a bolt of cloth can be both a workbench’s input and output and it’s used by multiple crafters. A weaver might keep an unlinked cloth stockpile nearby for convenience and take from that, while their neighbor the carpenter might keep a smaller linked cloth stockpile for crafting comfy beds and chairs. Workers will move the cloth from the big weaver’s stockpile to the smaller carpenter’s stockpile. The weaver will end up using that generic stockpile because it’s closest.
If, later in the game, there’s multiple weavers who live and work in different locations in the city, there might be a need for a cloth warehouse. In that case, the weavers’ stockpiles can be linked to the workbenches and a big generic cloth stockpile can be placed in a warehouse on Weaver’s Street. The weavers (or workers, if the weavers are busy) will drop off the cloth they make at the generic stockpile, or if their own stockpile isn’t full they’ll stock that one first.
If one weaver is currently making nothing but cloth and another weaver is making lots of clothes, the weaver making cloth will naturally have their cloth stockpile full and will either drop off the cloth at the warehouse or, if they’re close enough, drop it off directly at the other weaver’s stockpile.
Of course, all this relies on the crafters being smart enough to just dump what they make on the floor if there isn’t a stockpile for it within a short walking distance. Otherwise, there WOULD be a need to handle inputs and outputs and all the micro that requires just to keep the carpenter from walking across town to drop off a single chair. So long they only drop off outputs in stockpiles within 10 feet or so of the workbench, there’s no need to overcomplicate the UI.