This isn't done yet, but I think I've hit the wall for today.
It works, badly and slowly, for +club, as it hasn't yet got pruning.
It doesn't work, yet, for +accordion, +knife or +utensil, I suspect I've missed turning an int into a long somewhere.
If anyone wants to take a look, feel free...