protected virtual async Task <ValidationErrors> ValidateDelete(
     TKey key,
     IStringMap <TKey> keyMap,
     ValidationErrors errors) => ValidationErrors.Empty;
 protected virtual async Task <ValidationErrors> ValidatePut(
     TKey key,
     TValue value,
     IStringMap <TKey> keyMap,
     ValidationErrors errors) => ValidationErrors.Empty;
 static ValidationErrors()
 {
     Empty = new ValidationErrors(new ValidationError[] { });
 }