Move 28 group-execution methods (runPacketGateAction through
raceConditionFuture, plus waitForFutureDone) verbatim into MacroRace:
packet gates, finally/step waits, race/report/multi groups, timed and
anchor futures. Shared members referenced as MacroExecutor.xxx
(mechanical qualification only); waitForMacroCondition kept as public
delegate for the ReportAction caller. All bodies verified identical
against HEAD modulo that qualification.
Move 24 prearm/capture-commit/MacroValue-builder methods verbatim
into MacroPrearm (predicateFuture through waitForPacketMatch).
Shared members referenced as MacroExecutor.xxx (mechanical
qualification only); staying and earlier-helper call sites re-pointed
to MacroPrearm.xxx. PrearmedWait widened to package-visible. All
bodies verified identical against HEAD modulo that qualification.
Move 21 durability-use-next methods plus DurabilityUseNextSession
and DurabilityCandidate verbatim into MacroDurability. Only outside
references are isCurrentRunActive, callOnClientThread and
waitOneTick (already package-visible), qualified as MacroExecutor.xxx
/ MacroDurability.xxx at the 2 staying call sites. All bodies
verified identical against HEAD modulo that qualification.
Move 15 capture autofill/namescrape/scoreboard methods plus the
suggestion-cache records and fields verbatim into
MacroCaptureAutofill. Shared MacroExecutor members referenced as
MacroExecutor.xxx (mechanical qualification only); same-package
buildAutofillQuery kept as delegate so the existing unit test is
unaffected. All bodies verified identical against HEAD modulo that
qualification.
Move 12 chat observe/capture methods (observeIncomingChat,
recordRecentChat, syncRecentChatServerContext,
getCurrentMultiplayerServerKey, normalizeServerKey,
matchesWaitingChat, matchesChatAction, captureChatAction x2,
chatValues, extractIncomingChat, buildChatCapture) verbatim into
MacroChatObserve. Shared MacroExecutor members referenced as
MacroExecutor.xxx (mechanical qualification only); public API
unchanged via observeIncomingChat delegate. All bodies verified
identical against HEAD modulo that qualification.
Move 31 pure chat-text utilities (sanitize/normalize/fuzzy-match,
levenshtein, component literalize/serialize) verbatim into
MacroChatText. MacroExecutor keeps one-line public delegates so the
public API is unchanged. All moved bodies verified byte-identical
against HEAD; only 2 private->public visibility widenings.