private ValidationEvent repeatedMemberName(Model model, Shape shape, String shapeName, String memberName) {
        Shape member = model.expectShape(shape.getId().withMember(memberName));
        if (config.getExactMatch()) {
            return warning(member,
                    String.format(
                            "The `%s` %s shape repeats its name in the member `%s`; %2$s member names should not be "
                                    + "equal to the %2$s name.",
                            shapeName,
                            shape.getType(),
                            memberName));
        } else {
            return warning(member,
                    String.format(
                            "The `%s` %s shape repeats its name in the member `%s`; %2$s member names should not be "
                                    + "prefixed with the %2$s name.",
                            shapeName,
                            shape.getType(),
                            memberName));
        }
    }
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