#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "HyperTwistRecognition/HyperTwistRecognitionReplayLibrary.h"
#include "HyperTwistReplay/HyperTwistReplayReviewLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingAnalyticsLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingCaptureHistoryLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingClassicCubingLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingCompanionLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingControlPlaneLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingCoachLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingKnowledgeLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingLegacy4DLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingHyperspeedcubeLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingMagic120CellLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingMagicCube5DLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingMediaExportLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingSharedAssetLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingSpatialLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingTilingLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingViewerLibrary.h"
#include "HyperTwistTraining/HyperTwistTrainingTypes.h"
#include "HyperTwistSimulation/HyperTwistViewerTypes.h"
#include "HyperTwistTrainingRuntimeLibrary.generated.h"

class UHyperTwistTrainingSubsystem;
class UHyperTwistPuzzleViewerComponent;

UCLASS()
class UNREALHYPERTWIST_API UHyperTwistTrainingRuntimeLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static UHyperTwistTrainingSubsystem* GetTrainingSubsystem(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool HasActiveTrainingRun(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static bool HasActiveMethodDrillRun(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState GetActiveTrainingRunState(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetActiveImportedRuntimeSurface(
		UObject* WorldContextObject,
		FHyperTwistTrainingImportedRuntimeSurface& OutRuntimeSurface
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetActiveImportedRuntimeSelector(
		UObject* WorldContextObject,
		const FString& SelectorId,
		FHyperTwistTrainingImportedRuntimeSelector& OutSelector
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetActiveImportedRuntimeSelectorOptionCases(
		UObject* WorldContextObject,
		const FString& SelectorId,
		TArray<FHyperTwistTrainingCase>& OutCases
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetActiveImportedRuntimeSelectionState(
		UObject* WorldContextObject,
		FHyperTwistTrainingImportedRuntimeSelectionState& OutSelectionState
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetActiveImportedGeneratedModeLaunchConfig(
		UObject* WorldContextObject,
		FHyperTwistTrainingImportedGeneratedModeLaunchConfig& OutLaunchConfig
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetActiveImportedGeneratedModeLaunchRequest(
		UObject* WorldContextObject,
		FHyperTwistTrainingImportedGeneratedModeLaunchRequest& OutLaunchRequest
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingImportedGeneratedModeLaunchRequest CreateActiveImportedGeneratedModeLaunchRequest(
		UObject* WorldContextObject,
		const FString& RequestSource
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryExecuteActiveImportedGeneratedModeLaunchRequest(
		UObject* WorldContextObject,
		FHyperTwistTrainingRunState& OutRunState,
		FString& OutBlockedReason
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState ApplyActiveImportedRuntimeSelectorOption(
		UObject* WorldContextObject,
		const FString& SelectorId,
		const FString& OptionId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState ApplyActiveImportedGeneratedModeSelectorChoice(
		UObject* WorldContextObject,
		const FString& SelectorId,
		const FString& SelectedValue,
		const FString& DisplayValue
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState GetActiveMethodDrillRunState(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingSessionSummary GetActiveTrainingRunSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool HasActiveTrainingLiveTimer(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingLiveTimerState GetActiveTrainingLiveTimerState(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Recognition", meta = (WorldContext = "WorldContextObject"))
	static bool OpenActiveRecognitionSession(UObject* WorldContextObject, FString& OutError);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Recognition", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistVisionPreviewResult SubmitActiveRecognitionFrame(
		UObject* WorldContextObject,
		const FHyperTwistVisionFrameEnvelope& Frame
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Recognition", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistVisionCommitResult CommitActiveRecognitionObservation(
		UObject* WorldContextObject,
		const FHyperTwistVisionCommitRequest& Request
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Recognition", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistVisionFinalizeResult FinalizeActiveRecognitionSession(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Recognition", meta = (WorldContext = "WorldContextObject"))
	static bool CloseActiveRecognitionSession(UObject* WorldContextObject, FString& OutError);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillSummary GetActiveMethodDrillSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillDiagnosticPacket GetActiveTrainingMethodDrillDiagnosticPacket(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingSessionTemplate GetActiveTrainingMethodDrillFollowUpTemplate(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRepositoryState GetTrainingRepositoryState(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Knowledge")
	static FHyperTwistTrainingKnowledgeReferenceBundle GetBundledHypercubingKnowledgeReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Viewer")
	static FHyperTwistTrainingViewerReferenceBundle GetBundledBrowserViewerReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Companion")
	static FHyperTwistTrainingCompanionReferenceBundle GetBundledEmbodiedCompanionReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Spatial")
	static FHyperTwistTrainingSpatialReferenceBundle GetBundledBrowserSpatialReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|ClassicCubing")
	static FHyperTwistTrainingClassicCubingReferenceBundle GetBundledClassicCubingReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Legacy4D")
	static FHyperTwistTrainingLegacy4DReferenceBundle GetBundledLegacy4DReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Hyperspeedcube")
	static FHyperTwistTrainingHyperspeedcubeReferenceBundle GetBundledHyperspeedcubeReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Tiling")
	static FHyperTwistTrainingTilingReferenceBundle GetBundledTilingReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Magic120Cell")
	static FHyperTwistTrainingMagic120CellReferenceBundle GetBundledMagic120CellReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|MagicCube5D")
	static FHyperTwistTrainingMagicCube5DReferenceBundle GetBundledMagicCube5DReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|SharedAssets")
	static FHyperTwistTrainingSharedAssetReferenceBundle GetBundledSharedAssetReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|ControlPlane")
	static FHyperTwistTrainingControlPlaneReferenceBundle GetBundledControlPlaneReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|CaptureHistory")
	static FHyperTwistTrainingCaptureHistoryReferenceBundle GetBundledCaptureHistoryReferenceBundle();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|MediaExport")
	static FHyperTwistTrainingMediaExportReferenceBundle GetBundledMediaExportReferenceBundle();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetLatestGeneratedModeLaunchRequestForDeck(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& DeckId,
		FHyperTwistTrainingImportedGeneratedModeLaunchRequest& OutLaunchRequest
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetLatestGeneratedModeLaunchRequestForActiveDeck(
		UObject* WorldContextObject,
		FHyperTwistTrainingImportedGeneratedModeLaunchRequest& OutLaunchRequest
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRepositoryIntegrityReport GetActiveTrainingRepositoryIntegrityReport(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRepositoryRoundTripVerification GetActiveTrainingRepositoryRoundTripVerification(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachPanelState GetActiveTrainingCoachPanelState(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingDeckHistorySummary GetActiveTrainingDeckHistorySummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingTimingTrendSummary GetActiveTrainingTimingTrendSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingPersonalBestSummary GetActiveTrainingPersonalBestSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingDeckScopedStats GetActiveTrainingDeckScopedStats(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCaseScopedStats GetActiveTrainingCurrentCaseScopedStats(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Analytics", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingAnalyticsReportBundle GetActiveTrainingAnalyticsReportBundle(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Analytics", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingSessionDomainBundle GetActiveTrainingSessionDomainBundle(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Analytics", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingAnalyticsPanelContractBundle GetActiveTrainingAnalyticsPanelContractBundle(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Analytics", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetActiveTrainingAnalyticsReport(
		UObject* WorldContextObject,
		const FString& ReportId,
		FHyperTwistTrainingAnalyticsReportDefinition& OutReport
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Analytics", meta = (WorldContext = "WorldContextObject"))
	static FString BuildActiveTrainingAnalyticsReportDataView(
		UObject* WorldContextObject,
		const FString& ReportId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Viewer")
	static bool TryGetBundledBrowserViewerEmbedContract(
		const FString& ContractId,
		FHyperTwistTrainingViewerEmbedContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Viewer")
	static bool TryGetBundledBrowserViewerQaCheck(
		const FString& CheckId,
		FHyperTwistTrainingViewerQaCheck& OutCheck
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Viewer")
	static FString BuildBundledBrowserViewerQaChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Viewer")
	static bool TryGetCompactReplayViewerSurface(
		const UHyperTwistPuzzleViewerComponent* ViewerComponent,
		FHyperTwistViewerRuntimeSurface& OutSurface
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
	static bool TryGetBundledEmbodiedCompanionNarrationContract(
		const FString& ContractId,
		FHyperTwistTrainingCompanionNarrationContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
	static bool TryGetBundledEmbodiedCompanionAvatarEmbedContract(
		const FString& ContractId,
		FHyperTwistTrainingCompanionAvatarEmbedContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Companion")
	static bool TryGetBundledEmbodiedCompanionVendorAdapterBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingCompanionVendorAdapterBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Companion")
	static FString BuildBundledEmbodiedCompanionSubtitleCueChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Spatial")
	static bool TryGetBundledBrowserSpatialSceneContract(
		const FString& ContractId,
		FHyperTwistTrainingSpatialSceneContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Spatial")
	static bool TryGetBundledBrowserSpatialXrSessionContract(
		const FString& ContractId,
		FHyperTwistTrainingSpatialXrSessionContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Spatial")
	static bool TryGetBundledBrowserSpatialUiContract(
		const FString& ContractId,
		FHyperTwistTrainingSpatialUiContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Spatial")
	static bool TryGetBundledBrowserSpatialEffectBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingSpatialEffectBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Spatial")
	static bool TryGetBundledBrowserSpatialStateMotionContract(
		const FString& ContractId,
		FHyperTwistTrainingSpatialStateMotionContract& OutContract
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Spatial")
	static FString BuildBundledBrowserSpatialPackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ClassicCubing")
	static bool TryGetBundledClassicCubingSemanticContract(
		const FString& ContractId,
		FHyperTwistTrainingClassicCubingSemanticContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ClassicCubing")
	static bool TryGetBundledClassicCubingGeometryContract(
		const FString& ContractId,
		FHyperTwistTrainingClassicCubingGeometryContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ClassicCubing")
	static bool TryGetBundledClassicCubingViewerAdapterContract(
		const FString& ContractId,
		FHyperTwistTrainingClassicCubingViewerAdapterContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ClassicCubing")
	static bool TryGetBundledClassicCubingDeviceAdapterBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingClassicCubingDeviceAdapterBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ClassicCubing")
	static bool TryGetBundledClassicCubingSearchContract(
		const FString& ContractId,
		FHyperTwistTrainingClassicCubingSearchContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ClassicCubing")
	static bool TryGetBundledClassicCubingComplianceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingClassicCubingComplianceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|ClassicCubing")
	static FString BuildBundledClassicCubingPackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Alg.js")
	static bool ParseAlgJs(const FString& AlgorithmString, FString& OutError);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Alg.js")
	static FString SerializeAlgJs();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Legacy4D")
	static bool TryGetBundledLegacy4DHistoryContract(
		const FString& ContractId,
		FHyperTwistTrainingLegacy4DHistoryContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Legacy4D")
	static bool TryGetBundledLegacy4DMacroContract(
		const FString& ContractId,
		FHyperTwistTrainingLegacy4DMacroContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Legacy4D")
	static bool TryGetBundledLegacy4DPuzzleDescriptionContract(
		const FString& ContractId,
		FHyperTwistTrainingLegacy4DPuzzleDescriptionContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Legacy4D")
	static bool TryGetBundledLegacy4DInteractionContract(
		const FString& ContractId,
		FHyperTwistTrainingLegacy4DInteractionContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Legacy4D")
	static bool TryGetBundledLegacy4DAttributionBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingLegacy4DAttributionBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Legacy4D")
	static FString BuildBundledLegacy4DPackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeNotationContract(
		const FString& ContractId,
		FHyperTwistTrainingHyperspeedcubeNotationContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeSerializationBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingHyperspeedcubeSerializationBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeReplayVerificationContract(
		const FString& ContractId,
		FHyperTwistTrainingHyperspeedcubeReplayVerificationContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeReplayVerificationBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingHyperspeedcubeReplayVerificationBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeStatsShapeContract(
		const FString& ContractId,
		FHyperTwistTrainingHyperspeedcubeStatsShapeContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeDslContract(
		const FString& ContractId,
		FHyperTwistTrainingHyperspeedcubeDslContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeDslBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingHyperspeedcubeDslBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeSolveRecordBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingHyperspeedcubeSolveRecordBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Hyperspeedcube")
	static bool TryGetBundledHyperspeedcubeAttributionBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingHyperspeedcubeAttributionBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Hyperspeedcube")
	static FString BuildBundledHyperspeedcubePackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Tiling")
	static bool TryGetBundledTilingTopologyContract(
		const FString& ContractId,
		FHyperTwistTrainingTilingTopologyContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Tiling")
	static bool TryGetBundledTilingLoaderBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingTilingLoaderBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Tiling")
	static bool TryGetBundledTilingAttributionBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingTilingAttributionBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Tiling")
	static bool TryGetBundledTilingMacroRemappingContract(
		const FString& ContractId,
		FHyperTwistTrainingTilingMacroRemappingContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Tiling")
	static bool TryGetBundledTilingMacroPersistenceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingTilingMacroPersistenceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Tiling")
	static FString BuildBundledTilingPackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Magic120Cell")
	static bool TryGetBundledMagic120CellRuntimeProfileContract(
		const FString& ContractId,
		FHyperTwistTrainingMagic120CellRuntimeProfileContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Magic120Cell")
	static bool TryGetBundledMagic120CellPersistenceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingMagic120CellPersistenceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Magic120Cell")
	static bool TryGetBundledMagic120CellAttributionBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingMagic120CellAttributionBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Magic120Cell")
	static FString BuildBundledMagic120CellPackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MagicCube5D")
	static bool TryGetBundledMagicCube5DRuntimeProfileContract(
		const FString& ContractId,
		FHyperTwistTrainingMagicCube5DRuntimeProfileContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MagicCube5D")
	static bool TryGetBundledMagicCube5DPersistenceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingMagicCube5DPersistenceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MagicCube5D")
	static bool TryGetBundledMagicCube5DAttributionBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingMagicCube5DAttributionBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|MagicCube5D")
	static FString BuildBundledMagicCube5DPackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|SharedAssets")
	static bool TryGetBundledSharedAssetFixtureReference(
		const FString& FixtureId,
		FHyperTwistTrainingSharedAssetFixtureReference& OutReference
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|SharedAssets")
	static bool TryGetBundledSharedAssetQaPackContract(
		const FString& ContractId,
		FHyperTwistTrainingSharedAssetQaPackContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|SharedAssets")
	static bool TryGetBundledSharedAssetProvenanceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingSharedAssetProvenanceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|SharedAssets")
	static bool TryGetBundledSharedAssetRefreshPattern(
		const FString& PatternId,
		FHyperTwistTrainingSharedAssetRefreshPattern& OutPattern
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|SharedAssets")
	static FString BuildBundledSharedAssetFixtureChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ControlPlane")
	static bool TryGetBundledControlPlanePackageReference(
		const FString& PackageId,
		FHyperTwistTrainingControlPlanePackageReference& OutReference
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ControlPlane")
	static bool TryGetBundledControlPlaneReplayDiagnosticContract(
		const FString& ContractId,
		FHyperTwistTrainingReplayDiagnosticContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ControlPlane")
	static bool TryGetBundledControlPlaneFeatureGovernanceContract(
		const FString& ContractId,
		FHyperTwistTrainingFeatureGovernanceContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ControlPlane")
	static bool TryGetBundledControlPlaneScheduledChangeContract(
		const FString& ContractId,
		FHyperTwistTrainingScheduledChangeContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ControlPlane")
	static bool TryGetBundledControlPlaneEarlyAccessRolloutContract(
		const FString& ContractId,
		FHyperTwistTrainingEarlyAccessRolloutContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|ControlPlane")
	static bool TryGetBundledControlPlaneComplianceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingControlPlaneComplianceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|ControlPlane")
	static FString BuildBundledControlPlanePackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|CaptureHistory")
	static bool TryGetBundledCaptureHistoryPackageReference(
		const FString& PackageId,
		FHyperTwistTrainingCaptureHistoryPackageReference& OutReference
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|CaptureHistory")
	static bool TryGetBundledCaptureHistoryEventCaptureContract(
		const FString& ContractId,
		FHyperTwistTrainingEventCaptureContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|CaptureHistory")
	static bool TryGetBundledCaptureHistoryPipePermissionContract(
		const FString& ContractId,
		FHyperTwistTrainingPipePermissionContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|CaptureHistory")
	static bool TryGetBundledCaptureHistoryPersistenceContract(
		const FString& ContractId,
		FHyperTwistTrainingCapturePersistenceContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|CaptureHistory")
	static bool TryGetBundledCaptureHistoryVaultLifecycleContract(
		const FString& ContractId,
		FHyperTwistTrainingVaultLifecycleContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|CaptureHistory")
	static bool TryGetBundledCaptureHistoryTimelineReviewContract(
		const FString& ContractId,
		FHyperTwistTrainingTimelineReviewContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|CaptureHistory")
	static bool TryGetBundledCaptureHistoryComplianceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingCaptureHistoryComplianceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|CaptureHistory")
	static FString BuildBundledCaptureHistoryPackageChecklistTsv();

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MediaExport")
	static bool TryGetBundledMediaExportPackageReference(
		const FString& PackageId,
		FHyperTwistTrainingMediaExportPackageReference& OutReference
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MediaExport")
	static bool TryGetBundledMediaExportEmbeddedPlaybackContract(
		const FString& ContractId,
		FHyperTwistTrainingEmbeddedPlaybackContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MediaExport")
	static bool TryGetBundledMediaExportRenderOrchestrationContract(
		const FString& ContractId,
		FHyperTwistTrainingRenderOrchestrationContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MediaExport")
	static bool TryGetBundledMediaExportMediaParserContract(
		const FString& ContractId,
		FHyperTwistTrainingMediaParserContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MediaExport")
	static bool TryGetBundledMediaExportExplainerStudioContract(
		const FString& ContractId,
		FHyperTwistTrainingExplainerStudioContract& OutContract
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|MediaExport")
	static bool TryGetBundledMediaExportComplianceBoundary(
		const FString& BoundaryId,
		FHyperTwistTrainingMediaExportComplianceBoundary& OutBoundary
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|MediaExport")
	static FString BuildBundledMediaExportPackageChecklistTsv();

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingLearnerDeckStateSummary GetActiveTrainingLearnerDeckStateSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingLearnerProfile GetActiveTrainingLearnerProfile(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Publication", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingPublicationBundle GetActiveTrainingPublicationBundle(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachMemorySnapshot GetActiveTrainingCoachMemorySnapshot(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistReplayReviewAnalytics GetActiveTrainingReplayReviewAnalytics(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistRecognitionReplaySummary GetActiveTrainingRecognitionReplaySummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Recognition", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRecognitionSessionState GetActiveTrainingRecognitionSessionState(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistCoachSignal> GetActiveTrainingCoachSignals(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistCoachBrief GetActiveTrainingCoachBrief(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachActionPlan GetActiveTrainingCoachActionPlan(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachActionPlanSummary GetActiveTrainingCoachActionPlanSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachActionPlanOutcomeSummary GetActiveTrainingCoachActionPlanOutcomeSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachActionSequenceSummary GetActiveTrainingCoachActionSequenceSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachActionClosureSummary GetActiveTrainingCoachActionClosureSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachClosureMemorySummary GetActiveTrainingCoachClosureMemorySummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachRecommendationHistorySummary GetActiveTrainingCoachRecommendationHistorySummary(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachCarryForwardPolicySummary GetActiveTrainingCoachCarryForwardPolicySummary(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachArchivePolicySummary GetActiveTrainingCoachArchivePolicySummary(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistCoachBrief GetActiveTrainingCoachFollowUpBrief(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistCoachSessionQueueSummary GetActiveTrainingCoachSessionQueueSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachSessionQueueState GetActiveTrainingCoachSessionQueueState(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistCoachScheduleHorizonSummary GetActiveTrainingCoachScheduleHorizonSummary(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistCoachSchedulePolicySummary GetActiveTrainingCoachSchedulePolicySummary(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachSessionQueueExecutionSummary GetActiveTrainingCoachSessionQueueExecutionSummary(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FString ResolveActiveTrainingCoachHandoffStartActionSourceLabel(
		UObject* WorldContextObject,
		EHyperTwistTrainingCoachHandoffKind HandoffKind
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FString ResolveActiveTrainingPrimaryCoachActionStartActionSourceLabel(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachPrimaryActionSurface GetActiveTrainingCoachPrimaryActionSurface(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachQueueControlSurface GetActiveTrainingCoachQueueControlSurface(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachQueueRecoveryPostureSurface
	GetActiveTrainingCoachQueueRecoveryPostureSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachHandoffContinuationSurface
	GetActiveTrainingCoachHandoffContinuationSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachFocusProvenanceSurface
	GetActiveTrainingCoachFocusProvenanceSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachWorkloadBudgetSurface
	GetActiveTrainingCoachWorkloadBudgetSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachReadinessEligibilitySurface
	GetActiveTrainingCoachReadinessEligibilitySurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachVerificationRecognitionReviewContextSurface
	GetActiveTrainingCoachVerificationRecognitionReviewContextSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeLaunchExecutionContextSurface
	GetActiveTrainingCoachGeneratedModeLaunchExecutionContextSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorApplicationContextSurface
	GetActiveTrainingCoachGeneratedModeSelectorApplicationContextSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorRosterSurface
	GetActiveTrainingCoachGeneratedModeSelectorRosterSurface(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionMenuSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionMenuSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionActionabilitySurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionActionabilitySurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionDispatchSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionDispatchSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionExecutionImpactSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionExecutionImpactSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionRequestAlignmentSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionRequestAlignmentSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionStoredRequestDeltaSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionStoredRequestDeltaSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionLaunchRequestMetadataPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionLaunchRequestMetadataPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionLaunchRequestEnvelopePreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionLaunchRequestEnvelopePreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionCasePreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionCasePreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPromptPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPromptPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeliveryPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeliveryPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeliveryModeRosterAllowedModeRetentionPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeliveryModeRosterAllowedModeRetentionPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionRealScrambleVirtualCubeSmartCubeCapabilityRetentionPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionRealScrambleVirtualCubeSmartCubeCapabilityRetentionPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionTimingPolicyRetentionPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionTimingPolicyRetentionPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseDetailRetentionPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseDetailRetentionPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhasePhaseIdLabelFallbackProvenancePreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhasePhaseIdLabelFallbackProvenancePreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseDuplicatePruningSurvivorProvenancePreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseDuplicatePruningSurvivorProvenancePreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseNormalizationSummaryPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseNormalizationSummaryPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseRawRowNormalizedPhaseFusionPreviewSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseRawRowNormalizedPhaseFusionPreviewSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionCanonicalInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionCanonicalInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionSurvivorPhaseRosterInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionSurvivorPhaseRosterInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionDroppedRowAuditInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionDroppedRowAuditInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionPhaseIdFallbackRosterInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionPhaseIdFallbackRosterInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionExplicitLabelRosterInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionExplicitLabelRosterInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionSummaryInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionSummaryInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionRosterPairInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionRosterPairInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterPhaseIdLookupInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterPhaseIdLookupInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId,
		const FString& PhaseId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterNormalizedOrderLookupInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterNormalizedOrderLookupInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId,
		int32 NormalizedOrder
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterEvaluationOrderLookupInspectSurface
	GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionSplitPhaseCurrentSelectionLabelProvenancePartitionMergedOrderedRosterEvaluationOrderLookupInspectSurface(
		UObject* WorldContextObject,
		const FString& SelectorId,
		int32 EvaluationOrder
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingMethodSegment> GetActiveTrainingLearnerMethodSegments(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingLearnerPreset> GetActiveTrainingLearnerPresets(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingSessionTemplate> GetActiveTrainingSessionTemplates(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingSessionTemplate> GetTrainingSessionTemplatesForUser(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& ReferenceUtc
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingMethodDrillFavoriteEntry> GetMethodDrillFavoritesForUser(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& MethodSegmentId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingMethodDrillBatch> GetMethodDrillBatchesForUser(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& MethodSegmentId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingMethodDrillBatch> GetResumableMethodDrillBatchesForUser(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& MethodSegmentId
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillBatchReadiness DeriveMethodDrillBatchReadiness(
		UObject* WorldContextObject,
		const FHyperTwistTrainingMethodDrillBatch& DrillBatch,
		const FHyperTwistTrainingMethodDrillDefinition& DrillDefinition
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillBatch RebuildMethodDrillBatchForResume(
		UObject* WorldContextObject,
		const FHyperTwistTrainingMethodDrillBatch& DrillBatch,
		const FHyperTwistTrainingMethodDrillDefinition& DrillDefinition
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillDefinition BuildFavoriteFirstMethodDrillDefinition(
		UObject* WorldContextObject,
		const FHyperTwistTrainingMethodDrillDefinition& BaseDefinition,
		const FString& UserId,
		int32 MaxFavoriteCases
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static TArray<FHyperTwistTrainingCaseRecommendation> GetActiveTrainingCaseRecommendations(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingReviewPlanState GetActiveTrainingReviewPlanState(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingReviewFlowStatus GetActiveTrainingReviewFlowStatus(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingReviewProgramSummary GetActiveTrainingReviewProgramSummary(UObject* WorldContextObject);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingTimerExportPacket BuildTrainingTimerExportPacket(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& DeckId,
		const FString& ReferenceUtc
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetStoredTrainingRunRecord(
		UObject* WorldContextObject,
		const FString& TrainingSessionId,
		FHyperTwistTrainingRunRecord& OutRunRecord
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetStoredTrainingLearnerState(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& DeckId,
		const FString& CaseId,
		FHyperTwistTrainingCaseLearnerState& OutLearnerState
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetStoredTrainingReviewPlan(
		UObject* WorldContextObject,
		const FString& PlanId,
		FHyperTwistTrainingReviewPlanState& OutReviewPlan
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetStoredTrainingCoachActionPlan(
		UObject* WorldContextObject,
		const FString& PlanId,
		FHyperTwistTrainingCoachActionPlan& OutActionPlan
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetStoredTrainingCoachSessionQueueState(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& QueueId,
		FHyperTwistTrainingCoachSessionQueueState& OutQueueState
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetStoredTrainingSessionTemplate(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& TemplateId,
		FHyperTwistTrainingSessionTemplate& OutTemplate
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool SaveTrainingSessionTemplate(
		UObject* WorldContextObject,
		const FHyperTwistTrainingSessionTemplate& SessionTemplate
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static bool SaveMethodDrillFavorite(
		UObject* WorldContextObject,
		const FHyperTwistTrainingMethodDrillFavoriteEntry& FavoriteEntry
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static bool RemoveMethodDrillFavorite(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& DrillId,
		const FString& CaseId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static bool TryGetStoredMethodDrillBatch(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& BatchId,
		FHyperTwistTrainingMethodDrillBatch& OutBatch
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static bool SaveMethodDrillBatch(
		UObject* WorldContextObject,
		const FHyperTwistTrainingMethodDrillBatch& DrillBatch
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static bool SaveCoachSessionQueueState(
		UObject* WorldContextObject,
		const FHyperTwistTrainingCoachSessionQueueState& QueueState
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static bool DeferCoachSessionQueueEntry(
		UObject* WorldContextObject,
		const FString& EntryId,
		const FString& DeferredUntilUtc,
		const FString& DeferralReasonLabel,
		bool bManualReschedule
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static bool PromoteCoachSessionQueueEntry(
		UObject* WorldContextObject,
		const FString& EntryId,
		const FString& StartActionSourceLabel
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static bool DeferDisplayedCoachQueueEntry(
		UObject* WorldContextObject,
		const FString& DeferredUntilUtc,
		const FString& DeferralReasonLabel,
		bool bManualReschedule
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static bool PromoteDisplayedCoachQueueEntry(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static bool RemoveMethodDrillBatch(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& BatchId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool RemoveTrainingSessionTemplate(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& TemplateId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool SaveTrainingRepositoryStateToDefaultPath(
		UObject* WorldContextObject,
		FString& OutResolvedPath
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool LoadTrainingRepositoryStateFromDefaultPath(
		UObject* WorldContextObject,
		FString& OutResolvedPath
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRepositoryRoundTripVerification VerifyTrainingRepositoryRoundTripAtDefaultPath(
		UObject* WorldContextObject
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool SaveTrainingTimerExportPacketToDefaultPath(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& DeckId,
		FString& OutResolvedPath
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool ImportTrainingTimerExportPacket(
		UObject* WorldContextObject,
		const FHyperTwistTrainingTimerExportPacket& TimerExportPacket
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool LoadTrainingTimerExportPacketFromFile(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& DeckId,
		const FString& ExportPath,
		FString& OutResolvedPath
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryMaterializeActiveTrainingSessionTemplate(
		UObject* WorldContextObject,
		const FString& TemplateId,
		FHyperTwistTrainingDeck& OutDeck
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static bool TryMaterializeTrainingSessionTemplateForUser(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& TemplateId,
		const FString& ReferenceUtc,
		FHyperTwistTrainingDeck& OutDeck
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingDeck BuildActiveReviewDeck(
		UObject* WorldContextObject,
		int32 MaxCases
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingDeck BuildActiveCoachRecommendedDeck(
		UObject* WorldContextObject,
		int32 MaxCases
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingDeck BuildActiveCoachFollowUpDeck(
		UObject* WorldContextObject,
		int32 MaxCases
	);

	UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingDeck BuildActiveMethodDrillFollowUpDeck(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartTrainingRunFromTemplate(
		UObject* WorldContextObject,
		const FString& TemplateId,
		const FString& UserId,
		const FString& SessionId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartActiveMethodDrillFollowUpRun(
		UObject* WorldContextObject,
		const FString& SessionId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartRecommendedReviewRun(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases,
		EHyperTwistTrainingDeliveryMode Mode
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartCoachRecommendedRun(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases,
		const FString& StartActionSourceLabel
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartCoachFollowUpRun(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases,
		const FString& StartActionSourceLabel
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartPrimaryCoachAction(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases,
		const FString& StartActionSourceLabel
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartNextQueuedCoachRun(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases,
		const FString& StartActionSourceLabel
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartCoachQueueEntry(
		UObject* WorldContextObject,
		const FString& EntryId,
		const FString& SessionId,
		int32 MaxCases
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartDisplayedCoachRecommendedRun(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartDisplayedCoachFollowUpRun(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartDisplayedPrimaryCoachAction(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartDisplayedNextQueuedCoachRun(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartDisplayedCoachQueueEntry(
		UObject* WorldContextObject,
		const FString& SessionId,
		int32 MaxCases
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartSampleClassicTrainingRun(
		UObject* WorldContextObject,
		const FString& UserId,
		const FString& SessionId,
		EHyperTwistTrainingDeliveryMode Mode
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartTrainingRunFromDeck(
		UObject* WorldContextObject,
		const FHyperTwistTrainingDeck& Deck,
		const FString& UserId,
		const FString& SessionId,
		EHyperTwistTrainingDeliveryMode Mode
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunState StartTrainingRunFromImportedDeckId(
		UObject* WorldContextObject,
		const FString& DeckId,
		const FString& UserId,
		const FString& SessionId,
		EHyperTwistTrainingDeliveryMode Mode
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingRunStepResult SubmitTrainingAttempt(
		UObject* WorldContextObject,
		const FHyperTwistTrainingAttempt& Attempt,
		int32 TimeMs
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState StartMethodDrillRun(
		UObject* WorldContextObject,
		const FHyperTwistTrainingMethodDrillDefinition& DrillDefinition,
		const FString& UserId,
		const FString& RunId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState StartMethodDrillRunFromDeck(
		UObject* WorldContextObject,
		const FHyperTwistTrainingDeck& Deck,
		const FString& UserId,
		const FString& RunId,
		EHyperTwistTrainingDrillModeKind DrillMode,
		EHyperTwistTrainingDrillVisibilityPolicy VisibilityPolicy,
		bool bAnswerHiddenUntilReveal
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState ResumeMethodDrillRunFromBatch(
		UObject* WorldContextObject,
		const FHyperTwistTrainingMethodDrillDefinition& DrillDefinition,
		const FHyperTwistTrainingMethodDrillBatch& DrillBatch,
		const FString& RunId
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState StartNextActiveMethodDrillCase(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState RevealActiveMethodDrillCase(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState RepeatActiveMethodDrillCase(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState AdvanceActiveMethodDrillCase(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingMethodDrillRunState FinishActiveMethodDrillRun(
		UObject* WorldContextObject,
		bool bAbortRun
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|Drill", meta = (WorldContext = "WorldContextObject"))
	static void ClearActiveMethodDrillRun(UObject* WorldContextObject);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static FHyperTwistTrainingSession CompleteActiveTrainingRun(
		UObject* WorldContextObject,
		bool bAbortSession
	);

	UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
	static void ClearActiveTrainingRun(UObject* WorldContextObject);
};
