validate method
Implementation
ValidationResult<M> validate(S state, final List<ValidationState> stateHistory) {
final result = _validate(state, stateHistory);
if (key != null) {
stateHistory.add(ValidationState(key, state));
}
return result;
}