@API(status = API.Status.STABLE)
        public <U, V> @NonNull Builder<C> requiredArgumentPair(
                final @NonNull String name,
                final @NonNull String firstName,
                final @NonNull ParserDescriptor<C, U> firstParser,
                final @NonNull String secondName,
                final @NonNull ParserDescriptor<C, V> secondParser,
                final @NonNull Description description
        ) {
            if (this.commandManager == null) {
                throw new IllegalStateException("This cannot be called from a command that has no command manager attached");
            }
            return this.required(
                    name,
                    AggregateParser.pairBuilder(firstName, firstParser, secondName, secondParser).build(),
                    description
            );
        }
Creates a new argument pair that maps to {@link Pair}.

@param name         name of the argument
@param firstName    name of the first subcomponent
@param firstParser  parser for the first subcomponent
@param secondName   name of the second subcomponent
@param secondParser parser for the second subcomponent
@param description  description of the argument
@param <U>          first type
@param <V>          second type
@return new builder instance with the argument inserted
cloud-core/src/main/java/org/incendo/cloud/Command.java