This is a great revision and I’m really liking the direction this is going. Thanks.
While observation not working for multi-layered keypaths (\.account.name) is unfortunate, it is an easy boundary to explain. Sounds like something that would be good to explore in the future. ![]()
I have some concern over the lack of automatic support for computed properties. It feels like something that should just work, or have similarly easy support like the main macro synthesis provides.
Could we generate the contents of the dependencies(of:) method using macros? Either from inspecting the computed property’s body, or via some annotation macro just to move the contents of the static method’s switch statement closer to the source. I guess the issue with all of that would be computed properties in extensions!
At the moment I’m not able to come up with a better solution here, but it would be ideal if we could reduce the friction of having to maintain a separate list of key paths in a different area of the source code from where the canonical information lies.