# HyperTwist Phase 4 gameplay generated-mode selector option owned execution split-phase current-selection canonical inspect surface packet

## Goal

Close the next thin gameplay-facing consumer seam above the generated-mode selector option owned execution split-phase raw-row / normalized-phase fusion preview surface by exposing one current-selection canonical inspect surface for a chosen selector id.

## Why this packet exists

The broader fusion surface already exposed exact per-option fused split-phase rows for direct, generated, blocked, and unavailable option states. Gameplay and Blueprint callers still had to scan the whole option array just to find the active selection before they could render the current selection's split-phase normalization state. That left a needless caller-side join step in the panel-widget and session-actor lane.

This packet removes that join. It adds one thin current-selection inspect surface that projects the active selection's fused split-phase normalization state directly, while preserving unresolved-selection, blocked-preview, and unavailable-preview posture from the already-landed fusion surface.

## What changed

- add a first-party owned execution split-phase current-selection canonical inspect surface in shared training types
- derive that surface in the coach library by projecting the already-landed raw-row / normalized-phase fusion preview surface instead of reimplementing split-phase normalization logic
- expose the current-selection canonical inspect surface on both gameplay-facing consumers:
  - `UHyperTwistTrainingPanelWidget`
  - `AHyperTwistTrainingSessionActor`
- preserve unresolved cached-selection fallback when the active selection no longer matches an imported option
- preserve exact current-selection fused rows, preview posture, duplicate-pruning, invalid-row, and label-fallback state when the active selection resolves cleanly

## Validation

- full `Development Editor|Win64` solution build for `C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.sln`

## Result

Gameplay and Blueprint callers can now render just the active selection's fused split-phase normalization state from one canonical inspect surface without scanning the broader option array first.

## Next bounded slice

Stay on the same gameplay-facing consumer lane and expose one thin generated-mode selector option owned execution split-phase current-selection survivor-phase roster inspect surface so callers can render only the normalized surviving phases for the active selection without filtering duplicate-pruned and invalid raw rows out of the fused canonical inspect surface themselves.
