I realize it would probably take a fair amount of time and effort, but I think it would be worthwhile to simplify the current crafting system.
Items would be defined in the code with tags like “sharp” or “container” or “explosive” along with the material they are made of (I believe materials are already implemented?)
This would allow crafting recipes to call for a specific kind of item instead of a bunch of OR’s and every possible item.
So crafting for example, a grenade, would require “1 [metal] [container], 200 units of [explosive], Nails OR BBs, and 1 [fastener]” instead of the current mess of ORs it is now.
This would also make it easier to keep compatibility as new items or recipes are added. So if, for example, a hunting knife is added, the tags would allow it to be used in recipes already calling for any knife-life object.