Drain higher-dimensional runtime header validators

This commit is contained in:
axiomlogicnexus 2026-06-25 00:11:06 +00:00
parent ffc5fe51c4
commit a0093950fe
3 changed files with 439 additions and 443 deletions

View file

@ -146,6 +146,54 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
0);
}
bool AreImportedRuntimeSelectorsConsistent(
const TArray<FHyperTwistTrainingImportedRuntimeSelector>& Selectors,
const TArray<FHyperTwistTrainingImportedRuntimeSelectorChoice>& DefaultSelectorChoices
)
{
if (Selectors.Num() == 0 || DefaultSelectorChoices.Num() == 0)
{
return false;
}
TSet<FString> SeenSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelector& Selector : Selectors)
{
if (!Selector.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Selector.SelectorId.ToLower();
if (SeenSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenSelectorIds.Add(NormalizedSelectorId);
}
TSet<FString> SeenChoiceSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelectorChoice& Choice : DefaultSelectorChoices)
{
if (!Choice.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Choice.SelectorId.ToLower();
if (!SeenSelectorIds.Contains(NormalizedSelectorId)
|| SeenChoiceSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenChoiceSelectorIds.Add(NormalizedSelectorId);
}
return SeenChoiceSelectorIds.Num() == SeenSelectorIds.Num();
}
bool TryGetMagic120CellContracts(
FHyperTwistTrainingMagic120CellRuntimeProfileContract& OutRuntimeProfile,
FHyperTwistTrainingMagic120CellPersistenceBoundary& OutPersistenceBoundary,
@ -1563,6 +1611,351 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
}
}
bool FHyperTwistTrainingHigherDimensionalRuntimeActivationCatalog::IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || Profiles.Num() == 0)
{
return false;
}
TSet<FString> SeenProfileIds;
TSet<FString> SeenPuzzleIds;
TSet<FString> SeenRuntimeModeIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile& Profile : Profiles)
{
if (!Profile.IsStructurallyValid())
{
return false;
}
const FString NormalizedProfileId = Profile.ActivationProfileId.ToLower();
if (SeenProfileIds.Contains(NormalizedProfileId))
{
return false;
}
const FString NormalizedPuzzleId = Profile.PuzzleId.ToLower();
if (SeenPuzzleIds.Contains(NormalizedPuzzleId))
{
return false;
}
const FString NormalizedRuntimeModeId = Profile.RuntimeModeId.ToLower();
if (SeenRuntimeModeIds.Contains(NormalizedRuntimeModeId))
{
return false;
}
SeenProfileIds.Add(NormalizedProfileId);
SeenPuzzleIds.Add(NormalizedPuzzleId);
SeenRuntimeModeIds.Add(NormalizedRuntimeModeId);
}
return true;
}
bool FHyperTwistTrainingHigherDimensionalRuntimeHostCatalog::IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || HostSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenHostSurfaceIds;
TSet<FString> SeenActivationProfileIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeHostSurface& HostSurface : HostSurfaces)
{
if (!HostSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedHostSurfaceId = HostSurface.HostSurfaceId.ToLower();
if (SeenHostSurfaceIds.Contains(NormalizedHostSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId = HostSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
SeenHostSurfaceIds.Add(NormalizedHostSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
}
return true;
}
bool FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface::IsStructurallyValid() const
{
if (LaunchSurfaceId.IsEmpty()
|| ActivationProfileId.IsEmpty()
|| HostSurfaceId.IsEmpty()
|| Title.IsEmpty()
|| HostMapPath.IsEmpty()
|| HostMapRouteId.IsEmpty()
|| DeckId.IsEmpty()
|| SeedCaseId.IsEmpty()
|| SeedPromptLabel.IsEmpty()
|| SurfaceKind.IsEmpty()
|| SurfaceId.IsEmpty()
|| SurfaceLabel.IsEmpty()
|| RuntimeModeId.IsEmpty()
|| GeneratorType.IsEmpty()
|| PrimaryPersistenceBoundaryId.IsEmpty()
|| !SourceAttribution.IsStructurallyValid())
{
return false;
}
return HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal::
AreImportedRuntimeSelectorsConsistent(Selectors, DefaultSelectorChoices);
}
bool FHyperTwistTrainingHigherDimensionalRuntimeLaunchCatalog::IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || LaunchSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenLaunchSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenSurfaceIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface& LaunchSurface :
LaunchSurfaces)
{
if (!LaunchSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedLaunchSurfaceId = LaunchSurface.LaunchSurfaceId.ToLower();
if (SeenLaunchSurfaceIds.Contains(NormalizedLaunchSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId = LaunchSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedSurfaceId = LaunchSurface.SurfaceId.ToLower();
if (SeenSurfaceIds.Contains(NormalizedSurfaceId))
{
return false;
}
SeenLaunchSurfaceIds.Add(NormalizedLaunchSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenSurfaceIds.Add(NormalizedSurfaceId);
}
return true;
}
bool FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface::IsStructurallyValid() const
{
if (ViewContextSurfaceId.IsEmpty()
|| ActivationProfileId.IsEmpty()
|| LaunchSurfaceId.IsEmpty()
|| HostSurfaceId.IsEmpty()
|| Title.IsEmpty()
|| HostMapPath.IsEmpty()
|| HostMapRouteId.IsEmpty()
|| HostMapLabel.IsEmpty()
|| PrimaryViewProfileContractId.IsEmpty()
|| !SourceAttribution.IsStructurallyValid())
{
return false;
}
return HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal::
AreImportedRuntimeSelectorsConsistent(Selectors, DefaultSelectorChoices);
}
bool FHyperTwistTrainingHigherDimensionalRuntimeViewContextCatalog::IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || ViewContextSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenViewContextSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenLaunchSurfaceIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface& ViewContextSurface :
ViewContextSurfaces)
{
if (!ViewContextSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedViewContextSurfaceId =
ViewContextSurface.ViewContextSurfaceId.ToLower();
if (SeenViewContextSurfaceIds.Contains(NormalizedViewContextSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId =
ViewContextSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedLaunchSurfaceId = ViewContextSurface.LaunchSurfaceId.ToLower();
if (SeenLaunchSurfaceIds.Contains(NormalizedLaunchSurfaceId))
{
return false;
}
SeenViewContextSurfaceIds.Add(NormalizedViewContextSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenLaunchSurfaceIds.Add(NormalizedLaunchSurfaceId);
}
return true;
}
bool FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface::IsStructurallyValid() const
{
if (SessionSurfaceId.IsEmpty()
|| ActivationProfileId.IsEmpty()
|| HostSurfaceId.IsEmpty()
|| LaunchSurfaceId.IsEmpty()
|| ViewContextSurfaceId.IsEmpty()
|| Title.IsEmpty()
|| HostMapPath.IsEmpty()
|| HostMapRouteId.IsEmpty()
|| HostMapLabel.IsEmpty()
|| RuntimeModeId.IsEmpty()
|| PrimaryPersistenceBoundaryId.IsEmpty()
|| PrimaryViewProfileContractId.IsEmpty()
|| !SourceAttribution.IsStructurallyValid())
{
return false;
}
return HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal::
AreImportedRuntimeSelectorsConsistent(Selectors, DefaultSelectorChoices);
}
bool FHyperTwistTrainingHigherDimensionalRuntimeSessionCatalog::IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || SessionSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenSessionSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenLaunchSurfaceIds;
TSet<FString> SeenViewContextSurfaceIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface& SessionSurface :
SessionSurfaces)
{
if (!SessionSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedSessionSurfaceId = SessionSurface.SessionSurfaceId.ToLower();
if (SeenSessionSurfaceIds.Contains(NormalizedSessionSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId =
SessionSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedLaunchSurfaceId = SessionSurface.LaunchSurfaceId.ToLower();
if (SeenLaunchSurfaceIds.Contains(NormalizedLaunchSurfaceId))
{
return false;
}
const FString NormalizedViewContextSurfaceId =
SessionSurface.ViewContextSurfaceId.ToLower();
if (SeenViewContextSurfaceIds.Contains(NormalizedViewContextSurfaceId))
{
return false;
}
SeenSessionSurfaceIds.Add(NormalizedSessionSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenLaunchSurfaceIds.Add(NormalizedLaunchSurfaceId);
SeenViewContextSurfaceIds.Add(NormalizedViewContextSurfaceId);
}
return true;
}
bool FHyperTwistTrainingHigherDimensionalInteractiveSceneCatalog::IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || SceneSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenSceneSurfaceIds;
TSet<FString> SeenSessionSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenSceneContextIds;
for (const FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface& SceneSurface :
SceneSurfaces)
{
if (!SceneSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedSceneSurfaceId = SceneSurface.SceneSurfaceId.ToLower();
if (SeenSceneSurfaceIds.Contains(NormalizedSceneSurfaceId))
{
return false;
}
const FString NormalizedSessionSurfaceId = SceneSurface.SessionSurfaceId.ToLower();
if (SeenSessionSurfaceIds.Contains(NormalizedSessionSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId =
SceneSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedSceneContextId =
SceneSurface.SceneContext.SceneContextId.ToLower();
if (SeenSceneContextIds.Contains(NormalizedSceneContextId))
{
return false;
}
SeenSceneSurfaceIds.Add(NormalizedSceneSurfaceId);
SeenSessionSurfaceIds.Add(NormalizedSessionSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenSceneContextIds.Add(NormalizedSceneContextId);
}
return true;
}
FHyperTwistTrainingHigherDimensionalRuntimeActivationCatalog
UHyperTwistTrainingHigherDimensionalRuntimeLibrary::BuildBundledHigherDimensionalRuntimeActivationCatalog()
{

View file

@ -149,48 +149,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeActivationCatalog
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
TArray<FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile> Profiles;
bool IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || Profiles.Num() == 0)
{
return false;
}
TSet<FString> SeenProfileIds;
TSet<FString> SeenPuzzleIds;
TSet<FString> SeenRuntimeModeIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile& Profile : Profiles)
{
if (!Profile.IsStructurallyValid())
{
return false;
}
const FString NormalizedProfileId = Profile.ActivationProfileId.ToLower();
if (SeenProfileIds.Contains(NormalizedProfileId))
{
return false;
}
const FString NormalizedPuzzleId = Profile.PuzzleId.ToLower();
if (SeenPuzzleIds.Contains(NormalizedPuzzleId))
{
return false;
}
const FString NormalizedRuntimeModeId = Profile.RuntimeModeId.ToLower();
if (SeenRuntimeModeIds.Contains(NormalizedRuntimeModeId))
{
return false;
}
SeenProfileIds.Add(NormalizedProfileId);
SeenPuzzleIds.Add(NormalizedPuzzleId);
SeenRuntimeModeIds.Add(NormalizedRuntimeModeId);
}
return true;
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -270,40 +229,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeHostCatalog
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
TArray<FHyperTwistTrainingHigherDimensionalRuntimeHostSurface> HostSurfaces;
bool IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || HostSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenHostSurfaceIds;
TSet<FString> SeenActivationProfileIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeHostSurface& HostSurface : HostSurfaces)
{
if (!HostSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedHostSurfaceId = HostSurface.HostSurfaceId.ToLower();
if (SeenHostSurfaceIds.Contains(NormalizedHostSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId = HostSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
SeenHostSurfaceIds.Add(NormalizedHostSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
}
return true;
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -389,67 +315,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
FHyperTwistTrainingSourceAttribution SourceAttribution;
bool IsStructurallyValid() const
{
if (LaunchSurfaceId.IsEmpty()
|| ActivationProfileId.IsEmpty()
|| HostSurfaceId.IsEmpty()
|| Title.IsEmpty()
|| HostMapPath.IsEmpty()
|| HostMapRouteId.IsEmpty()
|| DeckId.IsEmpty()
|| SeedCaseId.IsEmpty()
|| SeedPromptLabel.IsEmpty()
|| SurfaceKind.IsEmpty()
|| SurfaceId.IsEmpty()
|| SurfaceLabel.IsEmpty()
|| RuntimeModeId.IsEmpty()
|| GeneratorType.IsEmpty()
|| PrimaryPersistenceBoundaryId.IsEmpty()
|| !SourceAttribution.IsStructurallyValid()
|| Selectors.Num() == 0
|| DefaultSelectorChoices.Num() == 0)
{
return false;
}
TSet<FString> SeenSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelector& Selector : Selectors)
{
if (!Selector.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Selector.SelectorId.ToLower();
if (SeenSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenSelectorIds.Add(NormalizedSelectorId);
}
TSet<FString> SeenChoiceSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelectorChoice& Choice : DefaultSelectorChoices)
{
if (!Choice.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Choice.SelectorId.ToLower();
if (!SeenSelectorIds.Contains(NormalizedSelectorId)
|| SeenChoiceSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenChoiceSelectorIds.Add(NormalizedSelectorId);
}
return SeenChoiceSelectorIds.Num() == SeenSelectorIds.Num();
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -466,48 +332,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeLaunchCatalog
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
TArray<FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface> LaunchSurfaces;
bool IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || LaunchSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenLaunchSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenSurfaceIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface& LaunchSurface : LaunchSurfaces)
{
if (!LaunchSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedLaunchSurfaceId = LaunchSurface.LaunchSurfaceId.ToLower();
if (SeenLaunchSurfaceIds.Contains(NormalizedLaunchSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId = LaunchSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedSurfaceId = LaunchSurface.SurfaceId.ToLower();
if (SeenSurfaceIds.Contains(NormalizedSurfaceId))
{
return false;
}
SeenLaunchSurfaceIds.Add(NormalizedLaunchSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenSurfaceIds.Add(NormalizedSurfaceId);
}
return true;
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -569,61 +394,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
FHyperTwistTrainingSourceAttribution SourceAttribution;
bool IsStructurallyValid() const
{
if (ViewContextSurfaceId.IsEmpty()
|| ActivationProfileId.IsEmpty()
|| LaunchSurfaceId.IsEmpty()
|| HostSurfaceId.IsEmpty()
|| Title.IsEmpty()
|| HostMapPath.IsEmpty()
|| HostMapRouteId.IsEmpty()
|| HostMapLabel.IsEmpty()
|| PrimaryViewProfileContractId.IsEmpty()
|| !SourceAttribution.IsStructurallyValid()
|| Selectors.Num() == 0
|| DefaultSelectorChoices.Num() == 0)
{
return false;
}
TSet<FString> SeenSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelector& Selector : Selectors)
{
if (!Selector.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Selector.SelectorId.ToLower();
if (SeenSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenSelectorIds.Add(NormalizedSelectorId);
}
TSet<FString> SeenChoiceSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelectorChoice& Choice : DefaultSelectorChoices)
{
if (!Choice.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Choice.SelectorId.ToLower();
if (!SeenSelectorIds.Contains(NormalizedSelectorId)
|| SeenChoiceSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenChoiceSelectorIds.Add(NormalizedSelectorId);
}
return SeenChoiceSelectorIds.Num() == SeenSelectorIds.Num();
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -640,51 +411,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeViewContextCatalog
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
TArray<FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface> ViewContextSurfaces;
bool IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || ViewContextSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenViewContextSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenLaunchSurfaceIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface& ViewContextSurface :
ViewContextSurfaces)
{
if (!ViewContextSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedViewContextSurfaceId =
ViewContextSurface.ViewContextSurfaceId.ToLower();
if (SeenViewContextSurfaceIds.Contains(NormalizedViewContextSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId =
ViewContextSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedLaunchSurfaceId = ViewContextSurface.LaunchSurfaceId.ToLower();
if (SeenLaunchSurfaceIds.Contains(NormalizedLaunchSurfaceId))
{
return false;
}
SeenViewContextSurfaceIds.Add(NormalizedViewContextSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenLaunchSurfaceIds.Add(NormalizedLaunchSurfaceId);
}
return true;
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -755,64 +482,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
FHyperTwistTrainingSourceAttribution SourceAttribution;
bool IsStructurallyValid() const
{
if (SessionSurfaceId.IsEmpty()
|| ActivationProfileId.IsEmpty()
|| HostSurfaceId.IsEmpty()
|| LaunchSurfaceId.IsEmpty()
|| ViewContextSurfaceId.IsEmpty()
|| Title.IsEmpty()
|| HostMapPath.IsEmpty()
|| HostMapRouteId.IsEmpty()
|| HostMapLabel.IsEmpty()
|| RuntimeModeId.IsEmpty()
|| PrimaryPersistenceBoundaryId.IsEmpty()
|| PrimaryViewProfileContractId.IsEmpty()
|| !SourceAttribution.IsStructurallyValid()
|| Selectors.Num() == 0
|| DefaultSelectorChoices.Num() == 0)
{
return false;
}
TSet<FString> SeenSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelector& Selector : Selectors)
{
if (!Selector.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Selector.SelectorId.ToLower();
if (SeenSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenSelectorIds.Add(NormalizedSelectorId);
}
TSet<FString> SeenChoiceSelectorIds;
for (const FHyperTwistTrainingImportedRuntimeSelectorChoice& Choice : DefaultSelectorChoices)
{
if (!Choice.IsStructurallyValid())
{
return false;
}
const FString NormalizedSelectorId = Choice.SelectorId.ToLower();
if (!SeenSelectorIds.Contains(NormalizedSelectorId)
|| SeenChoiceSelectorIds.Contains(NormalizedSelectorId))
{
return false;
}
SeenChoiceSelectorIds.Add(NormalizedSelectorId);
}
return SeenChoiceSelectorIds.Num() == SeenSelectorIds.Num();
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -829,59 +499,7 @@ struct FHyperTwistTrainingHigherDimensionalRuntimeSessionCatalog
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
TArray<FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface> SessionSurfaces;
bool IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || SessionSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenSessionSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenLaunchSurfaceIds;
TSet<FString> SeenViewContextSurfaceIds;
for (const FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface& SessionSurface :
SessionSurfaces)
{
if (!SessionSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedSessionSurfaceId = SessionSurface.SessionSurfaceId.ToLower();
if (SeenSessionSurfaceIds.Contains(NormalizedSessionSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId =
SessionSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedLaunchSurfaceId = SessionSurface.LaunchSurfaceId.ToLower();
if (SeenLaunchSurfaceIds.Contains(NormalizedLaunchSurfaceId))
{
return false;
}
const FString NormalizedViewContextSurfaceId =
SessionSurface.ViewContextSurfaceId.ToLower();
if (SeenViewContextSurfaceIds.Contains(NormalizedViewContextSurfaceId))
{
return false;
}
SeenSessionSurfaceIds.Add(NormalizedSessionSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenLaunchSurfaceIds.Add(NormalizedLaunchSurfaceId);
SeenViewContextSurfaceIds.Add(NormalizedViewContextSurfaceId);
}
return true;
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)
@ -991,59 +609,7 @@ struct FHyperTwistTrainingHigherDimensionalInteractiveSceneCatalog
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
TArray<FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface> SceneSurfaces;
bool IsStructurallyValid() const
{
if (CatalogId.IsEmpty() || CatalogVersion.IsEmpty() || SceneSurfaces.Num() == 0)
{
return false;
}
TSet<FString> SeenSceneSurfaceIds;
TSet<FString> SeenSessionSurfaceIds;
TSet<FString> SeenActivationProfileIds;
TSet<FString> SeenSceneContextIds;
for (const FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface& SceneSurface :
SceneSurfaces)
{
if (!SceneSurface.IsStructurallyValid())
{
return false;
}
const FString NormalizedSceneSurfaceId = SceneSurface.SceneSurfaceId.ToLower();
if (SeenSceneSurfaceIds.Contains(NormalizedSceneSurfaceId))
{
return false;
}
const FString NormalizedSessionSurfaceId = SceneSurface.SessionSurfaceId.ToLower();
if (SeenSessionSurfaceIds.Contains(NormalizedSessionSurfaceId))
{
return false;
}
const FString NormalizedActivationProfileId =
SceneSurface.ActivationProfileId.ToLower();
if (SeenActivationProfileIds.Contains(NormalizedActivationProfileId))
{
return false;
}
const FString NormalizedSceneContextId =
SceneSurface.SceneContext.SceneContextId.ToLower();
if (SeenSceneContextIds.Contains(NormalizedSceneContextId))
{
return false;
}
SeenSceneSurfaceIds.Add(NormalizedSceneSurfaceId);
SeenSessionSurfaceIds.Add(NormalizedSessionSurfaceId);
SeenActivationProfileIds.Add(NormalizedActivationProfileId);
SeenSceneContextIds.Add(NormalizedSceneContextId);
}
return true;
}
bool IsStructurallyValid() const;
};
USTRUCT(BlueprintType)

View file

@ -390,6 +390,43 @@ Latest same-day training-benchmark header ownership follow-up still on
the higher-dimensional runtime header rather than validation-benchmark
bundles
Latest same-day higher-dimensional runtime header cleanup follow-up still on
`2026-06-24`:
- the next same-family runtime packet then moved the larger activation, launch,
view-context, session, and interactive-scene catalog/surface validators out
of
`Public/HyperTwistTraining/HyperTwistTrainingHigherDimensionalRuntimeLibrary.h`
and into the private runtime owner file
`Private/HyperTwistTraining/HyperTwistTrainingHigherDimensionalRuntimeLibrary.cpp`
- the private runtime owner now also carries a shared
`AreImportedRuntimeSelectorsConsistent(...)` helper so the selector/default-choice
integrity loop no longer repeats inline across the launch, view-context, and
session surface validators
- `scripts/run-hypertwist-sentrux-source-only.sh` then improved again to:
- `Quality: 6172`
- all `7` rules passing
- the higher-dimensional runtime headers remaining inline validators are now
down to small residual seams:
- `23` lines for `FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope`
- `22` lines for `FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope`
- `20` lines for `FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface`
- `18` lines for `FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile`
- `14` lines for `FHyperTwistTrainingHigherDimensionalRuntimeHostSurface`
- the overall public-header inline-validator hotspots now shift away from the
Phase 6C runtime family and toward other owned surfaces:
- `52` lines for `FHyperTwistVirtual3333VisibleProjection`
- `51` lines for `FHyperTwistMelindaProjectedCell`
- `47` lines for `FHyperTwistVirtual3333RuntimeState`
- `42` lines for `FHyperTwistVisionBrowserShellProfile`
- `42` lines for `FHyperTwistMelinda2x2x2x2ScramblePacket`
- current truthful “vanilla refactor” reading tightens again:
- the higher-dimensional runtime header is no longer a meaningful large
inline-validator hotspot
- if we keep draining structural header weight, the next honest family is now
simulation/recognition/core ownership rather than more Phase 6C runtime
cleanup
Latest same-day browser/distribution continuity follow-up still on `2026-06-24`:
- auth-entry, protected-route loading, dashboard auth health, and release-authority fallback states now share a more deliberate operator-facing recovery shape instead of scattering single-line warnings across public and protected surfaces