private <S extends Suggestion> @NonNull CompletableFuture<@NonNull Suggestions<C, S>> getSuggestionsDirect(
            final @NonNull CommandContext<C> context,
            final @NonNull CommandInput commandInput,
            final @NonNull SuggestionMapper<S> mapper,
            final @NonNull Executor executor
    ) {
        final SuggestionContext<C, S> suggestionCtx = new SuggestionContext<>(
                this.commandManager.suggestionProcessor(),
                context,
                commandInput,
                mapper
        );
        return this.getSuggestions(suggestionCtx, commandInput, this.internalTree, executor)
                .thenApply($ -> suggestionCtx.makeSuggestions());
    }
Returns suggestions from the input queue

@param <S>          suggestion type
@param context      Context instance
@param commandInput Input
@param mapper       suggestion mapper
@param executor     executor to schedule suggestion logic on
@return String suggestions. These should be filtered based on {@link String#startsWith(String)}
cloud-core/src/main/java/org/incendo/cloud/CommandTree.java