I also had a suggestion a while ago about tags instead of actual item on crafting but I have no idea if it’s very viable on coding.
Instead of hammer or hatchet you’d simply put the verb ‘hammer’
Both the hatchet and the hammer would have a tag/flag labeled ‘hammer’
Screwdriver would have ‘screw’ (hold your snickers and nasty comments)
This would allow for things like having a multi tool a lot easier to code.
Hatchet: “hammer”, “chop”
You may also go with a mapping instead. Could go for more complex and go for a 2d mapping, but that’s totally up to devs.
While you could do this as a look up file I’d rather put it as a flag on the actual item. That way adding and removing tools is very simple. Probably need a list of all possible crafting verbs somewhere. 
I forgot to explain the numbers. They are efficiency.
Hatchet: “hammer”: 1, “chop”:0.75
Axe: “hammer”: 1, “chop”:1
Hammer: “hammer”: 1, “pry”: 0.75
Rock: “hammer”: 0.5
Hotplate: “heat”: 1, “burn”: 1