···1010import { PlayTransformRules, TRANSFORM_HOOK, TransformHook } from "../common/infrastructure/Transform.js";
1111import { Logger } from "@foxxmd/logging";
1212import { loggerNoop } from '../common/MaybeLogger.js';
1313-import { lifecyclelessInvariantTransform } from "../../core/PlayUtils.js";
1313+import { statefulInvariantTransform } from "../../core/PlayUtils.js";
1414import { findAsyncSequential } from "./AsyncUtils.js";
1515import dayjs from "dayjs";
1616···470470471471 // if we have an submitted play with matching data and play date then we can just return the response from the original scrobble
472472 if (existingExactSubmitted !== undefined) {
473473- result.closestMatchedPlay = lifecyclelessInvariantTransform(existingExactSubmitted.play);
473473+ result.closestMatchedPlay = statefulInvariantTransform(existingExactSubmitted.play);
474474 result.score = 1;
475475 result.match = true;
476476 result.reason = 'Exact Match found in previously successfully scrobbled plays';
···562562563563 if (result.score <= score && score > 0) {
564564 result.reason = confidence;
565565- result.closestMatchedPlay = lifecyclelessInvariantTransform(x);
565565+ result.closestMatchedPlay = statefulInvariantTransform(x);
566566 result.match = score >= DUP_SCORE_THRESHOLD;
567567 result.breakdowns = scoreBreakdowns;
568568 result.score = score;