private Stream<ValidationEvent> suggestPagination(
            String verb,
            OperationShape operation,
            StructureShape output,
            Model model
    ) {
        if (!config.getVerbsSuggestPagination().contains(verb)) {
            return Stream.empty();
        }

        // We matched a verb, but only suggest pagination if there's a top-level output member that's a list.
        boolean hasListMember = output.getAllMembers()
                .values()
                .stream()
                .map(MemberShape::getTarget)
                .flatMap(id -> OptionalUtils.stream(model.getShape(id)))
                .anyMatch(Shape::isListShape);

        if (!hasListMember) {
            return Stream.empty();
        }

        return Stream.of(warning(operation,
                format(
                        "The verb of this operation, `%s`, and the presence of a top-level list member in its "
                                + "output, suggests that the operation should have the `paginated` trait. %s",
                        verb,
                        DISCLAIMER)));
    }
Sets the output member names that indicate the operation requires pagination.

@param outputMembersRequirePagination Output member names.
smithy-linters/src/main/java/software/amazon/smithy/linters/MissingPaginatedTraitValidator.java