Parent: #548
A strict two-file reduction adds an ordinary callable overload before the mapped-handler overload fixed by #666:
export type Handler = (item: Item, rewritten: boolean) => Item;
export type Handlers = { [K in Kind]?: (item: Item<K>, rewritten: boolean) => Item };
export declare function visit(handler: Handler): Item;
export declare function visit(handlers: Handlers): Item;For visit({ a: (item, rewritten) => ... }), TypeScript 6.0.3 and the native TypeScript preview select the object-handler candidate for contextual typing, infer Item<"a"> and boolean, and report only deliberate TS2322/TS2339 controls. ReleaseFast Home emits TS7006 for both callback parameters and misses both controls. Removing the first overload makes the same program pass under #666, isolating overload-candidate contextual typing rather than mapped-key substitution itself.
The same pattern appears in the pinned Zod 4.5.2 graph: visit has callable and mapped-handler overloads, while classic and mini in-out.ts retain 16 TS7006 diagnostics across mapped visitor callbacks.
Acceptance criteria:
- contextually type object-literal arguments against applicable imported overload candidates
- retain #666 concrete mapped-key specialization inside the chosen contextual candidate
- preserve overload order, ambiguity behavior, unrelated generic parameters, and optional mapped members
- retain negative TS2322 and TS2339 controls; do not suppress errors or widen callbacks to
any - add a permanent imported overload positive/negative regression
- match TypeScript 6.0.3 and the native preview exactly on the standalone oracle
- run full checker and Program suites, ReleaseFast, and an exact unchanged Zod parent/candidate identity audit with zero additions
- document any admitted corpus change in the performance record and README