For a moment, I thought I could get around the limitations by using typealias or generic approaches, but no luck. I’m guessing it’s about the key path expression being evaluated at compile time.
I’ve decided to give up and just insert the connect method in each subclass. Later on, I’ll learn how to write macros to cut down on the duplicated code. It’s not the most elegant, but I can live with it.