All right, it's way late because I spent most of the day playing Minecraft, but I want to get something done with this API stuff. I'll make one of the changes I was planning, and see how I feel like from there.
Okay, basically, I made some improvements to the "add command" helper. I added a class for "paths that a command makes exist", and generally made the "paths that a command needs to exist" class more helpful. I moved more code from the task file into the "api" file, which at this point really needs to be split up. I also cleaned up the setup_venv function a little.
I'm going to check over the code for correctness while this publishes, then get to bed a bit late. And next thing I work on probably has to be splitting the code up.