STRUCTURE
STRICT TYPE CHECKS. FIELD RULES. MODEL RULES. EXPLICIT EXECUTION.
using Arc.V2;
using Arc.V2.Reporting;
public sealed class CharacterSchema : Schema<Character>
{
public CharacterSchema()
{
RuleFor(c => c.Name)
.Trim()
.Required("Name is required.")
.MinLength(2, "Name must be at least 2 characters.");
RuleFor(c => c.Level)
.Clamp(1, 100, "Level must be 1-100.");
RuleForModel()
.Must(character => character.Health <= character.MaxHealth,
"Health cannot exceed MaxHealth.");
}
}STRICT TYPE CHECKS. FIELD RULES. MODEL RULES. EXPLICIT EXECUTION.
DEFINE A MODEL. DEFINE A SCHEMA. RUN VALIDATION. READ THE REPORT.
STRUCTURED ISSUES. PATH GROUPING. DIFFS. PREVIEW SANITIZE CHANGES.
public static class ValidationEngine
{
public static ValidationReport Validate<TModel>(
TModel model,
Schema<TModel> schema,
ValidationOptions? options = null)
{
return new ValidationReport(
EvaluateSchema(model, schema, NormalizeOptions(options), prefix: null)
);
}
}