package io.gitlab.jfronny.inceptum.launcher.model.modrinth; import io.gitlab.jfronny.gson.annotations.SerializedName; import io.gitlab.jfronny.gson.compile.annotations.GSerializable; import io.gitlab.jfronny.inceptum.common.GsonPreset; import org.jetbrains.annotations.Nullable; import java.util.List; @GSerializable(configure = GsonPreset.Api.class) public record ModrinthModpackManifest( int formatVersion, // 1 String game, // "minecraft" String versionId, String name, String summary, List files, Dependencies dependencies ) { @GSerializable(configure = GsonPreset.Api.class) public record File(String path, ModrinthHashes hashes, @Nullable Env env, List downloads, long fileSize) { @GSerializable(configure = GsonPreset.Api.class) public record Env(ModrinthDependencyType client, ModrinthDependencyType server) { } } // All are nullable @GSerializable(configure = GsonPreset.Api.class) public record Dependencies(String minecraft, String forge, @SerializedName("fabric-loader") String fabricLoader, @SerializedName("quilt-loader") String quiltLoader) { } }