package net.minecraft.commands.synchronization; import com.google.gson.JsonObject; import com.mojang.brigadier.arguments.ArgumentType; import net.minecraft.commands.CommandBuildContext; import net.minecraft.network.FriendlyByteBuf; public interface ArgumentTypeInfo, T extends ArgumentTypeInfo.Template> { void serializeToNetwork(T template, FriendlyByteBuf out); T deserializeFromNetwork(FriendlyByteBuf in); void serializeToJson(T template, JsonObject out); T unpack(final A argument); public interface Template> { A instantiate(CommandBuildContext context); ArgumentTypeInfo type(); } }