/// <summary>
 /// Gets the validation failure message for the specified result.
 /// </summary>
 /// <param name="result">A validation result, typically indicating failure.</param>
 /// <param name="token">An optional cancellation token.</param>
 /// <returns>A human-readable message.</returns>
 public Task <string> GetFailureMessageAsync(ValidationRuleResult result, CancellationToken token = default)
 => wrapped.GetFailureMessageAsync((TValidated)result.ValidatedValue, result, token);
 /// <summary>
 /// Gets the validation failure message for the specified result.
 /// </summary>
 /// <param name="result">A validation result, typically indicating failure.</param>
 /// <param name="token">An optional cancellation token.</param>
 /// <returns>A human-readable message.</returns>
 public Task <string> GetFailureMessageAsync(ValidationRuleResult result, CancellationToken token = default)
 => wrapped.GetFailureMessageAsync((TValidated)result.ValidatedValue,
                                   (TParent)result.RuleContext.AncestorContexts.FirstOrDefault()?.ActualValue,
                                   result,
                                   token);