I hooked up Click to my new, streamlined Ironsworn implementation, and got it all working. I think I understand Python better than the last time I used Click heavily, because I've got a lot less junk around testing.
I was trying to give libraries besides Click a shot, and I actually tried a few, but the ease of setting up entry points, and not requiring custom annotations, won me over. In the current implementation, there are somewhere between two and four lines of boilerplate, in my opinion, and that feels pretty good for a cli library.
Now that I've got a consumer of some of this code set up, my next priority is trying to make some of the core logic a little nicer.
After that, porting and updating prototypes, or setting up mutation testing. We'll see.
For now, sleep.