code: @VisibleForTesting
    public static List<String> resolveIncludesList(List<String> includes, Optional<Config> runtimeConfig) {
  
      // Create a TypeSafe Config object with Key INCLUDES_KEY_NAME and value an array of includes
      StringBuilder includesBuilder = new StringBuilder();
      for (String include : includes) {
        // Skip comments
        if (StringUtils.isNotBlank(include) && !StringUtils.startsWith(include, "#")) {
          includesBuilder.append(INCLUDES_KEY_NAME).append("+=").append(include).append("\n");
        }
      }
  
      // Resolve defaultOverrides and environment variables.
      if (includesBuilder.length() > 0) {
        if (runtimeConfig.isPresent()) {
          return ConfigFactory.parseString(includesBuilder.toString()).withFallback(ConfigFactory.defaultOverrides())
              .withFallback(ConfigFactory.systemEnvironment()).withFallback(runtimeConfig.get()).resolve()
              .getStringList(INCLUDES_KEY_NAME);
        } else {
          return ConfigFactory.parseString(includesBuilder.toString()).withFallback(ConfigFactory.defaultOverrides())
              .withFallback(ConfigFactory.systemEnvironment()).resolve().getStringList(INCLUDES_KEY_NAME);
        }
      }
  
      return Collections.emptyList();
    }
docs: A helper to resolve System properties and Environment variables in includes paths
  The method loads the list of unresolved <code>includes</code> into an in-memory {@link Config} object and reolves
  with a fallback on {@link ConfigFactory#defaultOverrides()}
  
  @param includes list of unresolved includes
  @return a list of resolved includes