private List<ValidationEvent> validateNames(Model model, Shape shape, Collection<String> memberNames) {
        String shapeName = shape.getId().getName();
        String lowerCaseShapeName = shapeName.toLowerCase(Locale.US);
        return memberNames.stream()
                .filter(memberName -> nameConflicts(lowerCaseShapeName, memberName))
                .map(memberName -> repeatedMemberName(model, shape, shapeName, memberName))
                .collect(Collectors.toList());
    }
Validates that structure members and union member names do not
repeat their shape name as prefixes of their member or tag names.
smithy-linters/src/main/java/software/amazon/smithy/linters/RepeatedShapeNameValidator.java