I got distracted from porting Ink for most of today again, but I seem to be doing okay at getting in short bursts of work. I switched things over to the "CommonState" setup, and updated enough calls to dataclasses.replace that the tests behaved the same. I should probably turn those replace calls into methods on the objects in question, because they're really hairy, and the type-checking around them doesn't seem super strict? Anyway, I made some judgment calls on how to move forward from there, and I might have to come back to some of this later and fix it up, but now I'm getting helpful error messages again, so I'm going to just go with it for now.
I'm going to see if I can squeeze some work on this around the conlanging tomorrow.