sinterface IResourceLoader { S loadSnippet(S snippetID); S getTranspiled(S snippetID); // with libs int getSnippetType(S snippetID); S getSnippetTitle(S snippetID); File loadLibrary(S snippetID); default File pathToJavaXJar() { ret pathToJavaxJar(); } // may return null, then caller compiles themselves File getSnippetJar(S snippetID, S transpiledSrc) { null; } }