Design for refactoring the hand-named chat widgets + Send/MaxMin click-wiring into generic, Type-registered widgets built by DatWidgetFactory, collapsing ChatWindowController (and, gated-last, VitalsController) to a thin retail gm*UI::PostInit-style find-by-id binder. Key finding that reframes the pass: the importer's base-chain Type resolution is already retail-faithful, and Type 12 is UIElement_Text (a real behavioral class), not a style prototype to skip — verified against acclient_2013_pseudo_c.txt:115655. The generalization is therefore a registration task (register Types 1/3/6/11/12 -> generic widgets, delete the Type-12 skip), not a new mechanism. Approved scope: full registry (bounded to the Types chat+vitals use; rest stays UiDatElement fallback), chat-first, vitals rewire as the final separately-gated step. 7-step one-widget-per-commit migration; new chat_21000006.json golden fixture; vitals fixture stays frozen through steps 1-6. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| plans | ||
| specs | ||