What problem does it solve? Choosing and implementing the right validation approach in ASP.NET Core is confusing: developers must decide between DataAnnotations, IValidatableObject, custom attributes, IValidateOptions<T>, and FluentValidation, then wire each one correctly while avoiding silent failures and duplicated rules. ## Core Features & Use Cases - Decision guidance: A decision tree maps validation complexity to the right approach, from simple DataAnnotations attributes to FluentValidation for async and database-dependent rules. - Complete implementation patterns: Covers custom ValidationAttribute classes, IValidatableObject cross-property rules, IValidateOptions<T> startup configuration validation, FluentValidation setup with conditional and collection rules, and a MediatR ValidationBehavior pipeline. - Anti-patterns and gotchas: Documents common mistakes such as missing validateAllProperties, init-only options properties, and trusting client-side validation. - Use Case: When building a sign-up endpoint, apply the FluentValidation pattern to enforce password complexity, unique email checks against the database, and terms acceptance, then register a MediatR pipeline behavior so every request is validated automatically. ## Quick Start Ask the agent to implement FluentValidation for a new request model in your ASP.NET Core project, including registration and a MediatR validation pipeline behavior.