package mapping

import (
	navigationsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/applicationnavigationv1"
	"reflect"
	"sync"

	catalogsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/catalog/consumerv1"
	analyticsauthoringsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/analyticsauthoringv1"
	applicationresultsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/applicationresultv1"
	approvalnotificationsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/approvalnotificationflowv1"
	approvalsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/approvalv1"
	auditsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/auditlogv1"
	authorizationsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/authorizationv1"
	bulkingestsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/bulkingestv1"
	commandsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/commandv1"
	commonsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/commonv1"
	permissionsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/effectivepermissionsv1"
	externaleffectsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/externaleffectv1"
	federatedloginsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/federatedloginv1"
	filessemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/filesv1"
	flowsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/flowv1"
	layoutauthoringsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/layoutauthoringv1"
	layoutauthoringv2semantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/layoutauthoringv2"
	listviewsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/listviewv1"
	mailboxauthorizationsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/mailboxauthorizationv1"
	metadataadminsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/metadataadminreadv1"
	outboundintentsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/outboundintentv1"
	pagelayoutresolutionsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/pagelayoutresolutionv1"
	permissionadminsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/permissionadminv1"
	permissionauthoringsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/permissionauthoringv1"
	recordsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/recordsv1"
	reportsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/reportv1"
	resourceaccesssemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/resourceaccessv1"
	searchsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/searchv1"
	servingbindingsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/servingbindingv1"
	sessionsemantic "github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/sessionv1"
)

type platformSemanticShape struct {
	value  any
	fields []string
}

type platformSemanticShapeCheck struct {
	once   sync.Once
	ok     bool
	shapes []platformSemanticShape
}

func platformCapabilityShapes(shapes ...platformSemanticShape) []platformSemanticShape {
	commonShapes := []platformSemanticShape{
		{commonsemantic.Failure{}, []string{"Category", "Receipts", "InvalidComponent", "CanonicalField", "LimitKind", "Maximum", "RequiredCapability", "SupportedMajor", "SupportedMinorMin", "SupportedMinorMax", "StaleAxis", "RequiredRevision", "ServedRevision", "RetryAfterMillis", "RequestID", "ConflictReason"}},
		{commonsemantic.Receipts{}, []string{"ProtocolVersion", "CatalogRevision", "SchemaGeneration", "EngineGeneration", "SecurityEpoch", "CapabilityVersion"}},
	}
	return append(commonShapes, shapes...)
}

var platformSemanticShapeChecks = map[string]*platformSemanticShapeCheck{
	resourceaccesssemantic.CapabilityName: {shapes: platformCapabilityShapes(platformSemanticShape{resourceaccesssemantic.GrantInput{}, []string{"PrincipalID", "PrincipalType", "AccessLevel"}}, platformSemanticShape{resourceaccesssemantic.Grant{}, []string{"ID", "ResourceType", "ResourceID", "PrincipalID", "PrincipalType", "AccessLevel"}}, platformSemanticShape{resourceaccesssemantic.Request{}, []string{"CommandID", "Operation", "ResourceType", "ResourceID", "GrantID", "Grant", "Grants", "AccessLevel", "PrincipalType", "SourceOwnerID", "TargetOwnerID", "MinCatalogRevision"}}, platformSemanticShape{resourceaccesssemantic.Response{}, []string{"CommandID", "Grants", "AffectedResources", "Receipts"}})},
	analyticsauthoringsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{analyticsauthoringsemantic.Request{}, []string{"CommandID", "Operation", "ResourceID", "Dashboard", "Report", "Folder", "MinCatalogRevision"}},
			platformSemanticShape{analyticsauthoringsemantic.DashboardDefinition{}, []string{"Name", "StableName", "FolderID", "Description", "LayoutKind", "Kind", "Components"}},
			platformSemanticShape{analyticsauthoringsemantic.DashboardComponent{}, []string{"ReportID", "Kind", "Title", "Configuration"}},
			platformSemanticShape{analyticsauthoringsemantic.ReportDefinition{}, []string{"Name", "StableName", "FolderID", "Description", "SourceObject", "SourceRef", "DisplayMode", "Scope", "Columns", "Filters", "Grouping", "DateFilter", "ClearDateFilter"}},
			platformSemanticShape{analyticsauthoringsemantic.ReportFilter{}, []string{"Column", "Operator", "Value"}},
			platformSemanticShape{analyticsauthoringsemantic.ReportDateFilter{}, []string{"Column", "DurationValue", "StartDate", "EndDate"}},
			platformSemanticShape{analyticsauthoringsemantic.FolderDefinition{}, []string{"Name", "StableName", "Description", "Kind", "Access", "ParentFolderID"}},
			platformSemanticShape{analyticsauthoringsemantic.Response{}, []string{"CommandID", "ResourceID", "Receipts"}},
		),
	},
	applicationresultsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{applicationresultsemantic.GetResultRequest{}, []string{"CommandID", "ExecutionRefDigest"}},
			platformSemanticShape{applicationresultsemantic.ApplicationResult{}, []string{"CommandID", "ExecutionRefDigest", "Outcome", "ResultDigest", "RuntimeCommitReceipt", "FailureCode"}},
			platformSemanticShape{applicationresultsemantic.GetResultResponse{}, []string{"CommandID", "ExecutionRefDigest", "State", "Result"}},
		),
	},
	approvalnotificationsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{approvalnotificationsemantic.Request{}, []string{"MinCatalogRevision"}},
			platformSemanticShape{approvalnotificationsemantic.FlowDescriptor{}, []string{"Name", "Label", "Description"}},
			platformSemanticShape{approvalnotificationsemantic.Response{}, []string{"Flows", "Receipts"}},
		),
	},
	approvalsemantic.ExecuteCapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{approvalsemantic.ExecuteRequest{}, []string{"Operation", "IdempotencyKey", "ObjectID", "TargetRecordID", "WorkItemID", "Comments", "NextActorID", "SkipEntryCriteria", "MinCatalogRevision"}},
			platformSemanticShape{approvalsemantic.WorkItemAssignment{}, []string{"WorkItemID", "ActorID"}},
			platformSemanticShape{approvalsemantic.ActionFailure{}, []string{"ActionRef", "Kind", "Reason"}},
			platformSemanticShape{approvalsemantic.ValidationIssue{}, []string{"RuleName", "Field", "Message"}},
			platformSemanticShape{approvalsemantic.SubmitRejection{}, []string{"Reason", "ValidationIssues"}},
			platformSemanticShape{approvalsemantic.ExecuteResponse{}, []string{"ExecutionID", "InstanceID", "TargetRecordID", "SourceWorkItemID", "ActingPrincipalID", "State", "PendingWorkItems", "ActionFailures", "SubmitRejection", "Receipts"}},
		),
	},
	approvalsemantic.ReadCapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{approvalsemantic.ReadRequest{}, []string{"Kind", "TargetRecordID", "MinCatalogRevision"}},
			platformSemanticShape{approvalsemantic.PendingItem{}, []string{"WorkItemID", "InstanceID", "DefinitionID", "TargetRecordID", "ObjectID", "SubmittedByID", "SubmittedByName", "SubmittedAt", "ActorID", "OriginalActorID", "Comments", "RecordName"}},
			platformSemanticShape{approvalsemantic.PendingWorkItem{}, []string{"WorkItemID", "ActorID", "ActorName", "OriginalActorID", "OriginalActorName"}},
			platformSemanticShape{approvalsemantic.InstanceSummary{}, []string{"InstanceID", "DefinitionID", "TargetRecordID", "State", "SubmittedByID", "SubmittedByName", "CreatedAt", "CompletedAt", "PendingWorkItems"}},
			platformSemanticShape{approvalsemantic.StepDisplay{}, []string{"StepID", "StepOrder", "StepName", "StepLabel", "HasCriteria", "NoMatchBehavior"}},
			platformSemanticShape{approvalsemantic.ReadResponse{}, []string{"Pending", "Latest", "Steps", "Receipts"}},
		),
	},
	auditsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{auditsemantic.Request{}, []string{"ObjectID", "RecordID", "Limit", "Offset", "MinCatalogRevision"}},
			platformSemanticShape{auditsemantic.Row{}, []string{"ID", "ObjectID", "RecordID", "FieldID", "OldValue", "NewValue", "ChangedByID", "ChangedAt", "Action", "ChangesJSON", "Entrypoint", "EntrypointDetail", "RequestID", "TraceID", "SessionID", "ClientIP", "ActualUserID", "Outcome", "ErrorCode"}},
			platformSemanticShape{auditsemantic.Response{}, []string{"Rows", "Receipts"}},
		),
	},
	metadataadminsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{metadataadminsemantic.ObjectAdminIndexRequest{}, []string{"MinCatalogRevision"}},
			platformSemanticShape{metadataadminsemantic.ObjectAdminMetadata{}, []string{"ObjectID", "Description", "DeleteMode"}},
			platformSemanticShape{metadataadminsemantic.ObjectAdminIndexResponse{}, []string{"Objects", "Receipts"}},
			platformSemanticShape{metadataadminsemantic.LayoutAdminWorkspaceRequest{}, []string{"ObjectID", "MinCatalogRevision"}},
			platformSemanticShape{metadataadminsemantic.LayoutSummary{}, []string{"LayoutID", "ObjectID", "Name", "Type", "IsDefault", "CreatedAt", "LastModifiedAt"}},
			platformSemanticShape{metadataadminsemantic.LayoutAssignmentDimension{}, []string{"Key", "Value"}},
			platformSemanticShape{metadataadminsemantic.LayoutAssignment{}, []string{"AssignmentID", "ObjectID", "LayoutID", "Dimensions", "Specificity", "CreatedAt", "LastModifiedAt", "CreatedByID"}},
			platformSemanticShape{metadataadminsemantic.LayoutAdminWorkspaceResponse{}, []string{"ObjectID", "Layouts", "Assignments", "Receipts"}},
			platformSemanticShape{metadataadminsemantic.StoredLayoutRequest{}, []string{"LayoutID", "MinCatalogRevision"}},
			platformSemanticShape{metadataadminsemantic.StoredLayoutResponse{}, []string{"LayoutID", "ObjectID", "StoredDocument", "Receipts"}},
			platformSemanticShape{metadataadminsemantic.ValidationRuleAdminIndexRequest{}, []string{"ObjectID", "MinCatalogRevision"}},
			platformSemanticShape{metadataadminsemantic.ValidationRuleRecordSetFilter{}, []string{"Field", "Operator", "ValueSource", "Value"}},
			platformSemanticShape{metadataadminsemantic.ValidationRuleRecordSetBinding{}, []string{"Name", "Mode", "ObjectID", "FilterLogic", "Filters"}},
			platformSemanticShape{metadataadminsemantic.ValidationRuleMetadata{}, []string{"RuleID", "ObjectID", "Name", "Description", "Active", "Condition", "ErrorMessage", "ErrorDisplayField", "RecordSetBindings", "IsCustomized", "OwnerPack"}},
			platformSemanticShape{metadataadminsemantic.ValidationRuleAdminIndexResponse{}, []string{"ObjectID", "Rules", "Receipts"}},
		),
	},
	layoutauthoringsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{layoutauthoringsemantic.CatalogViewRef{}, []string{"CatalogRevision", "AuthoringViewDigest"}},
			platformSemanticShape{layoutauthoringsemantic.SubmitRequest{}, []string{"CommandID", "IdempotencyKey", "BaseCatalogRevision", "WaitMode", "Operation"}},
			platformSemanticShape{layoutauthoringsemantic.CommandOperation{}, []string{"Create", "Update", "Clone", "SetDefault", "Delete", "Restore", "AssignmentUpsert", "AssignmentDelete"}},
			platformSemanticShape{layoutauthoringsemantic.CreateLayout{}, []string{"Document", "ListFields", "ExpectedWorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.UpdateLayout{}, []string{"LayoutID", "ExpectedAggregateVersion", "Changes", "ListFields"}},
			platformSemanticShape{layoutauthoringsemantic.CloneLayout{}, []string{"SourceLayoutID", "SourceResourceVersion", "TargetLayoutID", "TargetName", "ExpectedWorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.SetDefaultLayout{}, []string{"ObjectID", "LayoutID", "ExpectedWorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.DeleteLayout{}, []string{"LayoutID", "ExpectedResourceVersion", "ExpectedWorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.RestoreLayout{}, []string{"LayoutID", "HistoryVersion", "ExpectedResourceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.UpsertLayoutAssignment{}, []string{"ObjectID", "LayoutID", "Selectors", "ExpectedWorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.DeleteLayoutAssignment{}, []string{"AssignmentID", "ExpectedResourceVersion", "ExpectedWorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.AssignmentSelectors{}, []string{"ProfileID", "RoleID", "RecordTypeID"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutDocument{}, []string{"LayoutID", "ObjectID", "Name", "Kind", "LayoutVersion", "CompactFields", "Tabs", "Sections", "RelatedLists", "RecordPanels", "HeaderActions", "QuickActions", "RecordStates", "PrimaryHeaderActions"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutSection{}, []string{"SectionID", "Label", "TabID", "Kind", "ComponentName", "ComponentConfiguration", "Columns", "Fields", "FieldLabels", "FieldBehaviors", "VisibilityCondition"}},
			platformSemanticShape{layoutauthoringsemantic.FieldLabel{}, []string{"FieldReference", "Label"}},
			platformSemanticShape{layoutauthoringsemantic.FieldBehaviorGroup{}, []string{"FieldReference", "Behaviors"}},
			platformSemanticShape{layoutauthoringsemantic.FieldBehavior{}, []string{"Mode", "Behavior"}},
			platformSemanticShape{layoutauthoringsemantic.RelatedList{}, []string{"RelatedListID", "Label", "SecondaryLabel", "ObjectID", "LookupFieldID", "FieldIDs", "PrefillMappings"}},
			platformSemanticShape{layoutauthoringsemantic.PrefillMapping{}, []string{"TargetFieldID", "SourceFieldID"}},
			platformSemanticShape{layoutauthoringsemantic.RecordPanel{}, []string{"PanelID", "RendererID", "Position", "TabID", "TabLabel", "Order", "VisibilityCondition", "RendererConfiguration"}},
			platformSemanticShape{layoutauthoringsemantic.ActionPlacement{}, []string{"Authored", "Actions"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutAction{}, []string{"Name", "Label", "Kind", "Icon", "TargetObjectID", "Component", "VisibilityCondition", "Configuration", "Extensions"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateRule{}, []string{"RuleID", "Condition", "Priority", "Banner", "Links", "ActionOverrides", "ReadOnly"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateBanner{}, []string{"Severity", "Title", "Body", "LinkIDs"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateLink{}, []string{"LinkID", "Label", "ReferenceFieldID", "ObjectID", "Placement"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateActionOverride{}, []string{"ActionKey", "Mode", "Reason"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateReadOnly{}, []string{"Enabled", "Reason"}},
			platformSemanticShape{layoutauthoringsemantic.Value{}, []string{"Kind", "Boolean", "String", "Decimal", "List", "Object"}},
			platformSemanticShape{layoutauthoringsemantic.NamedValue{}, []string{"Name", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[string]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[uint32]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]string]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.LayoutSection]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.RelatedList]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.RecordPanel]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[layoutauthoringsemantic.ActionPlacement]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.RecordStateRule]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutDocumentChanges{}, []string{"Name", "Kind", "LayoutVersion", "CompactFields", "Tabs", "Sections", "RelatedLists", "RecordPanels", "HeaderActions", "QuickActions", "RecordStates", "PrimaryHeaderActions"}},
			platformSemanticShape{layoutauthoringsemantic.GetCommandRequest{}, []string{"CommandID", "RequestDigest"}},
			platformSemanticShape{layoutauthoringsemantic.CommandFailure{}, []string{"Category", "Message", "FieldReference"}},
			platformSemanticShape{layoutauthoringsemantic.SubmitResponse{}, []string{"Duplicate", "Command"}},
			platformSemanticShape{layoutauthoringsemantic.CommandStatus{}, []string{"CommandID", "RequestDigest", "State", "Result", "Failure", "CatalogViewRef", "Receipts"}},
			platformSemanticShape{layoutauthoringsemantic.CommandResult{}, []string{"Create", "Update", "Clone", "SetDefault", "Delete", "Restore", "AssignmentUpsert", "AssignmentDelete"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutSnapshot{}, []string{"Document", "OrderedListFields", "ResourceVersion", "AggregateVersion", "WorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.CreateLayoutResult{}, []string{"Layout"}},
			platformSemanticShape{layoutauthoringsemantic.UpdateLayoutResult{}, []string{"Layout"}},
			platformSemanticShape{layoutauthoringsemantic.CloneLayoutResult{}, []string{"Layout"}},
			platformSemanticShape{layoutauthoringsemantic.SetDefaultLayoutResult{}, []string{"ObjectID", "LayoutID", "WorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.DeleteLayoutResult{}, []string{"LayoutID", "ObjectID", "WorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.RestoreLayoutResult{}, []string{"Layout", "HistoryVersion"}},
			platformSemanticShape{layoutauthoringsemantic.UpsertLayoutAssignmentResult{}, []string{"Assignment", "WorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.DeleteLayoutAssignmentResult{}, []string{"AssignmentID", "ObjectID", "WorkspaceVersion"}},
			platformSemanticShape{layoutauthoringsemantic.WorkspaceRequest{}, []string{"ObjectID", "ViewRef"}},
			platformSemanticShape{layoutauthoringsemantic.Workspace{}, []string{"ObjectID", "WorkspaceVersion", "Layouts", "Assignments", "ViewRef", "Receipts"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutSummary{}, []string{"LayoutID", "ObjectID", "Name", "Kind", "IsDefault", "ResourceVersion", "CreatedAt", "LastModifiedAt"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutAssignmentSummary{}, []string{"AssignmentID", "ObjectID", "LayoutID", "Selectors", "Specificity", "ResourceVersion", "CreatedAt", "LastModifiedAt", "CreatedByID"}},
			platformSemanticShape{layoutauthoringsemantic.StoredLayoutRequest{}, []string{"LayoutID", "ViewRef"}},
			platformSemanticShape{layoutauthoringsemantic.CreateContext{}, []string{"RequiredFields"}},
			platformSemanticShape{layoutauthoringsemantic.StoredLayout{}, []string{"Document", "OrderedListFields", "Lifecycle", "ResourceVersion", "AggregateVersion", "WorkspaceVersion", "CreateContext", "ViewRef", "Receipts"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutLifecycleState{}, []string{"ProvenanceKind", "GenerationVersion", "Customized", "IsDefault", "CreatedAt", "LastModifiedAt"}},
		),
	},
	navigationsemantic.CapabilityName: {shapes: platformCapabilityShapes(
		platformSemanticShape{navigationsemantic.Item{}, []string{"ID", "Label", "Icon", "Target"}},
		platformSemanticShape{navigationsemantic.Target{}, []string{"Resource", "Page", "URL"}},
		platformSemanticShape{navigationsemantic.ResourceTarget{}, []string{"ResourceType", "ResourceID"}},
		platformSemanticShape{navigationsemantic.PageTarget{}, []string{"ID"}},
		platformSemanticShape{navigationsemantic.Document{}, []string{"ApplicationID", "Revision", "Items"}},
		platformSemanticShape{navigationsemantic.ReadRequest{}, []string{"ApplicationID"}},
		platformSemanticShape{navigationsemantic.ReadResponse{}, []string{"Document", "Receipts"}},
		platformSemanticShape{navigationsemantic.ResolveRequest{}, []string{"ApplicationIDs"}},
		platformSemanticShape{navigationsemantic.ResolveResponse{}, []string{"Documents", "Receipts"}},
		platformSemanticShape{navigationsemantic.SaveRequest{}, []string{"ApplicationID", "ExpectedRevision", "IdempotencyKey", "Items"}},
		platformSemanticShape{navigationsemantic.SaveResponse{}, []string{"Document", "Changed", "Receipts"}},
	)},
	layoutauthoringv2semantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{layoutauthoringv2semantic.WorkspaceRequest{}, []string{"ObjectID"}},
			platformSemanticShape{layoutauthoringv2semantic.WorkspaceResponse{}, []string{"ObjectID", "LayoutRevision", "Layouts", "Assignments", "Receipts"}},
			platformSemanticShape{metadataadminsemantic.LayoutSummary{}, []string{"LayoutID", "ObjectID", "Name", "Type", "IsDefault", "CreatedAt", "LastModifiedAt"}},
			platformSemanticShape{metadataadminsemantic.LayoutAssignmentDimension{}, []string{"Key", "Value"}},
			platformSemanticShape{metadataadminsemantic.LayoutAssignment{}, []string{"AssignmentID", "ObjectID", "LayoutID", "Dimensions", "Specificity", "CreatedAt", "LastModifiedAt", "CreatedByID"}},
			platformSemanticShape{layoutauthoringv2semantic.StoredLayoutRequest{}, []string{"ObjectID", "LayoutID"}},
			platformSemanticShape{layoutauthoringv2semantic.StoredLayoutResponse{}, []string{"LayoutID", "ObjectID", "LayoutRevision", "Document", "OrderedListFields", "RequiredCreateFields", "Receipts"}},
			platformSemanticShape{layoutauthoringv2semantic.Request{}, []string{"ObjectID", "ExpectedLayoutRevision", "Operation", "HistoryRelatedLists"}},
			platformSemanticShape{layoutauthoringv2semantic.HistoryRelatedListProjection{}, []string{"ObjectID", "Columns"}},
			platformSemanticShape{layoutauthoringv2semantic.Operation{}, []string{"Create", "Update", "Clone", "SetDefault", "Delete", "Restore", "AssignmentUpsert", "AssignmentDelete"}},
			platformSemanticShape{layoutauthoringv2semantic.CreateLayout{}, []string{"Document", "ListFields"}},
			platformSemanticShape{layoutauthoringv2semantic.UpdateLayout{}, []string{"LayoutID", "Changes", "ListFields"}},
			platformSemanticShape{layoutauthoringv2semantic.CloneLayout{}, []string{"SourceLayoutID", "TargetLayoutID", "TargetName"}},
			platformSemanticShape{layoutauthoringv2semantic.SetDefaultLayout{}, []string{"LayoutID"}},
			platformSemanticShape{layoutauthoringv2semantic.DeleteLayout{}, []string{"LayoutID"}},
			platformSemanticShape{layoutauthoringv2semantic.RestoreLayout{}, []string{"LayoutID", "HistoryVersion"}},
			platformSemanticShape{layoutauthoringv2semantic.UpsertLayoutAssignment{}, []string{"LayoutID", "Selectors"}},
			platformSemanticShape{layoutauthoringv2semantic.DeleteLayoutAssignment{}, []string{"AssignmentID"}},
			platformSemanticShape{layoutauthoringv2semantic.Response{}, []string{"Changed", "LayoutRevision", "LayoutID", "AssignmentID", "Receipts"}},
			platformSemanticShape{layoutauthoringsemantic.AssignmentSelectors{}, []string{"ProfileID", "RoleID", "RecordTypeID"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutDocument{}, []string{"LayoutID", "ObjectID", "Name", "Kind", "LayoutVersion", "CompactFields", "Tabs", "Sections", "RelatedLists", "RecordPanels", "HeaderActions", "QuickActions", "RecordStates", "PrimaryHeaderActions"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutSection{}, []string{"SectionID", "Label", "TabID", "Kind", "ComponentName", "ComponentConfiguration", "Columns", "Fields", "FieldLabels", "FieldBehaviors", "VisibilityCondition"}},
			platformSemanticShape{layoutauthoringsemantic.FieldLabel{}, []string{"FieldReference", "Label"}},
			platformSemanticShape{layoutauthoringsemantic.FieldBehaviorGroup{}, []string{"FieldReference", "Behaviors"}},
			platformSemanticShape{layoutauthoringsemantic.FieldBehavior{}, []string{"Mode", "Behavior"}},
			platformSemanticShape{layoutauthoringsemantic.RelatedList{}, []string{"RelatedListID", "Label", "SecondaryLabel", "ObjectID", "LookupFieldID", "FieldIDs", "PrefillMappings"}},
			platformSemanticShape{layoutauthoringsemantic.PrefillMapping{}, []string{"TargetFieldID", "SourceFieldID"}},
			platformSemanticShape{layoutauthoringsemantic.RecordPanel{}, []string{"PanelID", "RendererID", "Position", "TabID", "TabLabel", "Order", "VisibilityCondition", "RendererConfiguration"}},
			platformSemanticShape{layoutauthoringsemantic.ActionPlacement{}, []string{"Authored", "Actions"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutAction{}, []string{"Name", "Label", "Kind", "Icon", "TargetObjectID", "Component", "VisibilityCondition", "Configuration", "Extensions"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateRule{}, []string{"RuleID", "Condition", "Priority", "Banner", "Links", "ActionOverrides", "ReadOnly"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateBanner{}, []string{"Severity", "Title", "Body", "LinkIDs"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateLink{}, []string{"LinkID", "Label", "ReferenceFieldID", "ObjectID", "Placement"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateActionOverride{}, []string{"ActionKey", "Mode", "Reason"}},
			platformSemanticShape{layoutauthoringsemantic.RecordStateReadOnly{}, []string{"Enabled", "Reason"}},
			platformSemanticShape{layoutauthoringsemantic.Value{}, []string{"Kind", "Boolean", "String", "Decimal", "List", "Object"}},
			platformSemanticShape{layoutauthoringsemantic.NamedValue{}, []string{"Name", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[string]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[uint32]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]string]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.LayoutSection]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.RelatedList]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.RecordPanel]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[layoutauthoringsemantic.ActionPlacement]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.Change[[]layoutauthoringsemantic.RecordStateRule]{}, []string{"Mode", "Value"}},
			platformSemanticShape{layoutauthoringsemantic.LayoutDocumentChanges{}, []string{"Name", "Kind", "LayoutVersion", "CompactFields", "Tabs", "Sections", "RelatedLists", "RecordPanels", "HeaderActions", "QuickActions", "RecordStates", "PrimaryHeaderActions"}},
		),
	},
	permissionadminsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{permissionadminsemantic.ReadRequest{}, []string{"Selector", "PermissionSetID", "MinCatalogRevision"}},
			platformSemanticShape{permissionadminsemantic.SystemPermission{}, []string{"PermissionID", "Label", "Category", "Description", "RequiresPermissionID"}},
			platformSemanticShape{permissionadminsemantic.RecordType{}, []string{"RecordTypeID", "ResourceType", "StableName", "Label", "Active"}},
			platformSemanticShape{permissionadminsemantic.CustomPermission{}, []string{"PermissionID", "StableName", "Label"}},
			platformSemanticShape{permissionadminsemantic.Grant{}, []string{"PermissionID", "Enabled"}},
			platformSemanticShape{permissionadminsemantic.ReadResponse{}, []string{"SystemCatalog", "SystemGrants", "RecordTypeCatalog", "RecordTypeGrants", "CustomCatalog", "CustomGrants", "Receipts"}},
			platformSemanticShape{permissionadminsemantic.MutateRequest{}, []string{"Selector", "PermissionSetID", "Grants", "MinCatalogRevision"}},
			platformSemanticShape{permissionadminsemantic.MutateResponse{}, []string{"Receipts"}},
		),
	},
	permissionauthoringsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{permissionauthoringsemantic.Target{}, []string{"Kind", "ID"}},
			platformSemanticShape{permissionauthoringsemantic.SnapshotRequest{}, []string{"Target", "MinCatalogRevision"}},
			platformSemanticShape{permissionauthoringsemantic.SystemPermission{}, []string{"PermissionID", "Label", "Category", "Description", "RequiresPermissionID"}},
			platformSemanticShape{permissionauthoringsemantic.RecordType{}, []string{"RecordTypeID", "ResourceType", "StableName", "Label", "Active"}},
			platformSemanticShape{permissionauthoringsemantic.CustomPermission{}, []string{"PermissionID", "StableName", "Label"}},
			platformSemanticShape{permissionauthoringsemantic.CapabilityGrant{}, []string{"CapabilityID", "Enabled"}},
			platformSemanticShape{permissionauthoringsemantic.ObjectGrant{}, []string{"ResourceType", "Read", "Create", "Edit", "Delete", "ViewAll", "ModifyAll"}},
			platformSemanticShape{permissionauthoringsemantic.FieldGrant{}, []string{"ResourceType", "FieldName", "Read", "Edit"}},
			platformSemanticShape{permissionauthoringsemantic.RecordTypeGrant{}, []string{"RecordTypeID", "Visible"}},
			platformSemanticShape{permissionauthoringsemantic.SnapshotCatalog{}, []string{"System", "RecordTypes", "Custom"}},
			platformSemanticShape{permissionauthoringsemantic.StoredGrants{}, []string{"System", "Objects", "Fields", "RecordTypes", "Custom"}},
			platformSemanticShape{permissionauthoringsemantic.SnapshotResponse{}, []string{"CanonicalPermissionSetID", "AuthoringToken", "Catalog", "Grants", "Receipts"}},
			platformSemanticShape{permissionauthoringsemantic.CapabilityGrantChange{}, []string{"CapabilityID", "Enabled"}},
			platformSemanticShape{permissionauthoringsemantic.ObjectGrantChange{}, []string{"ResourceType", "Read", "Create", "Edit", "Delete", "ViewAll", "ModifyAll"}},
			platformSemanticShape{permissionauthoringsemantic.FieldGrantChange{}, []string{"ResourceType", "FieldName", "Read", "Edit"}},
			platformSemanticShape{permissionauthoringsemantic.RecordTypeGrantChange{}, []string{"RecordTypeID", "ResourceType", "Visible"}},
			platformSemanticShape{permissionauthoringsemantic.Changes{}, []string{"System", "Objects", "Fields", "RecordTypes", "Custom"}},
			platformSemanticShape{permissionauthoringsemantic.Request{}, []string{"CommandID", "Target", "ExpectedAuthoringToken", "Changes", "MinCatalogRevision"}},
			platformSemanticShape{permissionauthoringsemantic.Response{}, []string{"CommandID", "CommandDigest", "Outcome", "RejectionCode", "CanonicalPermissionSetID", "AuthoringToken", "Receipts", "OutcomeExpiresAtUTC"}},
			platformSemanticShape{permissionauthoringsemantic.StatusRequest{}, []string{"CommandID", "CommandDigest"}},
			platformSemanticShape{permissionauthoringsemantic.StatusResponse{}, []string{"CommandID", "CommandDigest", "State", "Result"}},
		),
	},
	pagelayoutresolutionsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{pagelayoutresolutionsemantic.Request{}, []string{"ObjectID", "RecordTypeIDs", "MinCatalogRevision"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ObjectListFieldsRequest{}, []string{"ObjectIDs", "MinCatalogRevision"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ObjectListFields{}, []string{"ObjectID", "OrderedFieldIDs"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ObjectListFieldsResponse{}, []string{"Objects", "Receipts"}},
			platformSemanticShape{pagelayoutresolutionsemantic.Selection{}, []string{"RecordTypeID", "LayoutID"}},
			platformSemanticShape{pagelayoutresolutionsemantic.FieldMapping{}, []string{"TargetFieldID", "SourceFieldID"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ResolvedQueryTarget{}, []string{"ObjectID", "LookupField", "ParentFieldID"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ResolvedDetailTarget{}, []string{"ObjectID"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ResolvedListTarget{}, []string{"ObjectID", "FilterField", "ParentFieldID"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ResolvedCreateTarget{}, []string{"Kind", "ObjectID", "PrefillMappings"}},
			platformSemanticShape{pagelayoutresolutionsemantic.RelatedListResolution{}, []string{"DisplayObjectID", "DisplayLookupField", "Query", "Detail", "List", "Create"}},
			platformSemanticShape{pagelayoutresolutionsemantic.ResolvedLayout{}, []string{"LayoutID", "DocumentKind", "DocumentFormatVersion", "LayoutDocument", "RelatedLists"}},
			platformSemanticShape{pagelayoutresolutionsemantic.Response{}, []string{"ObjectID", "Selections", "Layouts", "Receipts"}},
		),
	},
	catalogsemantic.AppMetadataCapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{catalogsemantic.GetRequest{}, []string{"MinCatalogRevision"}},
			platformSemanticShape{catalogsemantic.WatchRequest{}, []string{"AfterCatalogRevision"}},
			platformSemanticShape{catalogsemantic.ViewLineage{}, []string{"CatalogRevision", "SchemaGeneration", "EngineGeneration", "SourceSnapshotDigest", "ViewDigest"}},
			platformSemanticShape{catalogsemantic.AppMetadataComponent{}, []string{"ComponentID", "ComponentKind", "ComponentFormatVersion", "NamespaceID", "BusinessKey", "DefinitionVersion", "ContentDigest", "CanonicalBehavior"}},
			platformSemanticShape{catalogsemantic.AppMetadataView{}, []string{"OrgID", "AppInstallationID", "AppID", "AppReleaseDigest", "Lineage", "Components", "Receipts"}},
		),
	},
	catalogsemantic.AppMetadataV2CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{catalogsemantic.GetRequest{}, []string{"MinCatalogRevision"}},
			platformSemanticShape{catalogsemantic.WatchRequest{}, []string{"AfterCatalogRevision"}},
			platformSemanticShape{catalogsemantic.ViewLineage{}, []string{"CatalogRevision", "SchemaGeneration", "EngineGeneration", "SourceSnapshotDigest", "ViewDigest"}},
			platformSemanticShape{catalogsemantic.AppMetadataComponent{}, []string{"ComponentID", "ComponentKind", "ComponentFormatVersion", "NamespaceID", "BusinessKey", "DefinitionVersion", "ContentDigest", "CanonicalBehavior"}},
			platformSemanticShape{catalogsemantic.EffectiveMetadataComponent{}, []string{"ComponentKind", "ComponentFormatVersion", "BusinessKey", "ContentDigest", "CanonicalBehavior"}},
			platformSemanticShape{catalogsemantic.AppMetadataViewV2{}, []string{"OrgID", "AppInstallationID", "AppID", "AppReleaseDigest", "Lineage", "AppComponents", "EffectiveComponents", "Receipts"}},
		),
	},
	catalogsemantic.AppMetadataV3CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{catalogsemantic.GetRequest{}, []string{"MinCatalogRevision"}},
			platformSemanticShape{catalogsemantic.WatchRequest{}, []string{"AfterCatalogRevision"}},
			platformSemanticShape{catalogsemantic.ViewLineage{}, []string{"CatalogRevision", "SchemaGeneration", "EngineGeneration", "SourceSnapshotDigest", "ViewDigest"}},
			platformSemanticShape{catalogsemantic.AppMetadataComponent{}, []string{"ComponentID", "ComponentKind", "ComponentFormatVersion", "NamespaceID", "BusinessKey", "DefinitionVersion", "ContentDigest", "CanonicalBehavior"}},
			platformSemanticShape{catalogsemantic.EffectiveMetadataComponent{}, []string{"ComponentKind", "ComponentFormatVersion", "BusinessKey", "ContentDigest", "CanonicalBehavior"}},
			platformSemanticShape{catalogsemantic.AppMetadataViewV3{}, []string{"OrgID", "AppInstallationID", "AppID", "AppReleaseDigest", "Lineage", "AppComponents", "EffectiveComponents", "Receipts"}},
		),
	},
	catalogsemantic.IntegrationBindingCapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{catalogsemantic.GetRequest{}, []string{"MinCatalogRevision"}},
			platformSemanticShape{catalogsemantic.WatchRequest{}, []string{"AfterCatalogRevision"}},
			platformSemanticShape{catalogsemantic.ViewLineage{}, []string{"CatalogRevision", "SchemaGeneration", "EngineGeneration", "SourceSnapshotDigest", "ViewDigest"}},
			platformSemanticShape{catalogsemantic.IntegrationBinding{}, []string{"Kind", "OwnerPack", "PackInstallationID", "PackPayloadDigest", "BusinessKey", "DefinitionVersion", "CredentialRefs", "RuntimeCommand"}},
			platformSemanticShape{catalogsemantic.RuntimeCommandBinding{}, []string{"CommandKind", "PayloadFormatVersion", "DefinitionRef", "DefinitionVersion"}},
			platformSemanticShape{catalogsemantic.IntegrationBindingView{}, []string{"OrgID", "AppInstallationID", "AuthorizedWorkloadID", "Lineage", "Bindings", "Receipts"}},
		),
	},
	servingbindingsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{servingbindingsemantic.Binding{}, []string{"OrgID", "AppInstallationID", "AppReleaseDigest", "WorkloadID", "CanonicalResource", "ToolContractDigest", "ScopeRouteReceiptDigest", "WorkloadCapabilityCeiling", "Receipts"}},
		),
	},
	searchsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{recordsemantic.Decimal{}, []string{"Coefficient", "Scale"}},
			platformSemanticShape{recordsemantic.Field{}, []string{"Name", "Kind", "Null", "String", "Boolean", "Integer", "Decimal", "Date", "DateTime", "Reference"}},
			platformSemanticShape{searchsemantic.Request{}, []string{"ObjectIDs", "Term", "SearchFields", "SelectedFields", "Limit", "MinCatalogRevision", "ObjectPlans"}},
			platformSemanticShape{searchsemantic.ObjectPlan{}, []string{"ObjectID", "SearchFields", "SelectedFields", "Limit"}},
			platformSemanticShape{searchsemantic.Record{}, []string{"ObjectID", "RecordID", "Fields", "Score"}},
			platformSemanticShape{searchsemantic.Response{}, []string{"Records", "Receipts"}},
			platformSemanticShape{searchsemantic.ScopeOrderRequest{}, []string{"ObjectIDs", "MinCatalogRevision"}},
			platformSemanticShape{searchsemantic.ScopeOrderResponse{}, []string{"ObjectIDs", "Receipts"}},
		),
	},
	flowsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{flowsemantic.CatalogActionBinding{}, []string{"ComponentRef", "ActionRef"}},
			platformSemanticShape{flowsemantic.CatalogActionRequest{}, []string{"IdempotencyKey", "CanonicalInputs", "MinCatalogRevision", "CatalogAction"}},
			platformSemanticShape{flowsemantic.CatalogActionPreviewRequest{}, []string{"Mode", "CanonicalInputs", "RecordID", "MinCatalogRevision", "CatalogAction"}},
			platformSemanticShape{flowsemantic.CatalogActionPreviewResponse{}, []string{"CanonicalResult", "Receipts"}},
			platformSemanticShape{flowsemantic.Request{}, []string{"DefinitionRef", "DefinitionVersion", "IdempotencyKey", "CanonicalInputs", "MinCatalogRevision"}},
			platformSemanticShape{flowsemantic.Response{}, []string{"ExecutionID", "CanonicalOutputs", "Receipts"}},
			platformSemanticShape{flowsemantic.ExecutionError{}, []string{"Code", "Message", "Fields"}},
			platformSemanticShape{flowsemantic.ResponseV2{}, []string{"ExecutionID", "CanonicalOutputs", "Errors", "Receipts"}},
		),
	},
	reportsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{reportsemantic.Request{}, []string{"ReportID", "CanonicalFilters", "Limit", "Offset", "MinCatalogRevision"}},
			platformSemanticShape{reportsemantic.Response{}, []string{"CanonicalResult", "Receipts"}},
		),
	},
	sessionsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{federatedloginsemantic.BeginRequest{}, []string{"AppInstallationID", "RedirectURI"}},
			platformSemanticShape{federatedloginsemantic.BeginResponse{}, []string{"State", "ExpiresAtUnixSecond"}},
			platformSemanticShape{federatedloginsemantic.ConsumeRequest{}, []string{"AppInstallationID", "State", "RedirectURI"}},
			platformSemanticShape{federatedloginsemantic.ConsumeResponse{}, []string{}},
			platformSemanticShape{authorizationsemantic.ProtocolError{}, []string{"Code", "SafeDescription", "TrustedRedirectURI", "State"}},
			platformSemanticShape{authorizationsemantic.BeginRequest{}, []string{"AppInstallationID", "ClientID", "RedirectURI", "ResponseType", "Scope", "State", "CodeChallenge", "CodeChallengeMethod", "Issuer", "Resource", "ResourcePresent"}},
			platformSemanticShape{authorizationsemantic.BeginResponse{}, []string{"RequestHandle", "ExpiresAtUnixSecond", "ProtocolError"}},
			platformSemanticShape{authorizationsemantic.CompleteRequest{}, []string{"AppInstallationID", "RequestHandle"}},
			platformSemanticShape{authorizationsemantic.CompleteResponse{}, []string{"AuthorizationCodeIssued", "RedirectURI", "State", "ProtocolError"}},
			platformSemanticShape{authorizationsemantic.ExchangeRequest{}, []string{"AppInstallationID", "GrantType", "ClientID", "RedirectURI", "RequestedScope", "Issuer", "Resource", "ResourcePresent"}},
			platformSemanticShape{authorizationsemantic.Token{}, []string{"TokenType", "ExpiresInSecond", "Scope", "AccessTokenIssued", "RefreshTokenIssued"}},
			platformSemanticShape{authorizationsemantic.ExchangeResponse{}, []string{"Token", "ProtocolError"}},
			platformSemanticShape{sessionsemantic.CreateRequest{}, []string{"AppInstallationID", "Method", "ApplicationClientID", "RequestedScope", "FederatedProviderID", "SourceAddress", "UserAgent", "IssueControlProof"}},
			platformSemanticShape{sessionsemantic.Principal{}, []string{"PrincipalID", "DisplayName", "Email", "ProfileID", "RoleID"}},
			platformSemanticShape{sessionsemantic.Session{}, []string{"Principal", "ExpiresAtUnixSecond"}},
			platformSemanticShape{sessionsemantic.CreateResponse{}, []string{"Session", "AccessTokenIssued", "ControlProofIssued"}},
			platformSemanticShape{sessionsemantic.DocumentPolicyRequest{}, []string{"RouteFamilyPrefix", "LinkRoutes"}},
			platformSemanticShape{sessionsemantic.DocumentLinkRoute{}, []string{"Link", "Method", "Path"}},
			platformSemanticShape{sessionsemantic.DocumentPolicy{}, []string{"Restricted", "AllowedLinks", "HourlyLimit", "DailyLimit"}},
			platformSemanticShape{sessionsemantic.ReadRequest{}, []string{"DocumentPolicy", "AppInstallationID", "AllowRenewal", "UseControlProof"}},
			platformSemanticShape{sessionsemantic.ReadResponse{}, []string{"DocumentPolicy", "Session", "ReplacementAccessTokenIssued", "ControlProofExpiresAtUnixSecond"}},
			platformSemanticShape{sessionsemantic.RevokeRequest{}, []string{"AppInstallationID", "UseControlProof"}},
			platformSemanticShape{sessionsemantic.RevokeResponse{}, []string{}},
		),
	},
	filessemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{filessemantic.CreateHeader{}, []string{"IdempotencyKey", "ParentObjectID", "ParentRecordID", "FileName", "ContentType", "ContentLength", "AttachmentKind", "MinCatalogRevision"}},
			platformSemanticShape{filessemantic.CreateChunk{}, []string{"Header", "Data"}},
			platformSemanticShape{filessemantic.CreateResponse{}, []string{"FileID", "FileName", "Size", "ContentType", "Receipts"}},
			platformSemanticShape{filessemantic.OpenRequest{}, []string{"FileID", "MinCatalogRevision"}},
			platformSemanticShape{filessemantic.OpenChunk{}, []string{"FileName", "ContentType", "TotalSize", "Data", "Receipts"}},
			platformSemanticShape{filessemantic.DeleteRequest{}, []string{"FileID", "MinCatalogRevision"}},
			platformSemanticShape{filessemantic.DeleteResponse{}, []string{"Receipts"}},
		),
	},
	bulkingestsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{bulkingestsemantic.Job{}, []string{"ID", "ObjectID", "Operation", "State", "CreatedByID", "CreatedAt", "ModifiedAt", "FailureCode", "ExternalIDFieldName", "NumberRecordsProcessed", "NumberRecordsFailed", "TotalProcessingTime", "ActiveProcessingTime", "ClientVersion"}},
			platformSemanticShape{bulkingestsemantic.CreateRequest{}, []string{"ObjectID", "Operation", "ExternalIDFieldName", "ClientVersion"}},
			platformSemanticShape{bulkingestsemantic.CreateResponse{}, []string{"Job", "Receipts"}},
			platformSemanticShape{bulkingestsemantic.ReadRequest{}, []string{"JobID"}},
			platformSemanticShape{bulkingestsemantic.ReadResponse{}, []string{"Job", "Receipts"}},
			platformSemanticShape{bulkingestsemantic.CloseRequest{}, []string{"JobID", "State"}},
			platformSemanticShape{bulkingestsemantic.CloseResponse{}, []string{"Job", "Receipts"}},
			platformSemanticShape{bulkingestsemantic.UploadHeader{}, []string{"JobID", "ContentLength", "ContentLengthKnown"}},
			platformSemanticShape{bulkingestsemantic.UploadChunk{}, []string{"Header", "Data"}},
			platformSemanticShape{bulkingestsemantic.UploadResponse{}, []string{"JobID", "Receipts"}},
		),
	},
	commandsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{commandsemantic.Request{}, []string{"CommandID", "IdempotencyKey", "CommandKind", "PartitionKey", "PayloadFormatVersion", "Payload", "PayloadDigest", "MinCatalogRevision"}},
			platformSemanticShape{commandsemantic.Response{}, []string{"CommandID", "Duplicate", "Receipts"}},
		),
	},
	externaleffectsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{externaleffectsemantic.ClaimRequest{}, []string{"WorkerID", "Limit", "MinCatalogRevision"}},
			platformSemanticShape{externaleffectsemantic.Header{}, []string{"Name", "Values"}},
			platformSemanticShape{externaleffectsemantic.QueryParameter{}, []string{"Name", "Value"}},
			platformSemanticShape{externaleffectsemantic.RetryPolicy{}, []string{"MaxAttempts", "BaseDelayMillis", "MultiplierMilli", "MaxDelayMillis", "RetryableStatusCodes"}},
			platformSemanticShape{externaleffectsemantic.Operation{}, []string{"OperationID", "RequestDigest", "Method", "RelativePath", "Query", "Headers", "Body", "CredentialRef", "EndpointClass", "RetryPolicy"}},
			platformSemanticShape{externaleffectsemantic.Effect{}, []string{"EffectID", "ClaimToken", "LeaseExpiresAtUnixMillis", "Operations"}},
			platformSemanticShape{externaleffectsemantic.ClaimResponse{}, []string{"Effects", "Receipts"}},
			platformSemanticShape{externaleffectsemantic.OperationResult{}, []string{"OperationID", "RequestDigest", "Outcome", "StatusCode", "Body", "FailureCode"}},
			platformSemanticShape{externaleffectsemantic.CompleteRequest{}, []string{"EffectID", "ClaimToken", "Results", "CatalogRevision"}},
			platformSemanticShape{externaleffectsemantic.CompleteResponse{}, []string{"EffectID", "State", "Receipts"}},
		),
	},
	outboundintentsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{outboundintentsemantic.GenerationRequest{}, []string{"AfterGeneration"}},
			platformSemanticShape{outboundintentsemantic.GenerationResponse{}, []string{"Generation", "Receipts"}},
			platformSemanticShape{outboundintentsemantic.ListRequest{}, []string{"Limit", "MinCatalogRevision", "MaxOperationSetVersion"}},
			platformSemanticShape{outboundintentsemantic.BindingReference{}, []string{"Kind", "OwnerPack", "PackInstallationID", "PackPayloadDigest", "BusinessKey", "DefinitionVersion"}},
			platformSemanticShape{outboundintentsemantic.Intent{}, []string{"IntentID", "IdempotencyKey", "EffectRootID", "EffectGenerationID", "PayloadFormatVersion", "PayloadDigest", "CatalogRevision", "Operation", "SourceObject", "SourceRecordID", "ConnectorOwnerKey", "FlowDeveloperName", "FlowActionName", "ActionSlotID", "DestinationSlotID", "Bindings", "CanonicalPayload"}},
			platformSemanticShape{outboundintentsemantic.ListResponse{}, []string{"Intents", "Receipts"}},
			platformSemanticShape{outboundintentsemantic.AcknowledgeRequest{}, []string{"IntentID", "PayloadDigest", "CatalogRevision", "Outcome", "IntegrationCommandID", "RejectionCode"}},
			platformSemanticShape{outboundintentsemantic.AcknowledgeResponse{}, []string{"IntentID", "Outcome", "Duplicate", "Receipts"}},
			platformSemanticShape{outboundintentsemantic.CommitResultRequest{}, []string{"IntentID", "PayloadDigest", "CatalogRevision", "IntegrationCommandID", "RemoteID", "ResultFormatVersion", "ResultDigest", "CanonicalResult"}},
			platformSemanticShape{outboundintentsemantic.CommitResultResponse{}, []string{"IntentID", "Duplicate", "Receipts"}},
			platformSemanticShape{outboundintentsemantic.CommitNoEffectRequest{}, []string{"IntentID", "PayloadDigest", "CatalogRevision", "IntegrationCommandID", "Reason"}},
			platformSemanticShape{outboundintentsemantic.CommitNoEffectResponse{}, []string{"IntentID", "Reason", "Duplicate", "Receipts"}},
			platformSemanticShape{outboundintentsemantic.OpenMailAttachmentRequest{}, []string{"IntentID", "PayloadDigest", "CatalogRevision", "IntegrationCommandID", "AttachmentIndex"}},
			platformSemanticShape{outboundintentsemantic.MailAttachmentChunk{}, []string{"FileName", "ContentType", "ContentLength", "ContentDigest", "Data", "Receipts"}},
		),
	},
	mailboxauthorizationsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{mailboxauthorizationsemantic.Request{}, []string{"Operation", "MinCatalogRevision"}},
			platformSemanticShape{mailboxauthorizationsemantic.Response{}, []string{"AuthorizedSubjectID", "ReauthorizationHandle", "Receipts"}},
			platformSemanticShape{mailboxauthorizationsemantic.ReauthorizeRequest{}, []string{"ReauthorizationHandle", "MinCatalogRevision"}},
		),
	},
	permissionsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{permissionsemantic.Request{}, []string{"TargetPrincipalID", "Selection", "MinCatalogRevision"}},
			platformSemanticShape{permissionsemantic.Selection{}, []string{"Sections", "ResourceTypes"}},
			platformSemanticShape{permissionsemantic.PermissionGrant{}, []string{"PermissionID", "Granted"}},
			platformSemanticShape{permissionsemantic.ObjectPermission{}, []string{"ResourceType", "CanRead", "CanCreate", "CanEdit", "CanDelete", "CanDeactivate", "CanViewAll", "CanModifyAll"}},
			platformSemanticShape{permissionsemantic.FieldPermission{}, []string{"CanCreate", "ResourceType", "FieldName", "CanRead", "CanEdit"}},
			platformSemanticShape{permissionsemantic.ApplicationPermission{}, []string{"ApplicationID", "CanView", "IsDefault"}},
			platformSemanticShape{permissionsemantic.NavigationPermission{}, []string{"NavigationKey", "CanView"}},
			platformSemanticShape{permissionsemantic.RecordTypePermission{}, []string{"ResourceType", "RecordTypeID", "Available", "IsDefault"}},
			platformSemanticShape{permissionsemantic.Response{}, []string{"SystemPermissions", "CustomPermissions", "ObjectPermissions", "FieldPermissions", "ApplicationPermissions", "NavigationPermissions", "RecordTypePermissions", "Receipts"}},
		),
	},
	listviewsemantic.CapabilityName: {
		shapes: platformCapabilityShapes(
			platformSemanticShape{listviewsemantic.ReadRequest{}, []string{"Selector", "ObjectID", "ViewID", "MinCatalogRevision"}},
			platformSemanticShape{listviewsemantic.View{}, []string{"ViewID", "ObjectID", "Label", "FilterExpression", "FilterLogic", "FieldIDs", "SortFieldID", "SortDirection", "StableName"}},
			platformSemanticShape{listviewsemantic.ReadResponse{}, []string{"Views", "View", "Receipts"}},
			platformSemanticShape{listviewsemantic.FieldSelection{}, []string{"FieldIDs"}},
			platformSemanticShape{listviewsemantic.Patch{}, []string{"Label", "FilterExpression", "FilterLogic", "Fields", "SortFieldID", "SortDirection", "StableName"}},
			platformSemanticShape{listviewsemantic.MutateRequest{}, []string{"Operation", "ObjectID", "ViewID", "Patch", "MinCatalogRevision"}},
			platformSemanticShape{listviewsemantic.MutateResponse{}, []string{"View", "Receipts"}},
		),
	},
}

// requirePlatformSemanticShape prevents Go minimal-version selection from
// silently pairing a future additive semantic root with this older mapper.
// The semantic packages are transport-free and independently released, so a
// mapper must fail closed when a represented struct gains, removes, renames,
// or reorders a fact it does not know how to project. Checks are isolated by
// capability so an unrelated semantic release cannot take healthy RPCs down.
func requirePlatformSemanticShape(capability string) error {
	return requirePlatformSemanticShapeFrom(platformSemanticShapeChecks, capability)
}

func requirePlatformSemanticShapeFrom(checks map[string]*platformSemanticShapeCheck, capability string) error {
	check, ok := checks[capability]
	if !ok || check == nil {
		return incompatibleFailureFor(platformCapability(capability))
	}
	check.once.Do(func() {
		check.ok = exactPlatformSemanticShapes(check.shapes)
	})
	if !check.ok {
		return incompatibleFailureFor(platformCapability(capability))
	}
	return nil
}

func exactPlatformSemanticShapes(shapes []platformSemanticShape) bool {
	for _, shape := range shapes {
		valueType := reflect.TypeOf(shape.value)
		if valueType.Kind() != reflect.Struct || valueType.NumField() != len(shape.fields) {
			return false
		}
		for index, field := range shape.fields {
			if valueType.Field(index).Name != field {
				return false
			}
		}
	}
	return true
}
