# HyperTwist Phase 4 gameplay imported generated-mode selector runtime request state expose surface packet

## Goal

Close the next thin gameplay-facing consumer seam above the already-cached imported generated-mode selector/runtime/request state by exposing that cached state directly on the gameplay-facing consumers.

## Why this packet exists

`UHyperTwistTrainingPanelWidget` and `AHyperTwistTrainingSessionActor` already refresh and cache the active imported generated-mode selection state, launch config, active launch request, latest retained deck launch request, and last execution blocked reason. Gameplay and Blueprint callers could technically read those raw cached properties, but that leaks storage detail into caller code and keeps this imported generated-mode orchestration layer inconsistent with the rest of the gameplay-facing consumer widening lane.

This packet closes that gap. It exposes thin displayed getters for the already-cached imported generated-mode selector/runtime/request state without widening backend derivation or changing execution behavior.

## What changed

- expose the cached imported runtime selection state directly on both gameplay-facing consumers
- expose the cached imported generated-mode launch config directly on both gameplay-facing consumers
- expose the cached active imported generated-mode launch request directly on both gameplay-facing consumers
- expose the cached latest retained generated-mode launch request for the active deck directly on both gameplay-facing consumers
- expose the last cached generated-mode execution blocked reason directly on both gameplay-facing consumers
- keep the packet scoped to consumer contract widening only, with no backend selector/runtime/request behavior changes

## Validation

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

## Result

Gameplay and Blueprint callers can now inspect the already-cached imported generated-mode selector/runtime/request state through stable displayed getters instead of depending on raw cached properties on the widget or actor instances.

## Next bounded slice

Stay on the same gameplay-facing consumer lane only if a real gameplay or Blueprint caller still needs one more thin display-contract getter or wrapper over already-cached imported or coach state; otherwise choose the next roadmap lane deliberately instead of extending consumer widening by drift.
