code: ValidationResult cleanMultiValuePropertyKey(String name) {
          ValidationResult vr = cleanObjectKey(name);
  
          name = (String) vr.getObject();
  
          // make sure its not a known property key (reserved in the case of multi-value)
  
          try {
              RestrictedMultiValueFields rf = RestrictedMultiValueFields.valueOf(name);
              //noinspection ConstantConditions
              if (rf != null) {
                  vr.setErrorDesc(name + "... is a restricted key for multi-value properties. Operation aborted.");
                  vr.setErrorCode(523);
                  vr.setObject(null);
              }
          } catch (Throwable t) {
              //no-op
          }
  
          return vr;
      }
docs: Cleans a multi-value property key.
  
  @param name Name of the property key
  @return The {@link ValidationResult} object containing the key,
  and the error code(if any)
  <p/>
  First calls cleanObjectKey
  Known property keys are reserved for multi-value properties, subsequent validation is done for those