Observer pattern without needing any reference to trigger an event ?

you can create a “Event Manager” component/actor/subsystem which will be super lightweight and modular to reference otherwise as GameMaker said you can use interfaces but depending on your situation you suffer a big performance hit (compared to dispatchers)

or if you use C++ you can create an interface that returns an Event for the best of both worlds