Class FoundationReferenceContracts
The single declarative table of every cross-asset string reference (by Serenity Id or
Guid) an IFoundationSettings asset can hold, replacing what used to be several
independent, hand-maintained lists: SerenityDiscoveryRegistry's curated id-contracts dump (an
AI-facing report, now a projection of this table) and half of
Serenity.GameSettings.Application.Validation.GameSettingWiringMap (its target-type/field
lookup; the wiring-specific IsMixerParam/Summary stay its own). A future adoption-time
remapper walks every row against a real asset to re-point references at adopted counterparts.
Split into five collaborators by module ownership, not partial — none carries any serialized
state or Unity lifecycle, so each is a named, independently readable table:
Serenity.Global.Application.References.UiReferenceContracts, Serenity.Global.Application.References.GameSettingReferenceContracts,
Serenity.Global.Application.References.ViewReferenceContracts, Serenity.Global.Application.References.BootTaskReferenceContracts and
Serenity.Global.Application.References.FeedbackReferenceContracts.
Inherited Members
Namespace: Serenity.Global.Application.References
Assembly: Serenity.Global.Application.dll
Syntax
public static class FoundationReferenceContracts
Remarks
Deliberately excluded (documented here, not added on a guess):
UnityLeaderboardViewDefinition.BoardId— a row key insideUnityLeaderboardSettings.Boards, not an asset Id.UnityHudElementDefinition.ParentId— addresses a sibling HUD element within the same asset, not another asset.ICompositeViewDefinition.InitialActiveChildId— addresses a hosted child within the same composite, not another asset.HudState.ActiveHudId— runtime state, never serialized on a settings asset.
Candidates NOT verified against a real field and therefore not added on a guess:
OptionsCascadeMenu._entries[].ActionId/.ConditionId, UnityAchievementSettings.PointsScoreKey,
LeaderboardBoardSetting.SourceScoreKey.
Properties
All
Every declared reference row, across every owner type.
Declaration
public static IReadOnlyList<FoundationReferenceContract> All { get; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<FoundationReferenceContract> |
Methods
ForOwnerType(string)
Every row whose OwnerTypeName matches ownerTypeName exactly.
Declaration
public static IReadOnlyList<FoundationReferenceContract> ForOwnerType(string ownerTypeName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | ownerTypeName |
Returns
| Type | Description |
|---|---|
| IReadOnlyList<FoundationReferenceContract> |
ForOwnerTypeOrBase(IReadOnlyList<string>)
Every row whose owner type name appears anywhere in ownerTypeNameChain — the
concrete type first, then each base type — so a row declared against a shared base type still
applies to every concrete subtype in the chain.
Declaration
public static IReadOnlyList<FoundationReferenceContract> ForOwnerTypeOrBase(IReadOnlyList<string> ownerTypeNameChain)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<string> | ownerTypeNameChain |
Returns
| Type | Description |
|---|---|
| IReadOnlyList<FoundationReferenceContract> |