# HyperTwist Phase 4 runtime-library generated-mode selector option actionability and dispatch surface packet

- bounded Phase `4` runtime-consumer slice
- date: `2026-05-09`

## Intent

Stay on the deliberate `UHyperTwistTrainingRuntimeLibrary` world-context consumer lane and expose the next truthful generated-mode selector interaction contracts above the already-landed selector option-menu surface.

## Why this packet exists

The prior runtime-library packet let world-context callers explain selector resolution, unresolved coverage, selected values, and per-selector imported option availability.

But callers still had to inspect raw case-lookup results and option-detail arrays if they needed to explain:

- which options currently map to owned cases
- which options remain selection-only
- whether the current selection supports direct case launch
- whether choosing an option routes through direct owned-case launch or generated-choice application

That kept the runtime-library world-context seam behind the already-landed panel-widget and session-actor selector option actionability and dispatch display-contract lane.

## What changed

- added `GetActiveTrainingCoachGeneratedModeSelectorOptionActionabilitySurface()`
- added `GetActiveTrainingCoachGeneratedModeSelectorOptionDispatchSurface()`
- derived the selector option actionability surface from the active run deck, selected `SelectorId`, and the already-landed runtime-library selector option-menu surface
- derived the selector option dispatch surface from that same `SelectorId`, the runtime-library selector option-menu surface, and the runtime-library selector option actionability surface
- kept the runtime-library lane purely compositional over already-cached coach/generated-mode state without reopening backend derivation

## Files

- `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist\Public\HyperTwistTraining\HyperTwistTrainingRuntimeLibrary.h`
- `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist\Private\HyperTwistTraining\HyperTwistTrainingRuntimeLibrary.cpp`
- `C:\HyperTwist\docs\HYPERTWIST_ROADMAP_OVERHAUL_EXPANSION_GUIDE.md`

## Outcome

World-context gameplay and Blueprint callers can now ask the runtime library for:

- the truthful per-option owned-case coverage posture
- the truthful per-option dispatch posture for the active selector

without reading raw case-lookup results, option-entry arrays, or current-selection coverage state directly.

## Validation

- full `Development Editor | Win64` MSBuild on `UnrealHyperTwist.sln`

## Next clean slice

Stay on this runtime-library consumer lane only if a real world-context caller still needs one more thin derived coach/generated-mode display contract or displayed-action convenience helper over already-cached state. The next aligned pair inside that lane would be the runtime-library generated-mode selector option execution-impact and selector option request-alignment surfaces, because those are the next truthful selector-execution contracts above the newly-landed selector option actionability and dispatch surfaces.
