package p.packer.declarations; import java.util.List; import java.util.Map; import java.util.Objects; public record PackerAssetDeclaration( int schemaVersion, String name, String type, Map> inputsByRole, String outputFormat, String outputCodec, boolean preloadEnabled) { public PackerAssetDeclaration { if (schemaVersion <= 0) { throw new IllegalArgumentException("schemaVersion must be positive"); } name = Objects.requireNonNull(name, "name").trim(); type = Objects.requireNonNull(type, "type").trim(); inputsByRole = Map.copyOf(Objects.requireNonNull(inputsByRole, "inputsByRole")); outputFormat = Objects.requireNonNull(outputFormat, "outputFormat").trim(); outputCodec = Objects.requireNonNull(outputCodec, "outputCodec").trim(); if (name.isBlank() || type.isBlank() || outputFormat.isBlank() || outputCodec.isBlank()) { throw new IllegalArgumentException("declaration fields must not be blank"); } } }