COMPO · 14.02 · SPATIAL COUNTERWEIGHT / SEMANTIC SUPPORT

Describe support.
Do not reward it yet.

14.02 измеряет пространственное отношение secondary к observed dominant-anchor set через явную reference frame, а semantic support и echo/repetition принимает только как owner-qualified evidence. Ни opposition, ни leverage, ни semantic relation, ни echo similarity здесь не превращаются в support score или competition flag.

ModuleCompo 14.02
Spatialdescriptor
Semanticowner-qualified
Echoevidence
Metricsnone
NextSTOP

Spatial and semantic evidence stay separate

00 / contract
14.00 relation seed + explicit spatial point evidence + explicit reference frame + explicit spatial-anchor policy → SpatialCounterweightDescriptor 14.00 relation seed + owner-qualified semantic evidence → SemanticSupportResolution 14.00 relation seed + owner-qualified feature similarity evidence → EchoRepetitionSupportDescriptor then: references + applicability only → SpatialSemanticSupportDescriptor NOT YET: competition / subordination → 14.03 support score / candidates → 14.04

Adapters and descriptors only

01 / ownership
OWNS

Spatial relation

Reference frame, dominant spatial anchor, opposition and radial leverage descriptors.

OWNS

Semantic / echo adapters

Owner-qualified relation evidence and feature-similarity evidence.

NO SCORE

No interpretation vote

owns_metrics=[]. 14.03 decides competition; 14.04 owns scoring.

SpatialPointEvidence

02 / foreign geometry adapter
SpatialPointEvidence {
  spatialPointEvidenceRef,

  dominanceScopeRef,
  subjectRef,

  geometryDescriptorRef,
  geometryOwnerRef,

  coordinateFrameRef,
  snapshotRef,

  x,
  y,

  confidence,
  provenance,
  status,
  mutationAllowed: false
}
No geometry recalculation.

14.02 consumes explicit point evidence. It does not decide centroids/bounds/optical centers of foreign subjects.

SpatialReferenceFrame

03 / no automatic center
SpatialReferenceFrame {
  spatialReferenceFrameRef,

  frameSourceRef,
  frameSourceOwnerRef,

  coordinateFrameRef,
  snapshotRef,

  referencePoint {x,y},
  normalizationScale,

  provenance,
  status,
  mutationAllowed: false
}
No default referencePoint. Forbidden defaults: canvas center viewport center optical center bounding-box center scene centroid normalizationScale: finite > 0 local descriptor normalization only

DominantSpatialAnchorDescriptor

04 / multi-leader safe
MethodMeaning
MEAN_POSITIONСредняя позиция observed leader subjects.
MASS_WEIGHTED_POSITIONПозиция, взвешенная explicit compatible mass evidence.
EXPLICIT_REFERENCE_LEADERПозиция одного явно названного observed leader.
anchorVector = anchorPoint - referencePoint anchorRadius = |anchorVector| No method is universal. MASS_WEIGHTED_POSITION: does not transfer visual-mass ownership. EXPLICIT_REFERENCE_LEADER: requires explicit policy.

SpatialCounterweightDescriptor

05 / direction + leverage
a = dominantAnchorPoint - referencePoint s = secondaryPoint - referencePoint directionOppositionCosine = - dot(a,s) ───────── |a||s| domain: [-1,1] 1: exactly opposite directions -1: same direction radialLeverageRatio = |s| / |a| domain: [0,+∞) IMPORTANT: 1 is not “good” -1 is not “bad” leverage 1 is not “ideal”

SemanticSupportEvidence

06 / owner-qualified meaning
RelationMeaning
SUPPORTSExplicit semantic source says secondary supports/reinforces named leaders.
ELABORATESExpands/explains dominant content.
ECHOESSemantically echoes/repeats dominant content.
CONTEXTUALIZESProvides context.
NEUTRALExplicitly neutral.
CONFLICTSExplicit semantic conflict evidence — not yet a 14.03 competition flag.
UNSPECIFIEDExplicit no-commitment, distinct from missing evidence.
SemanticSupportEvidence {
  semanticSupportEvidenceRef,

  dominanceScopeRef,

  secondarySubjectRef,
  targetDominantSubjectRefs[],

  relationKind,

  semanticEvidenceSourceRef,
  semanticEvidenceSourceOwnerRef,

  semanticIntentRefs[],

  confidence,
  provenance,
  status,
  mutationAllowed: false
}

EchoRepetitionEvidence

07 / similarity adapter
EchoRepetitionEvidence {
  echoRepetitionEvidenceRef,

  dominanceScopeRef,

  secondarySubjectRef,
  targetDominantSubjectRefs[],

  featureKind,

  sourceFeatureRef,
  targetFeatureRef,

  featureMatcherOwnerRef,
  similarityMethodRef,
  similarityContextRef,

  similarity,
  snapshotRef,

  confidence,
  provenance,
  status,
  mutationAllowed: false
}
similarity ∈ [0,1] similarity 1 != support score 1 similarity 1 != semantic support No universal similarity threshold.

SpatialSemanticSupportDescriptor

08 / references + applicability only
SpatialSemanticSupportDescriptor {
  spatialSemanticSupportDescriptorRef,

  secondaryMassRelationSeedRef,
  secondaryCandidateRef,
  secondarySubjectRef,

  dominantSubjectRefs[],

  declaredFunctionKinds[],

  spatialCounterweightDescriptorRef?,
  semanticSupportResolutionRef?,
  echoRepetitionSupportDescriptorRef?,

  functionApplicability {
    COUNTERWEIGHT,
    SPATIAL_SUPPORT,
    SEMANTIC_SUPPORT,
    ECHO_REPETITION,
    GENERAL_SUPPORT
  },

  status,
  reasonCode,
  mutationAllowed: false
}
No hidden aggregate.

The combined descriptor only joins explicit descriptor references and applicability. There is no supportScore here.

SpatialSemanticSupportSet

09 / one descriptor per relation
SpatialSemanticSupportSet {
  spatialSemanticSupportSetRef,

  dominanceScopeRef,
  dominanceAnchorBindingRef,
  secondaryCandidateSetRef,

  dominantSpatialAnchorDescriptorRef,

  descriptorRefs[],
  secondarySubjectRefs[],

  coordinateFrameRef,
  snapshotRef,

  status,
  reasonCode,
  mutationAllowed: false
}

Derived attachments, not mutation

10 / immutable chain
SecondaryMassRelationSpatialSemanticAttachment {
  secondaryMassRelationSpatialSemanticAttachmentRef,

  secondaryMassRelationSeedRef,
  spatialSemanticSupportDescriptorRef,

  status,
  mutationAllowed: false
}

SecondarySupportSystemSpatialSemanticAttachment {
  secondarySupportSystemSpatialSemanticAttachmentRef,

  secondarySupportSystemSeedRef,
  spatialSemanticSupportSetRef,
  relationSpatialSemanticAttachmentRefs[],

  status,
  mutationAllowed: false
}

Missing declared evidence is N_A, not zero support

11 / status semantics
CaseResult
Missing point evidenceN_A
Frame/snapshot mismatchINVALID
Dominant anchor exactly at reference pointN_A for directional counterweight
Secondary exactly at reference pointDirectional counterweight N_A
Declared SEMANTIC_SUPPORT with no evidenceN_A
Explicit semantic UNSPECIFIEDOK evidence, not missing
Semantic evidence conflictOK + conflict=true; no auto-resolution
Declared ECHO_REPETITION with no evidenceN_A
GENERAL_SUPPORT onlyNo specialized positive support invented

Frame, evidence owner and method are identity-bearing

12 / lineage
spatialPointEvidenceRef = hash( scope + subject + foreign geometry descriptor/owner + frame + snapshot + x + y ) spatialReferenceFrameRef = hash( source/owner + frame + snapshot + referencePoint + normalizationScale ) semanticSupportEvidenceRef = hash( scope + secondary + target leader set + relationKind + source/owner + semantic refs ) echoRepetitionEvidenceRef = hash( scope + secondary + target leader set + feature refs + matcher owner + method/context + similarity + snapshot )

Descriptor is not judgment

13 / firewalls
Forbidden shortcuts

opposition=1 → good; leverage=1 → ideal; SUPPORTS → score 1; CONFLICTS → competition flag; echo similarity → semantic support; canvas center → default reference.

Preserved

explicit reference frame; multi-leader-safe anchor; owner-qualified semantics; feature-matcher ownership; no score; no competition classification; N_A != 0.

Topic14 chain

14 / integration
OwnerRole
Topic13Observed dominance / leader set.
14.00Secondary roles, intents, candidates and relation seeds.
14.01Secondary-to-dominant weight ratios.
14.02Spatial counterweight, semantic support and echo/repetition evidence.
14.03Competition detection / subordination.
14.04Scoring, candidates and final tests.
Compo18Generic hierarchy/subordination graph remains separate.

Evidence problem → owner-qualified correction request

15 / correction
SpatialSemanticSupportCorrectionRequest {
  requestRef,

  targetOwnerRef,
  reasonCode,

  subjectRef?,

  evidenceRefs[],
  suggestedAction,

  status,
  mutationAllowed: false
}

CANON → LAB → DATA → IDEAS

16 / mandatory hooks
IDEAS_REFS[]7 R&D refs retained.
DATA_CAPTURE[]frame, spatial descriptors, semantic relations, echo similarities.
DEFERRED_SEMANTIC_INPUTS[]desirability and target bands stay downstream.
HUMAN_FEEDBACK_HOOKS[]counterweight/semantic/echo judgments.
CONFLICT_PRIORITY_ASSUMPTIONS[]confidence/order are not priority.
LAB_HOOKS[]human counterweight/support studies.

Visual laboratory hook

17 / explicit reference point
EXPLICIT REFERENCE POINT · NO AUTOMATIC CANVAS CENTER referencePoint DOMINANT SECONDARY directionOppositionCosine describes direction only. radialLeverageRatio describes radius only. Neither is support quality.

14.02 regression suite

18 / deterministic tests

Tests cover explicit reference frames, multi-leader spatial anchors, opposition/leverage formulas, degenerate vectors, semantic support evidence/resolution, semantic conflict preservation, echo/repetition adapters, declared-intent applicability, no score, no competition inference and immutable attachments.

Tests not run yet.

DATA FOR LAYOUT ENGINE

19 / machine contract
{
  "module": "Compo 14.02",
  "name": "spatial_counterweight_and_semantic_support",
  "version": "1.0-canonical",
  "canonical_main_title": "Spatial counterweight and semantic support",
  "topic": "14_ВТОРИЧНЫЕ_МАССЫ_И_ПОДДЕРЖКА",
  "scope": "EXPLICIT_SPATIAL_REFERENCE_FRAME_COUNTERWEIGHT_DESCRIPTORS_SEMANTIC_SUPPORT_EVIDENCE_ECHO_REPETITION_EVIDENCE_AND_RELATION_SUPPORT_ATTACHMENT_ONLY",
  "main_topic_contract": {
    "topic_title": "Вторичные массы и поддержка",
    "topic_goal": "Описывает вторичные массы как поддержку доминанты: counterweight, spatial support, echo/repetition и контроль конкуренции с главным элементом.",
    "expected_output": "SecondaryMassRelation[], support score, competition flags",
    "planned_files": [
      "14.00 Secondary role system",
      "14.01 Secondary-to-dominant weight ratios",
      "14.02 Spatial counterweight and semantic support",
      "14.03 Competition detection / subordination",
      "14.04 Scoring, candidates and tests"
    ]
  },
  "ownership": {
    "owner": "Compo14.02",
    "owns": [
      "SpatialPointEvidence adapter",
      "SpatialReferenceFrame",
      "DominantSpatialAnchorMethod taxonomy",
      "DominantSpatialAnchorPolicy",
      "DominantSpatialAnchorDescriptor",
      "SpatialCounterweightDescriptor",
      "SemanticSupportRelationKind taxonomy",
      "SemanticSupportEvidence",
      "SemanticSupportResolution",
      "EchoRepetitionEvidence adapter",
      "EchoRepetitionSupportDescriptor",
      "SpatialSemanticSupportDescriptor",
      "SpatialSemanticSupportSet",
      "SecondaryMassRelationSpatialSemanticAttachment",
      "SecondarySupportSystemSpatialSemanticAttachment",
      "identity/status/provenance rules for Topic14 spatial/semantic support layer",
      "non-mutating correction request for spatial/semantic/echo evidence or policy"
    ],
    "does_not_own": [
      "foreign geometry / subject position calculation",
      "visual mass calculation — Compo4",
      "secondary role evidence / support intent / relation seed — Compo14.00",
      "secondary-to-dominant weight ratios — Compo14.01",
      "observed dominance / focal ranking / leader-set identity — Compo13",
      "semantic interpretation source ownership outside this adapter",
      "feature-similarity calculation for echo/repetition",
      "competition detection / subordination — Compo14.03",
      "support scoring / candidate generation / final tests — Compo14.04",
      "generic hierarchy/subordination graph — Compo18",
      "global balance ownership",
      "global semantic priority",
      "foreign geometry or layout mutation"
    ]
  },
  "consumes": [
    "valid Compo14.00 DominanceAnchorBinding",
    "valid Compo14.00 SecondaryCandidateSet",
    "valid Compo14.00 SecondaryMassRelationSeed[]",
    "valid Compo14.01 SecondaryWeightRatioSet when available as optional evidence",
    "explicit owner-qualified subject point evidence",
    "explicit SpatialReferenceFrame",
    "explicit DominantSpatialAnchorPolicy",
    "explicit owner-qualified SemanticSupportEvidence[]",
    "explicit owner-qualified EchoRepetitionEvidence[]"
  ],
  "provides": [
    "SpatialPointEvidence",
    "SpatialReferenceFrame",
    "DominantSpatialAnchorPolicy",
    "DominantSpatialAnchorDescriptor",
    "SpatialCounterweightDescriptor",
    "SemanticSupportEvidence",
    "SemanticSupportResolution",
    "EchoRepetitionEvidence",
    "EchoRepetitionSupportDescriptor",
    "SpatialSemanticSupportDescriptor",
    "SpatialSemanticSupportSet",
    "SecondaryMassRelationSpatialSemanticAttachment",
    "SecondarySupportSystemSpatialSemanticAttachment",
    "Topic14.02 observation record"
  ],
  "owns_metrics": [],
  "metric_ownership_note": "14.02 owns numeric spatial descriptors and owner-qualified semantic/echo descriptors, but no MetricResult score, no support score, no competition flag and no independent numeric vote.",
  "spatial_point_evidence_schema": {
    "spatialPointEvidenceRef": "stable identity",
    "dominanceScopeRef": "scope",
    "subjectRef": "dominant or secondary subject",
    "geometryDescriptorRef": "foreign owner-qualified geometry/position descriptor",
    "geometryOwnerRef": "foreign geometry owner",
    "coordinateFrameRef": "exact shared coordinate frame",
    "snapshotRef": "exact snapshot",
    "x": "finite coordinate when OK",
    "y": "finite coordinate when OK",
    "confidence": "finite 0..1; evidence confidence only",
    "provenance": "canonical provenance class",
    "status": "OK|N_A|INVALID",
    "mutationAllowed": false,
    "firewall": "14.02 reads positions and never recalculates or mutates foreign geometry"
  },
  "spatial_reference_frame_schema": {
    "spatialReferenceFrameRef": "stable identity",
    "frameSourceRef": "explicit source",
    "frameSourceOwnerRef": "owner",
    "coordinateFrameRef": "must match point evidence",
    "snapshotRef": "must match point evidence",
    "referencePoint": "{x,y} finite",
    "normalizationScale": "finite >0; used only for dimensionless spatial descriptors",
    "provenance": "canonical provenance class",
    "status": "OK|INVALID",
    "mutationAllowed": false,
    "default": "NONE — no automatic canvas center, centroid, optical center or viewport center"
  },
  "dominant_spatial_anchor_method_taxonomy": {
    "MEAN_POSITION": "arithmetic mean of observed leader positions",
    "MASS_WEIGHTED_POSITION": "weighted leader position using explicit Compo14.01-compatible leader mass evidence",
    "EXPLICIT_REFERENCE_LEADER": "position of one explicitly named observed leader"
  },
  "dominant_spatial_anchor_policy_schema": {
    "dominantSpatialAnchorPolicyRef": "stable identity",
    "policySourceRef": "explicit source",
    "policySourceOwnerRef": "owner",
    "method": "MEAN_POSITION|MASS_WEIGHTED_POSITION|EXPLICIT_REFERENCE_LEADER",
    "explicitReferenceLeaderSubjectRef": "required only for EXPLICIT_REFERENCE_LEADER",
    "requiredCoordinateFrameRef": "exact frame",
    "requiredSnapshotRef": "exact snapshot",
    "massWeightSourceRef": "required only for MASS_WEIGHTED_POSITION; must be explicit compatible mass evidence source",
    "provenance": "canonical provenance class",
    "status": "OK|INVALID",
    "mutationAllowed": false,
    "default": "NONE — no universal dominant spatial anchor method"
  },
  "dominant_spatial_anchor_descriptor_schema": {
    "dominantSpatialAnchorDescriptorRef": "stable identity",
    "dominanceScopeRef": "scope",
    "dominanceAnchorBindingRef": "14.00 observed anchor",
    "spatialReferenceFrameRef": "reference frame",
    "dominantSpatialAnchorPolicyRef": "explicit policy",
    "leaderSubjectRefs": "exact leader set",
    "leaderPointEvidenceRefs": "one point evidence per leader",
    "anchorPoint": "{x,y}",
    "anchorVectorFromReference": "{x,y}",
    "anchorRadius": "distance(referencePoint, anchorPoint)",
    "anchorRadiusNormalized": "anchorRadius / normalizationScale",
    "coordinateFrameRef": "exact frame",
    "snapshotRef": "exact snapshot",
    "confidence": "minimum contributing evidence confidence",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "spatial anchor is a local counterweight reference and does not re-rank Topic13 or redefine visual dominance"
  },
  "spatial_counterweight_descriptor_schema": {
    "spatialCounterweightDescriptorRef": "stable identity",
    "secondaryMassRelationSeedRef": "14.00 relation",
    "dominantSpatialAnchorDescriptorRef": "anchor descriptor",
    "spatialReferenceFrameRef": "reference frame",
    "secondaryPointEvidenceRef": "secondary position",
    "secondarySubjectRef": "subject",
    "dominantSubjectRefs": "full observed leader set",
    "secondaryVectorFromReference": "{x,y}",
    "secondaryRadius": "distance(referencePoint, secondaryPoint)",
    "secondaryRadiusNormalized": "secondaryRadius / normalizationScale",
    "directionOppositionCosine": "-dot(anchorVector,secondaryVector)/(norm(anchorVector)*norm(secondaryVector)); domain [-1,1]",
    "radialLeverageRatio": "secondaryRadius / anchorRadius; domain [0,+∞) when anchorRadius>0",
    "confidence": "minimum anchor/secondary evidence confidence",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "opposition/leverage are descriptors only; no universal threshold says they are good support"
  },
  "semantic_support_relation_kind_taxonomy": {
    "SUPPORTS": "explicit semantic evidence says secondary supports/reinforces at least the named dominant target set",
    "ELABORATES": "explicit semantic evidence says secondary expands/explains dominant content",
    "ECHOES": "explicit semantic evidence says secondary semantically echoes/repeats dominant content",
    "CONTEXTUALIZES": "explicit semantic evidence says secondary provides context",
    "NEUTRAL": "explicit semantic evidence says no support/conflict commitment",
    "CONFLICTS": "explicit semantic evidence says semantic conflict exists; this is evidence, not a 14.03 competition flag",
    "UNSPECIFIED": "explicit source makes no semantic-support commitment; distinct from missing evidence"
  },
  "semantic_support_evidence_schema": {
    "semanticSupportEvidenceRef": "stable identity",
    "dominanceScopeRef": "scope",
    "secondarySubjectRef": "secondary subject",
    "targetDominantSubjectRefs": "explicit non-empty canonical subset of observed leader subjects",
    "relationKind": "SUPPORTS|ELABORATES|ECHOES|CONTEXTUALIZES|NEUTRAL|CONFLICTS|UNSPECIFIED",
    "semanticEvidenceSourceRef": "explicit semantic relation source",
    "semanticEvidenceSourceOwnerRef": "semantic owner",
    "semanticIntentRefs": "optional opaque refs",
    "confidence": "finite 0..1; evidence confidence only",
    "provenance": "canonical provenance class",
    "status": "OK|N_A|INVALID",
    "mutationAllowed": false,
    "firewall": "14.02 consumes owner-qualified semantic relation evidence and does not infer semantic meaning from text, geometry, visual mass or attention"
  },
  "semantic_support_resolution_schema": {
    "semanticSupportResolutionRef": "stable identity",
    "secondaryMassRelationSeedRef": "relation",
    "secondarySubjectRef": "subject",
    "dominantSubjectRefs": "full anchor set",
    "evidenceRefs": "canonical usable evidence set",
    "resolvedRelations": "canonical set of relationKind + targetDominantSubjectRefs groups when non-conflicting",
    "conflict": "true when equivalent target sets receive incompatible relation kinds from usable evidence",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "confidence": "minimum evidence confidence when non-conflicting; null on conflict/N_A",
    "mutationAllowed": false,
    "firewall": "confidence/source order/module order cannot resolve semantic-evidence conflict"
  },
  "echo_repetition_evidence_schema": {
    "echoRepetitionEvidenceRef": "stable identity",
    "dominanceScopeRef": "scope",
    "secondarySubjectRef": "secondary subject",
    "targetDominantSubjectRefs": "explicit non-empty subset of anchor leaders",
    "featureKind": "explicit feature family identifier",
    "sourceFeatureRef": "secondary feature ref",
    "targetFeatureRef": "dominant/anchor feature ref",
    "featureMatcherOwnerRef": "foreign feature/similarity owner",
    "similarityMethodRef": "exact method/model",
    "similarityContextRef": "exact comparison context",
    "similarity": "finite 0..1 when OK",
    "snapshotRef": "exact snapshot",
    "confidence": "finite 0..1",
    "provenance": "canonical provenance class",
    "status": "OK|N_A|INVALID",
    "mutationAllowed": false,
    "firewall": "14.02 consumes similarity evidence and does not calculate feature matching itself"
  },
  "echo_repetition_support_descriptor_schema": {
    "echoRepetitionSupportDescriptorRef": "stable identity",
    "secondaryMassRelationSeedRef": "relation",
    "secondarySubjectRef": "subject",
    "dominantSubjectRefs": "full anchor",
    "echoEvidenceRefs": "usable evidence",
    "featureKinds": "canonical feature set",
    "similaritiesByFeatureKind": "raw owner-qualified similarities",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "confidence": "minimum evidence confidence",
    "mutationAllowed": false,
    "firewall": "similarity is not support score; no universal similarity threshold is introduced"
  },
  "spatial_semantic_support_descriptor_schema": {
    "spatialSemanticSupportDescriptorRef": "stable identity",
    "secondaryMassRelationSeedRef": "14.00 relation",
    "secondaryCandidateRef": "candidate",
    "secondarySubjectRef": "subject",
    "dominantSubjectRefs": "full anchor",
    "declaredFunctionKinds": "copied from 14.00 relation seed",
    "spatialCounterweightDescriptorRef": "descriptor or null",
    "semanticSupportResolutionRef": "descriptor or null",
    "echoRepetitionSupportDescriptorRef": "descriptor or null",
    "functionApplicability": "map of COUNTERWEIGHT/SPATIAL_SUPPORT/SEMANTIC_SUPPORT/ECHO_REPETITION/GENERAL_SUPPORT -> APPLICABLE|N_A",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "combined descriptor aggregates references/applicability only; it does not aggregate them into a support score"
  },
  "spatial_semantic_support_set_schema": {
    "spatialSemanticSupportSetRef": "stable identity",
    "dominanceScopeRef": "scope",
    "dominanceAnchorBindingRef": "anchor",
    "secondaryCandidateSetRef": "candidate set",
    "dominantSpatialAnchorDescriptorRef": "shared spatial anchor",
    "descriptorRefs": "one combined descriptor per relation seed",
    "secondarySubjectRefs": "candidate subjects",
    "coordinateFrameRef": "shared frame",
    "snapshotRef": "shared snapshot",
    "status": "OK|N_A|INVALID",
    "reasonCode": "explicit",
    "mutationAllowed": false,
    "firewall": "set remains descriptor-only; no support-quality ordering or competition classification"
  },
  "relation_spatial_semantic_attachment_schema": {
    "secondaryMassRelationSpatialSemanticAttachmentRef": "stable identity",
    "secondaryMassRelationSeedRef": "exact 14.00 relation",
    "spatialSemanticSupportDescriptorRef": "exact 14.02 descriptor",
    "status": "OK",
    "mutationAllowed": false,
    "firewall": "derived attachment never mutates 14.00 relation seed"
  },
  "system_spatial_semantic_attachment_schema": {
    "secondarySupportSystemSpatialSemanticAttachmentRef": "stable identity",
    "secondarySupportSystemSeedRef": "exact 14.00 system seed",
    "spatialSemanticSupportSetRef": "exact 14.02 set",
    "relationSpatialSemanticAttachmentRefs": "canonical set",
    "status": "OK",
    "mutationAllowed": false,
    "firewall": "derived attachment never mutates 14.00 system seed"
  },
  "spatial_formula": {
    "anchorVector": "a = anchorPoint - referencePoint",
    "secondaryVector": "s = secondaryPoint - referencePoint",
    "opposition": "directionOppositionCosine = -dot(a,s)/(|a||s|)",
    "oppositionDomain": "[-1,1] when |a|>0 and |s|>0",
    "leverage": "radialLeverageRatio = |s|/|a|",
    "leverageDomain": "[0,+∞) when |a|>0",
    "anchorAtReference": "|a|=0 => opposition/leverage N_A",
    "secondaryAtReference": "|s|=0 => opposition N_A; radialLeverageRatio=0 remains definable only if anchorRadius>0",
    "firewall": "no clamp, no preferred opposition/leverage target and no conversion to score in 14.02"
  },
  "status_policy": {
    "missingLeaderPointEvidence": "N_A",
    "missingSecondaryPointEvidence": "N_A",
    "coordinateFrameMismatch": "INVALID",
    "snapshotMismatch": "INVALID",
    "referenceFrameMissing": "N_A",
    "anchorAtReferencePoint": "N_A for opposition/leverage interpretation",
    "secondaryAtReferencePoint": "opposition N_A; radial leverage may be 0 but combined spatial descriptor remains N_A because directional counterweight is undefined",
    "missingDeclaredSemanticEvidence": "N_A when SEMANTIC_SUPPORT is declared",
    "explicitSemanticUnspecified": "OK evidence; distinct from missing semantic evidence",
    "semanticEvidenceConflict": "OK + conflict=true descriptor; not auto-resolved",
    "missingDeclaredEchoEvidence": "N_A when ECHO_REPETITION is declared",
    "generalSupportOnly": "N_A for specialized spatial/semantic/echo descriptors; no generic positive support is invented",
    "supportSetIncomplete": "N_A; no silent partial set",
    "N_A_not_zero": true
  },
  "critical_firewalls": [
    "foreign geometry ownership remains foreign",
    "14.02 does not recalculate subject positions",
    "visual mass ownership remains Compo4",
    "secondary role/support-intent ownership remains Compo14.00",
    "weight-ratio ownership remains Compo14.01",
    "dominance ownership remains Compo13",
    "spatial counterweight descriptor != support score",
    "spatial counterweight descriptor != competition flag",
    "directionOppositionCosine != support score",
    "radialLeverageRatio != support score",
    "directionOppositionCosine 1 != proven good support",
    "directionOppositionCosine -1 != proven bad support",
    "radialLeverageRatio 1 != ideal support",
    "no universal opposition threshold",
    "no universal leverage threshold",
    "no automatic canvas center",
    "no automatic optical center",
    "reference point must be explicit",
    "MEAN_POSITION != universal dominant anchor method",
    "MASS_WEIGHTED_POSITION != universal dominant anchor method",
    "EXPLICIT_REFERENCE_LEADER requires explicit policy",
    "co-dominant anchor does not require choosing one primary leader",
    "MASS_WEIGHTED_POSITION does not redefine visual-mass ownership",
    "spatial anchor != focal rank",
    "spatial anchor != visual dominance",
    "semantic support evidence != inferred meaning",
    "semantic support evidence != support score",
    "semantic relation CONFLICTS != competition flag",
    "semantic relation SUPPORTS != positive support score",
    "UNSPECIFIED semantic evidence != missing semantic evidence",
    "semantic evidence confidence != semantic truth",
    "semantic evidence confidence cannot resolve semantic conflict",
    "semanticIntentRefs remain opaque",
    "echo similarity != support score",
    "echo similarity != semantic support",
    "echo similarity 1 != proven good support",
    "no universal echo similarity threshold",
    "feature matching ownership remains foreign",
    "combined spatial/semantic descriptor != support score",
    "combined descriptor != independent numeric vote",
    "descriptor count != support strength",
    "missing declared evidence => N_A, not zero support",
    "N_A != 0",
    "competition detection / subordination is deferred to 14.03",
    "competition flags are deferred to 14.03",
    "support scoring / candidate generation / final tests are deferred to 14.04",
    "14.02 owns no MetricResult",
    "14.02 owns no independent numeric vote",
    "relation attachment != relation-seed mutation",
    "system attachment != system-seed mutation",
    "generic hierarchy/subordination graph remains Compo18 territory",
    "global balance is not owned by 14.02",
    "local != global",
    "descriptor != score",
    "module execution order != rule priority",
    "correction request != foreign mutation",
    "no universal beautyScore",
    "IDEA != CANON",
    "EXPERIMENT != CANON"
  ],
  "identity_policy": {
    "spatialPointEvidenceRef": "hash(scope, subject, geometry descriptor/owner, frame, snapshot, x, y, provenance)",
    "spatialReferenceFrameRef": "hash(source/owner, coordinateFrameRef, snapshotRef, referencePoint, normalizationScale, provenance)",
    "dominantSpatialAnchorPolicyRef": "hash(source/owner, method, explicit reference leader?, required frame/snapshot, massWeightSourceRef?, provenance)",
    "dominantSpatialAnchorDescriptorRef": "hash(scope, anchor, frame, policy, leader point evidence refs, anchorPoint, confidence)",
    "spatialCounterweightDescriptorRef": "hash(relation, spatial anchor, frame, secondary point evidence, opposition, leverage)",
    "semanticSupportEvidenceRef": "hash(scope, secondary, target leader set, relationKind, source/owner, semantic refs, provenance)",
    "semanticSupportResolutionRef": "hash(relation, usable evidence refs, resolved relation groups, conflict, status)",
    "echoRepetitionEvidenceRef": "hash(scope, secondary, target leader set, feature kind, source/target feature refs, matcher owner, method/context, similarity, snapshot, provenance)",
    "echoRepetitionSupportDescriptorRef": "hash(relation, echo evidence refs, feature kinds, similarities, status)",
    "spatialSemanticSupportDescriptorRef": "hash(relation, declared function kinds, spatial/semantic/echo descriptor refs, function applicability)",
    "spatialSemanticSupportSetRef": "hash(scope, anchor, candidate set, spatial anchor, descriptor refs, frame, snapshot)",
    "secondaryMassRelationSpatialSemanticAttachmentRef": "hash(relation seed, combined descriptor)",
    "secondarySupportSystemSpatialSemanticAttachmentRef": "hash(system seed, support set, relation attachments)",
    "excluded_from_identity": [
      "display label",
      "display color",
      "free-form comment"
    ]
  },
  "correction_request_schema": {
    "requestRef": "stable identity",
    "targetOwnerRef": "geometry/frame/semantic/feature-matcher/policy owner",
    "reasonCode": "SPATIAL_POINT_WRONG|REFERENCE_FRAME_WRONG|SPATIAL_ANCHOR_POLICY_WRONG|SEMANTIC_SUPPORT_EVIDENCE_WRONG|SEMANTIC_SUPPORT_CONFLICT|ECHO_EVIDENCE_WRONG|ECHO_METHOD_WRONG|ECHO_CONTEXT_WRONG",
    "subjectRef": "subject or null for frame/policy issue",
    "evidenceRefs": "canonical refs",
    "suggestedAction": "non-mutating review request",
    "status": "OPEN|INVALID",
    "mutationAllowed": false
  },
  "deferred_downstream": {
    "14.03": [
      "competition detection",
      "subordination violations",
      "secondary-over-dominant inversion flags",
      "interpretation of weight/spatial/semantic/echo descriptors as competition evidence under explicit policy"
    ],
    "14.04": [
      "target support profiles",
      "component/composite support scoring",
      "candidate generation/variation",
      "final correction synthesis",
      "consolidated Topic14 tests"
    ]
  },
  "IDEAS_REFS": [
    "IDEA-01 full human test after all 72 topics; collect perceived spatial counterweight and semantic support judgments",
    "IDEA-02 semantics needed before placement; semantic support uses owner-qualified evidence and opaque refs",
    "IDEA-03 explicit rule priorities; spatial/semantic evidence does not become hidden global priority",
    "IDEA-04 collect structured data for future composition model",
    "IDEA-05 preserve reasons for human corrections",
    "IDEA-06 structured machine-readable layer for website",
    "IDEA-07 graphics-for-post-text research remains downstream/separate"
  ],
  "DATA_CAPTURE": [
    "sceneRef",
    "dominanceScopeRef",
    "dominanceAnchorBindingRef",
    "secondaryCandidateSetRef",
    "secondaryMassRelationSeedRefs[]",
    "spatialReferenceFrameRef",
    "dominantSpatialAnchorPolicyRef",
    "dominantSpatialAnchorDescriptorRef",
    "leaderPointEvidenceRefs[]",
    "secondaryPointEvidenceRefs[]",
    "directionOppositionCosineBySubject",
    "radialLeverageRatioBySubject",
    "semanticSupportEvidenceRefs[]",
    "semanticSupportResolutionRefs[]",
    "semanticRelationKindsBySubject",
    "semanticConflictFlagsBySubject",
    "echoRepetitionEvidenceRefs[]",
    "echoRepetitionDescriptorRefs[]",
    "echoSimilaritiesBySubjectAndFeature",
    "spatialSemanticSupportDescriptorRefs[]",
    "spatialSemanticSupportSetRef",
    "humanReasonCodes[]",
    "future competitionSubordinationRefs[]",
    "future secondaryEvaluationRefs[]"
  ],
  "DEFERRED_SEMANTIC_INPUTS": [
    "semantic desirability of SUPPORTS/ELABORATES/ECHOES/CONTEXTUALIZES relations",
    "desired amount of spatial opposition",
    "desired radial leverage",
    "desired amount/type of echo/repetition",
    "global hierarchy priority",
    "future style-specific support target profiles"
  ],
  "HUMAN_FEEDBACK_HOOKS": [
    "SPATIAL_POINT_WRONG",
    "REFERENCE_POINT_WRONG",
    "NORMALIZATION_SCALE_WRONG",
    "SPATIAL_ANCHOR_METHOD_WRONG",
    "MASS_WEIGHTED_SPATIAL_ANCHOR_WRONG",
    "REFERENCE_LEADER_WRONG",
    "OPPOSITION_TOO_HIGH",
    "OPPOSITION_TOO_LOW",
    "LEVERAGE_TOO_HIGH",
    "LEVERAGE_TOO_LOW",
    "SEMANTIC_SUPPORT_RELATION_WRONG",
    "SEMANTIC_TARGET_LEADER_SET_WRONG",
    "SEMANTIC_SUPPORT_CONFLICT_WRONG",
    "SEMANTIC_UNSPECIFIED_SHOULD_NOT_BE_MISSING",
    "ECHO_FEATURE_KIND_WRONG",
    "ECHO_SIMILARITY_TOO_HIGH",
    "ECHO_SIMILARITY_TOO_LOW",
    "ECHO_METHOD_WRONG",
    "ECHO_CONTEXT_WRONG",
    "COMBINED_SUPPORT_DESCRIPTOR_SHOULD_NOT_BE_SCORE"
  ],
  "CONFLICT_PRIORITY_ASSUMPTIONS": [
    "module execution order is not priority",
    "point/semantic/echo confidence is not global priority",
    "spatial-anchor method is local policy, not global hierarchy priority",
    "semantic evidence source order cannot resolve semantic conflict",
    "echo feature order is non-semantic",
    "future reviewed global conflict-priority owner remains authoritative"
  ],
  "LAB_HOOKS": [
    "human study: perceived counterweight versus directionOppositionCosine",
    "human study: perceived counterweight versus radialLeverageRatio",
    "compare explicit reference points without declaring canvas center universal",
    "compare mean-position versus mass-weighted dominant spatial anchors in multi-leader scenes",
    "semantic support relation validation against human judgments",
    "echo/repetition similarity versus perceived supportive echo",
    "collect cases where strong spatial opposition harms composition despite looking like counterweight"
  ],
  "observation_record": {
    "moduleRef": "Compo14.02",
    "metricResults": [],
    "competitionSubordinationRefs": [],
    "secondaryEvaluationRefs": []
  },
  "stop_condition": "STOP after 14.02. Do not create 14.03 in this module."
}
VISITS / ...