ValidationPipe has options across four categories: transformation (transform, transformOptions), whitelisting (whitelist, forbidNonWhitelisted), error formatting (disableErrorMessages, validationError, exceptionFactory, stopAtFirstError), and skip conditions (skipMissingProperties, skipNullProperties, skipUndefinedProperties).
whitelist: true — must-have; prevents unknown properties from reaching handlers.
forbidNonWhitelisted: true — stricter than whitelist alone; use on APIs with strict contracts.
transform: true — required for DTOs with @Type(), @Transform(), and type coercion.
disableErrorMessages: true — hide constraint names and messages in production responses.
stopAtFirstError: true — reduces response size when clients only handle one error at a time.
exceptionFactory — essential for customizing the error response shape to match your API contract.