# M50 Responsive UI Element Slice — Runtime Audit ## Stage Core prototype presentation repair; Market-only responsive element slice. ## Revision/build - Source: `30ff553` plus import-cleanup commit `78dd235` - Target viewports: `760x360`, `844x390`, `1280x720` - Locale: `zh_CN` and `en` remain in the Market contract; the focused layout test currently exercises `zh_CN`. ## Earliest failed boundary The earlier Market presentation failed at responsive composition and control affordance: a baked UI poster was being treated as a layout surface. This slice replaces the visible Market composition with a full-bleed world layer and runtime-owned stretch-safe elements. ## What changed - Generated one 2x2 element sheet and deterministically split it into button, commission-board, recruit-card and seal assets. - Generated one UI-free 16:9 Market world background with a dark text-safe right side. - Added NinePatchRect construction with fixed corner/border margins for the button, board and card. - Kept runtime text fixed-size and content-owned; kept stable Market node names and intent payloads for existing route contracts. - Added subtle event-independent recruit idle breathing as a temporary feel proof; authoritative selection/inspection feedback remains the next pass. ## Verification - `ABG_M41_MARKET_VIEW_CONTRACT_OK` passes with strict diagnostics `0`. - `ABG_M50_RESPONSIVE_UI_OK` passes for all three target sizes, confirming NinePatch assets, minimum button height, fixed 14px card text and preserved Market identities/intents. - Full normal-render Market capture did not produce an image in the current headless dummy renderer; no visual/device pass is claimed from that attempt. ## Asset evidence states | Asset | State | Note | |---|---|---| | `ui_m50_raw/m50_ui_element_sheet.png` | source/runtime candidate | API Mart GPT-Image-2; task recorded in generation JSON | | `ui_m50/{button,commission_board,recruit_card,seals}.png` | processed/imported/integrated | grid slices, chroma cleanup and NinePatch use are source-bound | | `ui_m50/market_background.png` | source/imported/integrated | UI-free 16:9 world background; normal-render review pending | | Recruit idle tween | implemented | runtime-seen only through focused scene construction; normal recording pending | ## Open gaps - Owner visual review at actual play size is still required. - Normal-render screenshots/recording are blocked by the current headless dummy-render target; run through the owned normal renderer before handoff. - Readiness, Result, Guild and category-specific Market surfaces are not yet migrated. - Human/device verification, audio listening and release acceptance remain open. ## Gate `OPEN` — component contract and focused layout checks pass; runtime visual and owner tryout evidence are still required.