Well, sounds like you’ve got it pretty nailed.
Like I say, an obvious circular reference was handled previously. But a ‘distant’ one may not be, so well.
Dispatchers unfortunately use a typed reference… :-/
For me, interface is the holy grail. You can basically communicate between all BP types, just using interfaces. Including player controller and game instance etc.
Tight coupling with direct references is not a problem, of course, as long as it’s needed, and doesn’t lead into a long chain.