All right, I have a new name for Builder. I'm going to try calling it Dynamic.
Okay, as I started copying things over, I realized that I'm missing a flex-style method for handling implicit prerequisites and outcomes, stuff that doesn't directly show up on the command line. I know I need that to make Coverage work properly, so I've got to get that in at some point. Hopefully, get this big weird convoluted method written right next to the other big weird convoluted method will give me some inspiration to factor out common logic. One aspect of this that's somewhat unfortunate is, I'm going to have to switch from storing "dynamic flexible" instances in a simple map to another registry-style mapping. That'll be the fourth one, unless I just... I think I can safely shove this in an Objects, I just need to parameterize it aggressively. Wait, no, that doesn't work. I legitimately need a whole new registry type. UUUUUUGH.
Well, I did it, and I got everything moved over. At this point, the types module contains no class statements, which is... interesting.
Anyway, that was a marathon session, it felt like, and I think the new dynamic module is somehow longer than types was yesterday? I'm not going to dwell on that too much.
I think, in light of the enhancements I made to the Dynamic class, I want to take a break from this refactor, and work on writing the classes I was sketching out last week.
For now, I want to decompress from all of the coding I just did. Time to take things easy.