I wrote a bit more poetry, then focused on improving MOTR. Before anything else, I made Input and Output generic, and put some convenience methods for manipulating iterables of them into their module. I reworked the cmd module to use this new stuff, which is just complex enough that I need to give the type system a little boost to get it going.
The next step is going to be reworking the *inputs argument into something like *io, which is going to be interesting because, once I build and locally install a new version, the motrfile will be broken until I fix it.
Actually, speaking of the motrfile, I just remembered something else that I'm wondering if it works... Ah, not worth trying right now. Basically, I'd like to see if importlib can replace the weird dance I'm doing right now to execute the motrfile, and it probably can, I just need to put in a bunch of time to redo the error wrapping, and it's too late at night for that right now.
I'll get back to work on improving the cmd helper, which is a bit harder because it's not a simple refactor. Hopefully I'll have time to make some of the more interesting changes I have in mind.
Anyway, I should wrap up now.