ARC FRAMEWORK

PURE C# VALIDATION. SEPARATE SCHEMAS. STRUCTURED REPORTING.

ARC.COMPONENT.CSSTABLE_BUILD_04
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.");
    }
}

STRUCTURE

STRICT TYPE CHECKS. FIELD RULES. MODEL RULES. EXPLICIT EXECUTION.

WORKFLOW

DEFINE A MODEL. DEFINE A SCHEMA. RUN VALIDATION. READ THE REPORT.

REPORTING

STRUCTURED ISSUES. PATH GROUPING. DIFFS. PREVIEW SANITIZE CHANGES.

ARC.CORE.ENGINESTABLE_BUILD_04
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)
        );
    }
}

FRAMEWORK SIGNALS

42 TESTS PASSINGENGINE, REPORTING, HELPERS, REGISTRY, SANITIZE.
ZERO MODEL ATTRIBUTESRULES STAY IN SCHEMAS INSTEAD OF POLLUTING YOUR MODELS.