@SuppressWarnings("unchecked")
        public <N extends C> @NonNull Builder<N> proxies(final @NonNull Command<N> command) {
            Builder<N> builder;
            if (command.senderType().isPresent()) {
                builder = this.senderType(command.senderType().get());
            } else {
                builder = (Builder<N>) this;
            }
            for (final CommandComponent<N> component : command.components()) {
                if (component.type() == CommandComponent.ComponentType.LITERAL) {
                    continue;
                }
                builder = builder.argument(component);
            }
            if (this.permission.permissionString().isEmpty()) {
                builder = builder.permission(command.commandPermission());
            }
            return builder.handler(command.commandExecutionHandler);
        }
Makes the current command be a proxy of the supplied command. T
<p>
This means that all the proxied command's variable command arguments will be inserted into this
builder instance, in the order they are declared in the proxied command. Furthermore,
the proxied command's command handler will be shown by the command that is currently
being built. If the current command builder does not have a permission node set, this
too will be copied.

@param <N> new command sender type
@param command the command to proxy
@return new builder that proxies the given command
cloud-core/src/main/java/org/incendo/cloud/Command.java