I didn't get much done in the way of mockups today. I was working on squaring away a few things, and that ended up taking a few hours. That, and playing Minit.
Anyway, I was able to reason about one thing that the sheet/module code needs, and that's a version of evolve from attrs that implicitly converts a proxy to the underlying module. That probably doesn't make much sense without context. Basically, the way I'm trying to set up this whole modular concept, is to allow client code to define module classes using a decorator. The decorator essentially splits the class into a container class and a proxy class. All client logic lives on the proxy, which defines accessors to all of the fields on the container. I haven't totally thought through the typing considerations for this; they might be really hairy or they might be fine. Initial experimentation points towards "hairy".
Oh well, if this ends up needing a plugin, it'll probably be less of a hassle than my attempts at a plugin for Structured Data. And I've already gt this monorepo setup working, so there wouldn't be much friction in getting the project spun up...
Regardless, I'd like real example code to test this against. I'll try to get that specified tomorrow.