One validation outcome, carried in the command and query result envelopes.
reason is an open set ("rule", "concurrencyViolation", "constraintViolation",
"validatorFailed", "dependencyUnavailable", "malformedRequest", "frameworkFailure");
clients must tolerate values added later.