static ValidationEvent onShapeConflict(ShapeId id, SourceLocation a, SourceLocation b, String message) {
        String formatted = String.format("Conflicting shape definition for `%s` found at `%s` and `%s`", id, a, b);
        if (message != null) {
            formatted += ". " + message;
        }
        return ValidationEvent.builder()
                .id(Validator.MODEL_ERROR)
                .severity(Severity.ERROR)
                .sourceLocation(b)
                .shapeId(id)
                .message(formatted)
                .build();
    }
Create a {@link ValidationEvent} for a shape conflict.

@param id Shape ID in conflict.
@param a The first location of this shape.
@param b The second location of this shape.
@param message Message to append.
@return Returns the created validation event.
smithy-model/src/main/java/software/amazon/smithy/model/loader/LoaderUtils.java