package ar.com.companeros.decision; import java.util.Objects; import java.util.Set; /** Catálogo autorizado aportado por el runtime, no por mensajes del mundo. */ public record ToolCapability(String id, int version, String description, Set permissions) { public ToolCapability { Objects.requireNonNull(id); Objects.requireNonNull(description); permissions = Set.copyOf(permissions); if (id.isBlank() || id.length() > 128 || version < 1 || description.length() > 512 || permissions.size() > 16 || permissions.stream().anyMatch(p -> p.isBlank() || p.length() > 64)) throw new IllegalArgumentException("Capacidad fuera de límite"); } }