Implementing Extensions

Hey, I’m back again with another question. So I’m in the process of trying to add extension capabilities to my graphics engine. The thing is, I can’t FORCE the user to register the extension with the main library before using the library’s objects and functions. This led me to trying to make extensions automatically register with the main library during initialization. However, classes aren’t loaded until they are referenced, and this leads to this strange issue of “how can two classes interact without the user invoking them?”

static blocks dont get called until the class is loaded…
static final Object variables are only computed if used…
etc…

if anyone has a solution to this, please let me know