FROZEN NATIVE QUALIFICATION PROPOSAL — no engine launched by author Apply /tmp/erri-objective-map-proposal/fix.patch first (updated to width360, root/text Clipping False, icon-centered vertical anchor, SetObjective caching and actual element setter test), then this directory's fix.patch. Exact source/baseline hashes are recorded in both source-manifest.json files. Neither target nor original workspace was edited. Both patches apply-check against current target. Invocation on the assembled private frozen source, using root-owned disposable prefix/profile and the existing hidden/muted runner: python3 tools/headless_workbench.py --project core --smoke objective-map --rounds 1 --timeout 240 --compat --profile Optional --steam or external dependency options remain runner policy, unchanged. Wrong project or rounds now fails immediately after parse_args before any profile or prefix processing. Actual CLI refusal tested for chat and rounds2, no outputs. Fixture selector is errBaseSmoke=1 + errSmokeOutcome=objective-map. Ordinary core NativeBaseSmoke skips this independent fixture; Chat smoke is not enabled. The fixture has180s total preparation budget and fixed90s budget after construction. Do not invoke --project chat (prelaunch refused). Measures actual standard MapMenu FULLSCREEN configuration and actual shared SharedMapRenderTarget.layout/MapPlain configuration. New overlay root/handler, native text/image dimensions, disclosed coordinates, pixel placement and icon screen center, pan/zoom/culling, close/reopen, reusedconfig/differentroot, own stop, and unchanged annotation count are asserted. No permission flags are altered. Six bounded native screenshots under profile logs: err-objective-map-standard-rough err-objective-map-standard-exact err-objective-map-standard-reopened err-objective-map-shared-root err-objective-map-shared-long-warning err-objective-map-shared-reused-root The long-warning stage waits750ms before screenshot. Inspect images manually. Shared layout RT is disabled and NOT bound to a model. That is intentional: these screenshots/geometry prove only the shared-root UI layout if it actually renders. They do NOT qualify physical held texture, actual500ms capture, manual user input, restricted-platform behavior, multiplayer or remote JIP. A blank shared screenshot must remain an explicit failed/unproven visual gate; do not count widget identities as pixel proof. Native icon resource size does not identify the chosen atlas glyph; rough/exact glyph appearance requires screenshots. Focus checks: probe-green.log: actual OwnsMap/Stop methods + native doubles; duplicate and foreign map cleanup behavior; actual wrong-selector CLI refusal; fixed budget/gating checks. Producer overlay-green, mine-green and element-green logs are adjacent proposal. Legacy ERR_NativeDiscoveryMapProbe is unchanged and is not evidence for this path. Potential native failure boundary deliberately retained: a real foreign map adopted while the fixture owns an old MapMenu prevents closing that menu, since its native OnMenuClose would close the foreign map. No such interference is arranged; a failed run must be reset through private runner cleanup. No broad menu cleanup is used. SUPPORTED PARENT CORRECTION (after retained native CanvasWidget refusal) The fixture independently resolves ERR_ObjectiveOverlay for the authored shared root, otherwise UIIconsContainer.GetParent() for the standard menu. Objectives are siblings of native icon ownership, not children removed by native faction refresh. Exact actual widget parent, presentation parent and native canvas are asserted. FrameSlot coordinates include canvas-screen minus container-screen origin before DPI conversion; actual icon screen center is independently checked. probe-parent-green.log executes the entire actual Inspect method, including nonzero unequal origins, DPI2/1.25, wrong parent/root/canvas, wrong screen box, rough coordinates, and dedicated-overlay priority. Prior cleanup/selector cases still pass. Removing the screen-origin adjustment compiled and runtime-failed; log: /tmp/erri-objective-map-review-0744/parent-offset-mutation/red.log. No native operations were run for this correction. Existing native compile/GUI errors remain retained; parent decides separately whether script-specific geometry assertions succeed. Screenshots must still establish glyph appearance, long-label fit and clipping. This fixture does not prove manual input or held-map capture. ASYNCHRONOUS MENU-CLOSE AND EXTERNAL UI CAPTURE CORRECTION Installed core SDK MenuManager.CloseMenu queues closure for the next manager update. The fixture now records one accepted request, keeps its original menu pointer, and waits under the unchanged90s deadline for its exact-config OnMapClose callback AND closed native map. The overlay-root absence assertion still applies after these real lifecycle conditions. Foreign open map replacement fails without closing it; Stop does not queue the same request twice. Actual methods cover callback-before-IsOpen=false, unrelated callback, no callback, leaked widget, repeated polling, cancellation and foreign replacement (probe-async-green.log). Restoring the immediate-close assumption compiles then runtime-fails in /tmp/erri-objective-map-review-0744/async-close-mutation/red.log. System.MakeScreenshot(path) has NO include-UI argument in installed core SDK; attempt3 outputs showed the3D view only, so these world captures are NOT UI proof. Six exact log checkpoints now hold each inspected state1500ms before mutation: ERR OBJECTIVE CAPTURE READY: standard-rough ERR OBJECTIVE CAPTURE READY: standard-exact ERR OBJECTIVE CAPTURE READY: standard-reopened ERR OBJECTIVE CAPTURE READY: shared-root ERR OBJECTIVE CAPTURE READY: shared-long-warning ERR OBJECTIVE CAPTURE READY: shared-reused-root Parent's separately authorized private-display capture may read these windows. After each hold, exact active map ownership is checked again before any following mutation, pan, close or teardown. No display capture is performed by this fixture. FINAL STANDARD VISUAL QUALIFICATION CHECKPOINT Synthetic marker now uses player origin+(1037.25,0,1063.75), without moving any actor. Existing rough quantization and exact projection assertions remain. This separates the centered annotation from the nearby native player arrow/coordinates. The original six checkpoints remain. A seventh checkpoint is now emitted on the ordinary STANDARD map, after actual Inspect of the long mine-warning label: ERR OBJECTIVE CAPTURE READY: standard-long-warning The label is held1500ms, then restored to Radio station before menu close, so standard reopening/shared stages retain their prior assertions. Actual extracted phase blocks5/22/23 prove label inspection, bounded delay, single capture, no early close/reset and final restoration. Existing actual cleanup/async/geometry tests still pass (probe-final-visual-green.log). Parent's preceding owned-window run passed91 assertions and displayed standard overlay text; those earlier markers overlapped native center glyphs. The disabled shared RT root rendered only the world, so shared-root evidence remains GEOMETRY ONLY. No physical held texture/input experimentation is added or claimed. CENTER-CURSOR SEPARATION Center(zoom) now pans to disclosedX+100.0/zoom, disclosedZ. This places the annotation100screenpixels left of the centered native cursor at both0.3 and0.6zoom without moving input or changing marker data. Actual Center method regression verifies both scales, unchanged data and native pan arguments; all previous checks pass (probe-final-center-green.log). Existing image projection assertions are unchanged.