When Should I Use Direct References vs. Blueprint Interfaces in Blueprints?

Hey @Mind-Brain !
That helped a lot! Thank you!

Just as a quick follow-up, are there any drawbacks to each method that would make it better to default to either a direct reference or a Blueprint Interface, and only switch methods under specific conditions?

For example, should I generally default to direct references unless I need modularity, or should I default to BPIs unless I need high-performance frequent access? Are there any rules of thumb that you personally follow when deciding between them in addition to what you have already mentioned?

Would love to hear your thoughts!