(function LoadJennyModel() {
    //MDL Registry Locations:
    // DefaultSkins.java (optional)
    // SkinPreviewRenderer.java (optional, and we don't yet have mixins)
    // SkinModel.java
    // HighPolySkin.java
    // RenderHighPoly.java (optional)
    
    const ResourceLocationClass = ModAPI.reflect.getClassByName("ResourceLocation").class;
    const ResourceLocationRaw = ModAPI.reflect.getClassByName("ResourceLocation").constructors.find(x=>x.length===1);
    const ResourceLocation = (x)=>ResourceLocationRaw(ModAPI.util.str(x));
    const jenny$HighPolySkin = ModAPI.reflect.getClassByName("HighPolySkin").constructors[0](
        ModAPI.util.str("JENNY"),
        5,
        ResourceLocation("eagler:mesh/jenny.png"),
        ResourceLocation("eagler:mesh/jenny.mdl"),
        null,
        null,
        ModAPI.array.object(ResourceLocationClass, 0),
        ModAPI.array.float(0),
        0.0,
        ResourceLocation("eagler:mesh/jenny.fallback.png")
    )
 
    const SkinModelRefClass = ModAPI.reflect.getClassByName("SkinModel");
    const jenny$SkinModel = SkinModelRefClass.constructors.find(x=>x.length===4)(ModAPI.util.str("JENNY"), 8, 8, jenny$HighPolySkin);
    SkinModelRefClass.staticVariables.skinModels.data.push(jenny$SkinModel);
    SkinModelRefClass.staticVariables.skinModelsByName.$put(ModAPI.util.str("JENNY"), jenny$HighPolySkin);

    const DefaultSkinsRefClass = ModAPI.reflect.getClassByName("DefaultSkins");
    const jenny$DefaultSkin = DefaultSkinsRefClass.constructors[0](ModAPI.util.str("JENNY"), 29, 29, ModAPI.util.str("JENNY"), ResourceLocation("eagler:mesh/jenny.fallback.png"), jenny$SkinModel); //name, id, id, name, location, model
    DefaultSkinsRefClass.staticVariables.defaultSkinsMap.data.push(jenny$DefaultSkin);

    ModAPI.addEventListener("lib:asyncsink", async () => {
        // MODEL DATA HERE
        AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/eagler/mesh/jenny.mdl", await (await fetch(`data:/octet-stream;base64,[encoded data, 175908 characters]`)).arrayBuffer());
        // TEXTURE DATA HERE
        AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/eagler/mesh/jenny.png", await (await fetch(`data:image/png;base64,[encoded data, 1220140 characters]`)).arrayBuffer());
        // FALLBACK TEXTURE DATA HERE
        AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/eagler/mesh/jenny.fallback.png", await (await fetch(`data:image/png;base64,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`)).arrayBuffer());
    });
})();
