docs: private void processKeyValue(Map<ConfigurationKey, Object> properties, ConfigurationKey key, Object value) {
          if (value instanceof String) {
              value = key.convertValue((String) value);
          }
          if (key.isValidValue(value)) {
              Object previous = properties.put(key, value);
              if (previous != null && !previous.equals(value)) {
                  throw ConfigurationLogger.LOG.configurationKeyHasDifferentValues(key.get(), previous, value);
              }
          } else {
              throw ConfigurationLogger.LOG.invalidConfigurationPropertyValue(value, key.get());
          }
      }