=== 0.0.18.8 - Phase 7A SRP-style Create World lifecycle port ===
Date: 2026-10-04

User clarification/reference:
- Reference implementation is Scape and Run: Parasites (SRP) 1.12.2, jar SRParasites-1.10.9.
- SRPWorldCreateButtons was inspected directly. SRP creates one dedicated world-settings button on GUI init, lays it out relative to a known vanilla Create World control, and updates that button after Create World page actions. It does NOT rely on a perpetual render-time position/visibility chase.

Observed failures before this build:
- 0.0.18.6: Phayriosis button still followed the World/More tabs and clicking it crashed.
- 0.0.18.7: opening Create World itself crashed with NoSuchMethodError because Component.m_237113_(String) had been compiled with return type Component instead of the real SRG descriptor return type MutableComponent.
- The previous Render.Pre visibility mirror was also the wrong architectural fit for Minecraft 1.20.1 tabs.

Corrections in 0.0.18.8:
- Port the SRP lifecycle concept to 1.20.1 rather than copying 1.12.2 code literally.
- Create/layout one Phayriosis button during ScreenEvent.Init.Post, directly under Allow Cheats / Allow Commands.
- Remove the per-frame ScreenEvent.Render.Pre visibility chase entirely.
- Track CreateWorldScreen's vanilla TabNavigationBar and react after mouse/keyboard tab actions, analogous to SRP's ActionPerformed post handling.
- Determine the selected vanilla tab through the public TabNavigationBar -> TabButton API by reflection on public method shapes, avoiding private CreateWorldScreen fields and mapping-sensitive method names.
- Show/enable Phayriosis only when the selected tab object is CreateWorldScreen.GameTab; hide/disable it on World and More; show it again when Game is selected.
- Component.m_237113_(String) is compiled with the correct runtime return descriptor MutableComponent.
- Button.OnPress lambdas are compiled against the exact 1.20.1 SRG SAM m_93750_(Button).
- Restore PhayriosisWorldCreationScreen.class from the last known correctly-linked 0.0.18.4 build so its Component.literal and OnPress descriptors are also known-good.
- Java 17 verification is required before shipping.

Permanent UI rules:
- Use SRP's event-driven ownership pattern as the conceptual reference: init/layout once, update after GUI actions/page changes.
- Do not reintroduce a Render.Pre per-frame visibility mirror for this button.
- Do not infer active tabs from Allow Cheats.visible; the injected widget is external to vanilla TabManager and tab ownership must be checked from the vanilla tab navigation state.
- Keep the button labelled exactly "Phayriosis" and positioned directly under Allow Cheats on the Game tab only.
- When manually compiling SRG-linked client classes, verify Component.m_237113_ returns MutableComponent and Button.OnPress uses m_93750_(Button).

No Phase 6 meteor, impact, shockwave, chunk-loading, worldgen, entity, audio, or terrain behavior changed.
