@API(status = API.Status.STABLE)
    public State preprocessContext(
            final @NonNull CommandContext<C> context,
            final @NonNull CommandInput commandInput
    ) {
        this.servicePipeline.pump(CommandPreprocessingContext.of(context, commandInput))
                .through(new TypeToken<CommandPreprocessor<C>>() {
                })
                .complete();
        return context.<String>optional(AcceptingCommandPreprocessor.PROCESSED_INDICATOR_KEY).orElse("").isEmpty()
                ? State.REJECTED
                : State.ACCEPTED;
    }
Preprocess a command context instance

@param context      Command context
@param commandInput Command input as supplied by sender
@return {@link State#ACCEPTED} if the command should be parsed and executed, else {@link State#REJECTED}
@see #registerCommandPreProcessor(CommandPreprocessor) Register a command preprocessor
cloud-core/src/main/java/org/incendo/cloud/CommandManager.java