Chain of responsibility pattern used for validation.
In this demo document entity is validated by a chain of validators. This is just an example. Similar effect can be achieved using CascadeMode.StopOnFirstFailure in FluentValidation validator.
FluentValidation used. See unit tests first.