private Optional<ValidationEvent> validateShape(OperationShape operation, Config config) {
        List<String> words = splitCamelCaseWord(operation.getId().getName());
        String name;
        String foundPrefix = null;

        // Detect and remove any single prefix if needed.
        if (!config.getPrefixes().contains(words.get(0))) {
            name = words.get(0);
        } else if (words.size() == 1) {
            return Optional.of(danger(operation,
                    format(
                            "Operation name consists of only a verb prefix: %s",
                            operation.getId().getName())));
        } else {
            foundPrefix = words.get(0);
            name = words.get(1);
        }

        if (config.getSuggestAlternatives().containsKey(name)) {
            return Optional.of(danger(operation,
                    format(
                            "%s Consider using one of the following verbs instead: %s",
                            createMessagePrefix(operation, name, foundPrefix),
                            tickedList(config.getSuggestAlternatives().get(name)))));
        } else if (!config.getVerbs().contains(name)) {
            return Optional.of(danger(operation,
                    format(
                            "%s Expected one of the following verbs: %s",
                            createMessagePrefix(operation, name, foundPrefix),
                            tickedList(config.getVerbs()))));
        } else {
            return Optional.empty();
        }
    }
Sets a map of invalid verbs to suggested alternatives.

@param suggestAlternatives Alternative verb suggestions.
smithy-linters/src/main/java/software/amazon/smithy/linters/StandardOperationVerbValidator.java