code: public ConfigDescriptor buildDescriptor(Method method, Optional<String> scopeOpt, Optional<String> overrideValue)
      {
          checkNotNull(method);
          checkNotNull(scopeOpt);
          checkNotNull(overrideValue);
          StaticConfigHelper.MethodValidationState validationState = StaticConfigHelper.isValidConfigInterfaceMethod(method);
          if (validationState != StaticConfigHelper.MethodValidationState.OK) {
              log.debug("Configuration class {} was found to be invalid: {}",
                  method.getDeclaringClass().getName(), validationState.name());
              throw new ConfigException("Invalid Configuration class: {}", validationState.name());
          }
  
          Optional<String> value = getMethodDefaultValue(method);
          if (overrideValue.isPresent()) {
              value = overrideValue;
          }
  
          return internalBuildDescriptor(method, scopeOpt, value);
      }
docs: Build a {@link ConfigDescriptor} for a specific Method, given optional scope, and given override value.
  
  @param method        method to include in config descriptor
  @param scopeOpt      optional scope for the config descriptor
  @param overrideValue optional override value used to override the static value in the config descriptor
  @return a {@link ConfigDescriptor} for the given method, to be used internally in the config system.