@Override
    public List<ValidationEvent> evaluate(Differences differences) {
        return differences.removedShapes()
                .filter(shape -> !shape.hasTrait(PrivateTrait.ID))
                .filter(shape -> !isMemberOfRemovedShape(shape, differences))
                .map(shape -> isInconsequentialType(shape)
                        ? ValidationEvent.builder()
                                .severity(Severity.WARNING)
                                .message(String.format("Removed %s `%s`", shape.getType(), shape.getId()))
                                .shapeId(shape.getId())
                                .id(getEventId() + ".ScalarShape")
                                .sourceLocation(shape.getSourceLocation())
                                .build()
                        : error(shape, String.format("Removed %s `%s`", shape.getType(), shape.getId())))
                .collect(Collectors.toList());
    }
Creates an ERROR event when a non-private non-scalar shape is removed.
Creates a WARNING event when a non-private scalar shape is removed.
smithy-diff/src/main/java/software/amazon/smithy/diff/evaluators/RemovedShape.java