TL;DR
Add "Allowed modules" and "Set Modules" circuit options to assembler.What?
When adding circuit control to an assembler the recipe can be set with "Set recipe" and then the ingredients can be queried using "Read ingredients". Add two more options to "Read modules" and to "Set modules". The first outputs the allowed modules for the current recipe while the later adds module proxies to insert the specified modules using construction bots. Unspecified modules are removed to be collected by construction bots.Why?
With "Set recipe" and "Read ingredients" an assembler can be turned into a fully automated factory that builds anything, recursively building intermediates first. But when using modules this becomes inefficient because productivity modules can't be used easily.Productivity modules are only allowed on intermediates so building anything else will eject those modules. And there is no easy way to know which recipe allow productivity modules and which don't in an automated way. One has to manually construct a list of recipes that allow or disallow them. The "Read modules" option is to fix that problem, making it possible to query what modules an assembler can use. This can then be used to build the intermediates on an assembler with productivity modules and the rest on an assembler with speed modules.
The "Set modules" option would take this one step further. This would allow swapping out the modules for each recipe as desired.