metadataReader.registerExtension(SERVER_SIDE_ONLY_EXT, Boolean.TYPE);
metadataReader.registerExtension(IS_GAMEPLAY_EXT, Boolean.TYPE);
metadataReader.registerExtension(DEFAULT_WORLD_GENERATOR_EXT, String.class);
Module engineModule;
try (Reader reader = new InputStreamReader(getClass().getResourceAsStream("/engine-module.txt"))) {
ModuleMetadata metadata = metadataReader.read(reader);
engineModule = ClasspathModule.create(metadata, getClass(), Module.class);
} catch (IOException e) {
throw new RuntimeException("Failed to read engine metadata", e);
} catch (URISyntaxException e) {
throw new RuntimeException("Failed to convert engine library location to path", e);