The self-describing validation rules to be applied to the process result. Each rule is a ValidationRule<TProcessResult> that carries its own name and failure message, so failures can be reported without relying on opaque predicates.
ValidationRule<TProcessResult>[] ValidationRules { get; }