@@ -0,0 +1,15 @@
+package org.phoenicis.scripts.engine.implementation;
+
+/**
+ * A factory to create new {@link TypedScriptEngine} instances
+ */
+public interface TypedScriptEngineFactory {
+    /**
+     * Creates a new {@link TypedScriptEngine} instance for the given `type` input
+     *
+     * @param type The result type {@link Class} for the created script engine
+     * @param <T>  The result type
+     * @return The created script engine
+     */
+    <T> TypedScriptEngine<T> createScriptEngine(final Class<T> type);
+}
This class is a factory for `TypedScriptEngine` instances. At the end I plan to have a single implementation of the factory class which is able to return `TypedScriptEngine` for all application classes, but because the application classes are currently split into multiple modules we currently need to provide multiple `TypedScriptEngineFactory` implementations, one for each application class.