Another light day today, just because some stuff happened that's making it hard to focus. Nothing important long-term, just... urgent.
Not dwelling on that, quick notes on dividing up the api module before I get back to the other stuff.
- The module defines a helper type that many functions return. This type can be grouped with the five most basic helper functions, or separately.
- There's a high-level helper function that nothing else relies on, so that could in theory stay in the module.
- There are three Action implementations, that should each get their own module, along with the helpers that instantiate them.
- There is a pair of classes, Input and Output, that the Action implementations use. Only Input needs to be exposed. (Because it has a helper that creates an Output.)
- The module re-exports a helper function from inside the library, that it might make sense to move to the _api package, since I don't think any of the non-api code relies on it.
While I'm thinking about breaking stuff up, I'd like to do something about the internal registry module, because it's a whole big thing that seems kind of awkward to work with.
I think it's possible to pull out bits here and there as opaque units with a smaller interface, but I think my best bet is to copy this text into a word processor and start marking it up. That's how I figured out that the config prototype was about 50% support code.
Anyway, super late, wrapping up.