public @NonNull <T> Builder<C> flag(final @NonNull CommandFlag<T> flag) {
            final List<CommandFlag<?>> flags = new ArrayList<>(this.flags);
            flags.add(flag);
            return new Builder<>(
                    this.commandManager,
                    this.commandMeta,
                    this.senderType,
                    this.commandComponents,
                    this.commandExecutionHandler,
                    this.permission,
                    Collections.unmodifiableList(flags),
                    this.commandDescription
            );
        }
Registers a new command flag.

@param flag flag
@param <T>  flag value type
@return new builder instance that uses the provided flag
cloud-core/src/main/java/org/incendo/cloud/Command.java