@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        } else if (!(o instanceof BuildInfo)) {
            return false;
        }

        BuildInfo buildInfo = (BuildInfo) o;
        return Objects.equals(getVersion(), buildInfo.getVersion())
                && Objects.equals(getProjectionName(), buildInfo.getProjectionName())
                && Objects.equals(getProjection(), buildInfo.getProjection())
                && Objects.equals(getValidationEvents(), buildInfo.getValidationEvents())
                && Objects.equals(getTraitNames(), buildInfo.getTraitNames())
                && Objects.equals(getTraitDefNames(), buildInfo.getTraitDefNames())
                && Objects.equals(getServiceShapeIds(), buildInfo.getServiceShapeIds())
                && Objects.equals(getOperationShapeIds(), buildInfo.getOperationShapeIds())
                && Objects.equals(getResourceShapeIds(), buildInfo.getResourceShapeIds())
                && Objects.equals(getMetadata(), buildInfo.getMetadata());
    }
@return Gets the model metadata in the projection.
smithy-build/src/main/java/software/amazon/smithy/build/plugins/BuildInfo.java