Unfortunately, this defeats the purpose of what I was trying to achieve. With the problem of blueprints not doing well supporting circular references, the interface approach was an attempt at getting around those limitations. By passing Actors, you will then have to do the CastTo in the called function, which will re-introduce the circular reference. Also, you have less type safety.
I have not been able to repro the circular reference issue in a small project like SwingNinja. I realize that would make it a lot easier for Epic. It would be great if there was a private support channel available.
I had come up with another way to get around the circular references by putting all the CastTo calls inside blueprint function library calls. This seemed to work, until it didn’t. The compiler just started failing on standalone.
The only thing I have found that reliably works is to avoid blueprints, at least as base classes. I have moved all my base classes to C++. Blueprints only pass C++ base classes around. This completely avoids the inability of blueprints resolving references to other blueprints.