I mostly hung around doing other things today, but I did put in some effort with the concept of "structure types". It was kind of tricky at times, and, unfortunately, I'm pretty sure I was working on the easy part. I basically did explicit implementations for Patterns, CompoundMatches, and "Literals". Next I need to work out the proper format for representing the ability to destructure tuple subclasses.
I'll try it tomorrow, but this could get ugly.
Anyway, once I've got this done to my satisfaction and I've done another pass with mypy on stricter settings, I'll take another break before returning to the question of how to implement the descriptor owner-based branching logic from the higher-level side of things.