docs: public static <T extends CitrusAppConfiguration> T apply(T configuration, String[] arguments) {
          LinkedList<String> args = new LinkedList<>(Arrays.asList(arguments));
  
          CitrusAppOptions options = new CitrusAppOptions();
          while (!args.isEmpty()) {
              String arg = args.removeFirst();
  
              for (CliOption option : options.options) {
                  if (option.processOption(configuration, arg, args)) {
                      break;
                  }
              }
          }
  
          return configuration;
      }