I made this so recipe conflicts could be avoided in an automated crafter.
Put an item in the target slot of the GUI
Choose a recipe for the item
Feed items in from the top or sides
Items will be automatically distributed as they are inserted.
Items in the crafting area that do not match the recipe can be extracted from the bottom.
(ex. An empty bucket in a cake recipe)
Source by version: