Okay, I'm sort of rested up. I'm going to try to get code stuff done a little early today. Let's see...
The obvious place for me to prove out this design is in the method that will convert an Invocation to a Dynamic[Command].
I'm sketching out the rough details, avoiding the really gnarly parts, but the gnarly parts are coming to me. I hit a condition that looks extremely like a bug in Mypy to me. Like, it replaced a concrete type with a type variable. I don't know why it gave up that information.
Wait, wait, wait, no I just wrote the code wrong. Let's see, if I fix the code the, yep, there it goes, passes just fine.
It turns out Mypy doesn't run on the code you thought you wrote.
Anyway, looks like one of the next things I want to cover is redoing some of the type signatures for those functions I was rewriting and moving around.
To be honest, I'm not feeling like pushing things late, so I'm just going to take things easy and call it now.