COMPO · 9.02 · MERGED CELLS / REGIONS / FORBIDDEN CELLS

Merged cells,
regions &
forbidden.

Region layer Topic 9: explicit CellRef membership, strict rectangular MERGED_CELL semantics, generic CELL_REGION connectivity policies, dual region geometry views and a separate forbidden-constraint registry. Atomic Cell identity remains 9.01. FORBIDDEN never means OCCUPIED; absence of a prohibition means only UNRESTRICTED_BY_THIS_REGISTRY, not FREE. Occupancy/collision/reflow/candidates remain 9.03; variants/scoring remain 9.04.

ModuleCompo 9.02
Scoperegions / merge / forbidden
Mergerectangular complete
Forbiddenconstraint only
Metricsnone
Next9.03

Region поверх Cell, а не вместо Cell

00 / module api

9.02 группирует atomic CellRefs и добавляет constraint evidence. Atomic lattice 9.01 остаётся неизменной.

MERGED_CELL

Complete rectangular block.

CELL_REGION

Explicit cell set + connectivity policy.

FORBIDDEN

Constraint, not occupancy.

Membership всегда explicit

01 / RegionSpec

Region нельзя вывести из близости, цвета или одинакового контента.

RegionSpec {
  regionSpecRef,
  regionKind:
    MERGED_CELL |
    CELL_REGION,

  cellSetRef,
  memberCellRefs[],

  connectivityPolicy,
  footprintModel:
    CELL_UNION |
    SPAN_ENVELOPE,

  semanticRoleRef?,

  confidence,
  provenance
}

Rectangular completeness

02 / MERGED_CELL

Merge — это полный rectangular index block без дыр и без лишних atomic cells.

bounds: [rowStart, rowEndExclusive) × [columnStart, columnEndExclusive) expected members = every address inside bounds require: actual member set == expected member set memberCount >= 2
NO HOLES. L-shape или diagonal pair не являются MERGED_CELL.

Explicit topology policy

03 / CELL_REGION

Generic region не обязан быть прямоугольным.

ORTHOGONALLY_CONNECTED

Один connected component по TOP/RIGHT/BOTTOM/LEFT.

ANY_EXPLICIT_SET

Разрешает disconnected membership без утверждения единого контура.

DIAGONAL ≠ CONNECTED. Касание только углами не соединяет cells в baseline topology.

Union и envelope сохраняются раздельно

04 / region geometry

FootprintModel задаётся явно; membership от него не меняется.

CELL_UNION

Union atomic Cell rectangles. Internal gutters/row gaps исключены.

SPAN_ENVELOPE

Outer bounding rectangle. Может покрывать spacing bands между members.

ENVELOPE != MEMBERSHIP. Попавший внутрь envelope gutter не становится atomic Cell.

Merge exclusivity локальна

05 / overlap policy

Overlap semantics различаются по kind.

MERGED_CELL vs MERGED_CELL: shared CellRef → INVALID RegionSet CELL_REGION vs CELL_REGION: overlap allowed MERGED_CELL vs CELL_REGION: overlap allowed as distinct semantic evidence unless future explicit policy says otherwise

Constraint ≠ occupancy

06 / forbidden registry

Forbidden declaration говорит «сюда нельзя размещать», но ничего не говорит о текущей занятости.

ForbiddenDeclaration {
  declarationRef,

  declarationKind:
    FORBID_CELL |
    FORBID_REGION,

  cellSetRef,

  cellRef?,

  regionSetRef?,
  regionRef?,

  sourceOwnerRef,
  sourceEvidenceRef,

  reasonCode?,

  status:
    ACTIVE |
    INACTIVE,

  confidence,
  provenance
}

Три разных смысла

07 / forbidden cell state

Отсутствие запрета не превращается в FREE.

no registry: N_A registry exists + no active declaration: UNRESTRICTED_BY_THIS_REGISTRY >=1 active declaration: FORBIDDEN Important: UNRESTRICTED_BY_THIS_REGISTRY != FREE != globally ALLOWED

Expand exact versioned membership

08 / FORBID_REGION

Region declaration запрещает только member CellRefs указанной Region version.

FORBID_REGION regionRef ↓ current explicit memberCellRefs[] ↓ forbidden CellRefs Does NOT: infer cells from envelope include gutters/gaps follow future changed region version silently

No hidden precedence

09 / no allow override

Baseline 9.02 объединяет только запреты.

active forbids: union multiple forbids same cell: valid preserve all declarationRefs ALLOW override: not defined priority: not defined future permission policy: deferred

Region ≠ occupancy ≠ scoring

10 / ownership firewalls

9.02 заканчивается на topology/geometry/constraint evidence.

QuestionOwner
Atomic Cell identity/address?9.01
Region/merge/forbidden?9.02
Occupied/free/collision/reflow?9.03
Placement candidates?9.03
Variants/scoring?9.04
ColumnGrid node occupancy?8.02

Membership changes propagate

11 / invalidation

Region/constraint updates invalidируют downstream evidence, но не мутируют content.

CellSet changes → recompute 9.02 → invalidate 9.03 / 9.04 RegionSet changes → invalidate 9.03 / 9.04 Forbidden registry changes → invalidate 9.03 / 9.04 mutationAllowed = false

Topology не голосует

12 / descriptor != score

Rectangularity/connectivity/memberCount/forbiddenCount — descriptors.

FORBIDDEN. `rectangular = better`, `connected = better`, `larger region = stronger`, `fewer forbidden cells = better` — без explicit target это не scoring semantics.

Visual Lab

13 / visual lab

Показываем merge, generic region и forbidden constraint как разные слои.

A · MERGED RECTANGLE complete 2×2 membership B · GENERIC REGION connected L-shape, not merged cell C · FORBIDDEN ≠ OCCUPIED FORBIDDEN UNRESTRICTED neither state says occupied/free MERGED_CELL requires a complete rectangular block and >=2 atomic cells CELL_REGION can be connected or ANY_EXPLICIT_SET by explicit policy CELL_UNION excludes gaps · SPAN_ENVELOPE may cover them · membership unchanged FORBID_REGION expands member CellRefs, not envelope geometry FORBIDDEN != OCCUPIED · UNRESTRICTED != FREE occupancy/collision/reflow/candidates → 9.03 · variants/scoring → 9.04

9.02 region/forbidden regression

14 / deterministic tests

Проверяем merge rectangularity, generic connectivity, overlaps, footprints, forbidden expansion, N/A semantics и ownership barriers.

Tests not run yet.

DATA FOR LAYOUT ENGINE

15 / machine contract

Machine-readable 9.02 contract.

{
  "module": "Compo 9.02",
  "name": "merged_cells_regions_forbidden_cells",
  "version": "1.0-canonical",
  "canonical_main_title": "Merged cells, regions, forbidden cells",
  "topic": "09_МОДУЛЬНАЯ_СЕТКА_КОЛОНКИ_И_РЯДЫ",
  "scope": "REGION_IDENTITY_MERGED_CELL_RECTANGULARITY_REGION_GEOMETRY_AND_FORBIDDEN_CONSTRAINT_REGISTRY",
  "review_basis": {
    "public_MAIN": "9.02 exact title confirmed",
    "public_Core_0.00": "canonical public Core link could not be opened; no Core content invented",
    "previous_module": "Compo9.01 atomic Cell[] + addressing",
    "related_owners_reviewed": [
      "Compo9.00 ModularGrid root/rows",
      "Compo9.01 CellSet/CellRef/neighbor topology",
      "Compo8.02 ColumnGrid node occupancy"
    ]
  },
  "consumes": [
    "Compo9.00.ModularGrid",
    "Compo9.01.CellSet",
    "Compo9.01.Cell[] or lazy address resolver",
    "explicit RegionSpec[]",
    "optional explicit ForbiddenGridRegistrySpec"
  ],
  "provides": [
    "RegionSpec",
    "Region",
    "Region[]",
    "RegionSet",
    "RegionTopologyDescriptor",
    "RegionGeometryDescriptor",
    "ForbiddenDeclaration",
    "ForbiddenGridRegistrySpec",
    "ForbiddenCellState[]",
    "ForbiddenGridRegistry",
    "RegionInvalidationRequest"
  ],
  "owns_metrics": [],
  "descriptors_only": [
    "grid.modular.region.memberCount",
    "grid.modular.region.rowSpanCount",
    "grid.modular.region.columnSpanCount",
    "grid.modular.region.rectangularity",
    "grid.modular.region.connectedComponentCount",
    "grid.modular.region.outerEnvelope",
    "grid.modular.region.footprintModel",
    "grid.modular.forbidden.activeDeclarationCount",
    "grid.modular.forbidden.forbiddenCellCount"
  ],
  "region_spec_schema": {
    "regionSpecRef": "stable explicit ref",
    "regionKind": "MERGED_CELL|CELL_REGION",
    "cellSetRef": "exact Compo9.01 CellSet lineage",
    "memberCellRefs": "explicit unique non-empty CellRef[]",
    "connectivityPolicy": "RECTANGULAR_BLOCK for MERGED_CELL; ORTHOGONALLY_CONNECTED|ANY_EXPLICIT_SET for CELL_REGION",
    "footprintModel": "CELL_UNION|SPAN_ENVELOPE",
    "semanticRoleRef": "optional external role ref; no role inference",
    "confidence": "0..1",
    "provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|STYLE_PRESET"
  },
  "region_schema": {
    "regionRef": "region:<regionSetRef>:<regionSpecRef>",
    "regionSetRef": "parent RegionSet",
    "regionSpecRef": "source explicit spec",
    "regionKind": "MERGED_CELL|CELL_REGION",
    "cellSetRef": "same CellSet",
    "memberCellRefs": "canonical row-major order",
    "memberCount": "integer >=1; MERGED_CELL >=2",
    "rowStart": "minimum member rowIndex",
    "rowEndExclusive": "max rowIndex +1",
    "columnStart": "minimum member columnIndex",
    "columnEndExclusive": "max columnIndex +1",
    "rowSpanCount": "rowEndExclusive-rowStart",
    "columnSpanCount": "columnEndExclusive-columnStart",
    "rectangularity": "RECTANGULAR_COMPLETE|NON_RECTANGULAR",
    "connectedComponentCount": "orthogonal lattice components",
    "connectivity": "CONNECTED|DISCONNECTED",
    "memberCellUnion": "ordered list of atomic rectangles; gutters/gaps excluded",
    "outerEnvelope": "min/max member bounds; may include internal gaps/gutters",
    "footprintModel": "explicit CELL_UNION|SPAN_ENVELOPE",
    "effectiveFootprint": "derived descriptor according to footprintModel",
    "status": "OK",
    "confidence": "0..1",
    "provenance": "DERIVED",
    "occupancy": "not owned",
    "score": "not owned"
  },
  "merged_cell_semantics": {
    "required_kind": "MERGED_CELL",
    "member_count_min": 2,
    "required_connectivity": "RECTANGULAR_BLOCK",
    "expected_membership": "all CellRefs inside inclusive/exclusive row/column bounds",
    "holes": "INVALID",
    "extra_cells": "INVALID",
    "same_region_set_overlap": "FORBIDDEN between MERGED_CELL regions",
    "atomic_cell_identity": "preserved; merge creates Region identity rather than replacing member CellRefs"
  },
  "cell_region_semantics": {
    "member_count_min": 1,
    "ORTHOGONALLY_CONNECTED": "one component under TOP/RIGHT/BOTTOM/LEFT adjacency",
    "ANY_EXPLICIT_SET": "one or more components accepted",
    "overlap": "allowed between CELL_REGION regions",
    "diagonal_only": "disconnected under orthogonal connectivity"
  },
  "region_geometry_semantics": {
    "CELL_UNION": "effectiveFootprint is union/list of atomic member cell rectangles and excludes spacing bands",
    "SPAN_ENVELOPE": "effectiveFootprint is outer bounding envelope and can include spacing bands between members",
    "membership_vs_footprint": "footprint choice never changes memberCellRefs",
    "no_default": "footprintModel must be explicit"
  },
  "region_set_schema": {
    "regionSetRef": "region-set:<cellSetRef>:<explicit region set identity>",
    "cellSetRef": "one exact CellSet",
    "regions": "Region[] in regionSpecRef canonical order",
    "mergedCellRegionRefs": "subset",
    "cellRegionRefs": "subset",
    "status": "OK|INVALID",
    "confidence": "0..1",
    "provenance": "DERIVED"
  },
  "forbidden_declaration_schema": {
    "declarationRef": "stable unique ref",
    "declarationKind": "FORBID_CELL|FORBID_REGION",
    "cellSetRef": "same CellSet",
    "cellRef": "required for FORBID_CELL",
    "regionSetRef": "required for FORBID_REGION",
    "regionRef": "required for FORBID_REGION",
    "sourceOwnerRef": "required owner-qualified source",
    "sourceEvidenceRef": "required evidence ref",
    "reasonCode": "optional descriptive code",
    "status": "ACTIVE|INACTIVE",
    "confidence": "0..1",
    "provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|STYLE_PRESET"
  },
  "forbidden_registry_spec_schema": {
    "registryRef": "stable versioned ref",
    "cellSetRef": "same CellSet",
    "regionSetRef": "optional exact RegionSet lineage if region declarations exist",
    "declarations": "ForbiddenDeclaration[]",
    "confidence": "0..1",
    "provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|STYLE_PRESET",
    "allow_overrides": "NONE in baseline"
  },
  "forbidden_cell_state_semantics": {
    "missing_registry": "N_A",
    "registry_present_no_active_declaration": "UNRESTRICTED_BY_THIS_REGISTRY",
    "one_or_more_active_declarations": "FORBIDDEN",
    "inactive_declarations": "preserved as provenance but do not forbid",
    "meaning_warning": "UNRESTRICTED_BY_THIS_REGISTRY != FREE != globally ALLOWED"
  },
  "forbidden_registry_schema": {
    "registryRef": "same source registry ref",
    "cellSetRef": "same CellSet",
    "regionSetRef": "optional lineage",
    "cellStates": "one state per atomic Cell in row-major order",
    "activeDeclarations": "canonical declarationRef order",
    "inactiveDeclarations": "canonical declarationRef order",
    "forbiddenCellRefs": "row-major unique CellRefs",
    "status": "OK|N_A|INVALID",
    "confidence": "minimum relevant evidence confidence",
    "provenance": "DERIVED"
  },
  "ownership_map": {
    "8.02": "ColumnGrid GridNode identity and node occupancy",
    "9.01": "atomic Cell identity/address/geometry/neighbors",
    "9.02": "Region identity/merge/topology/geometry and forbidden constraints",
    "9.03": "2D cell/region occupancy, collision, reflow hooks, placement candidates",
    "9.04": "variants, hard filter, local scoring, repairs/comparison/tests"
  },
  "semantic_firewalls": {
    "merge_vs_cell_identity": "MERGED_CELL creates Region identity; member atomic CellRefs remain valid canonical identities",
    "region_vs_occupancy": "Region membership is geometry/topology, not occupied/free state",
    "forbidden_vs_occupancy": "FORBIDDEN is a placement constraint descriptor; OCCUPIED belongs to 9.03",
    "unrestricted_vs_free": "UNRESTRICTED_BY_THIS_REGISTRY is not FREE",
    "envelope_vs_membership": "SPAN_ENVELOPE may cover spacing bands but does not add those bands as member cells",
    "connected_vs_rectangular": "orthogonal connectivity does not imply rectangular completeness",
    "cell_region_overlap_vs_merge_overlap": "generic CELL_REGION overlap allowed; MERGED_CELL overlap invalid",
    "region_vs_grid_node": "Region membership uses CellRefs only and does not alias GridNode refs"
  },
  "metric_policy": {
    "direct_scoring": "FORBIDDEN in 9.02",
    "region_size_score": "FORBIDDEN",
    "rectangularity_score": "FORBIDDEN",
    "connected_is_better": "FORBIDDEN",
    "forbidden_count_score": "FORBIDDEN",
    "beautyScore": "FORBIDDEN"
  },
  "hard_constraints": [
    "9.02 owns Region[] identity, explicit atomic-cell membership, merged-cell rectangularity, region topology descriptors, region geometry views and forbidden-cell/forbidden-region constraint registry.",
    "Atomic Cell identity and cell geometry remain owned by Compo9.01 and must never be rewritten by 9.02.",
    "A Region is defined by explicit CellRef membership within one CellSet lineage.",
    "Region membership must use canonical CellRefs from exactly one CellSet; cross-CellSet membership is INVALID.",
    "Canonical member order is row-major by the member Cells' canonical ordinals.",
    "Duplicate CellRefs inside one region are INVALID rather than silently de-duplicated.",
    "Baseline Region kinds are MERGED_CELL and CELL_REGION.",
    "MERGED_CELL must cover a complete rectangular index block [rowStart,rowEndExclusive) × [columnStart,columnEndExclusive) with no holes and no extra cells.",
    "MERGED_CELL must contain at least two atomic cells; a one-cell merge is INVALID because the atomic Cell already owns that identity.",
    "Two MERGED_CELL regions in the same RegionSet must not share an atomic Cell; overlapping merged-cell membership is INVALID.",
    "CELL_REGION may overlap other CELL_REGION objects unless a future explicit exclusivity policy forbids it.",
    "CELL_REGION connectivityPolicy must be ORTHOGONALLY_CONNECTED or ANY_EXPLICIT_SET.",
    "ORTHOGONALLY_CONNECTED means every member cell belongs to one connected component using only 9.01 TOP/RIGHT/BOTTOM/LEFT lattice adjacency.",
    "Diagonal-only contact does not satisfy ORTHOGONALLY_CONNECTED.",
    "ANY_EXPLICIT_SET permits disconnected member sets but does not imply that disconnected pieces form one visual contour.",
    "Region geometry must preserve both memberCellUnion and outerEnvelope descriptors.",
    "memberCellUnion excludes column gutters and row gaps because its geometry is the union of atomic Cell rectangles.",
    "outerEnvelope spans min/max member-cell bounds and may include internal gutters/row gaps.",
    "RegionSpec must explicitly select footprintModel CELL_UNION or SPAN_ENVELOPE; 9.02 must not silently choose between them.",
    "SPAN_ENVELOPE is allowed for MERGED_CELL and CELL_REGION but does not convert internal gutter/gap space into atomic Cell membership.",
    "CELL_UNION is a possibly disconnected multi-rectangle footprint when the explicit member set is disconnected.",
    "Region bounds/index extents are descriptors and do not imply merged semantics unless regionKind=MERGED_CELL.",
    "Forbidden semantics are constraint evidence and are distinct from occupancy evidence.",
    "9.02 owns ForbiddenGridRegistry and ForbiddenDeclaration[]; 9.03 owns ModularGrid cell/region occupancy.",
    "A forbidden Cell or Region must never be encoded as OCCUPIED by 9.02.",
    "An unlisted Cell in an existing forbidden registry resolves as UNRESTRICTED_BY_THIS_REGISTRY, not FREE and not globally ALLOWED.",
    "If no forbidden registry is supplied, per-cell forbidden state is N_A, not UNRESTRICTED_BY_THIS_REGISTRY.",
    "Baseline forbidden declarations are FORBID_CELL and FORBID_REGION.",
    "FORBID_REGION expands to the explicit current member CellRefs of the referenced Region version.",
    "Forbidden declarations must be owner-qualified and evidence-qualified and may be ACTIVE or INACTIVE.",
    "Only ACTIVE forbidden declarations contribute to resolved forbidden state.",
    "Duplicate declarationRef values are INVALID.",
    "Unknown CellRef or RegionRef in a forbidden declaration is INVALID.",
    "Multiple active declarations may forbid the same Cell; this is valid convergent evidence and must preserve all declaration refs.",
    "There is no ALLOW override or priority mechanism in 9.02 baseline; contradictory permission policy is deferred rather than guessed.",
    "Forbidden reasonCode is descriptive provenance and is not a scoring dimension.",
    "Region area, member count, rectangularity, connectivity and forbidden counts are descriptors only.",
    "9.02 does not own collision, reflow, placement candidates or acceptance of content; Compo9.03 owns those.",
    "9.02 does not own variants or numeric scoring; Compo9.04 owns those.",
    "ColumnGrid node occupancy remains owned by Compo8.02.",
    "Region membership must not alias GridNode membership.",
    "No foreign mutation: repairs or diagnostics may request corrected RegionSpec/ForbiddenGridRegistry but 9.02 never mutates CellSet, content or occupancy.",
    "N/A != 0.",
    "No beautyScore."
  ],
  "hard_rules": [
    "9.02 owns Region[] identity, explicit atomic-cell membership, merged-cell rectangularity, region topology descriptors, region geometry views and forbidden-cell/forbidden-region constraint registry.",
    "Atomic Cell identity and cell geometry remain owned by Compo9.01 and must never be rewritten by 9.02.",
    "A Region is defined by explicit CellRef membership within one CellSet lineage.",
    "Region membership must use canonical CellRefs from exactly one CellSet; cross-CellSet membership is INVALID.",
    "Canonical member order is row-major by the member Cells' canonical ordinals.",
    "Duplicate CellRefs inside one region are INVALID rather than silently de-duplicated.",
    "Baseline Region kinds are MERGED_CELL and CELL_REGION.",
    "MERGED_CELL must cover a complete rectangular index block [rowStart,rowEndExclusive) × [columnStart,columnEndExclusive) with no holes and no extra cells.",
    "MERGED_CELL must contain at least two atomic cells; a one-cell merge is INVALID because the atomic Cell already owns that identity.",
    "Two MERGED_CELL regions in the same RegionSet must not share an atomic Cell; overlapping merged-cell membership is INVALID.",
    "CELL_REGION may overlap other CELL_REGION objects unless a future explicit exclusivity policy forbids it.",
    "CELL_REGION connectivityPolicy must be ORTHOGONALLY_CONNECTED or ANY_EXPLICIT_SET.",
    "ORTHOGONALLY_CONNECTED means every member cell belongs to one connected component using only 9.01 TOP/RIGHT/BOTTOM/LEFT lattice adjacency.",
    "Diagonal-only contact does not satisfy ORTHOGONALLY_CONNECTED.",
    "ANY_EXPLICIT_SET permits disconnected member sets but does not imply that disconnected pieces form one visual contour.",
    "Region geometry must preserve both memberCellUnion and outerEnvelope descriptors.",
    "memberCellUnion excludes column gutters and row gaps because its geometry is the union of atomic Cell rectangles.",
    "outerEnvelope spans min/max member-cell bounds and may include internal gutters/row gaps.",
    "RegionSpec must explicitly select footprintModel CELL_UNION or SPAN_ENVELOPE; 9.02 must not silently choose between them.",
    "SPAN_ENVELOPE is allowed for MERGED_CELL and CELL_REGION but does not convert internal gutter/gap space into atomic Cell membership.",
    "CELL_UNION is a possibly disconnected multi-rectangle footprint when the explicit member set is disconnected.",
    "Region bounds/index extents are descriptors and do not imply merged semantics unless regionKind=MERGED_CELL.",
    "Forbidden semantics are constraint evidence and are distinct from occupancy evidence.",
    "9.02 owns ForbiddenGridRegistry and ForbiddenDeclaration[]; 9.03 owns ModularGrid cell/region occupancy.",
    "A forbidden Cell or Region must never be encoded as OCCUPIED by 9.02.",
    "An unlisted Cell in an existing forbidden registry resolves as UNRESTRICTED_BY_THIS_REGISTRY, not FREE and not globally ALLOWED.",
    "If no forbidden registry is supplied, per-cell forbidden state is N_A, not UNRESTRICTED_BY_THIS_REGISTRY.",
    "Baseline forbidden declarations are FORBID_CELL and FORBID_REGION.",
    "FORBID_REGION expands to the explicit current member CellRefs of the referenced Region version.",
    "Forbidden declarations must be owner-qualified and evidence-qualified and may be ACTIVE or INACTIVE.",
    "Only ACTIVE forbidden declarations contribute to resolved forbidden state.",
    "Duplicate declarationRef values are INVALID.",
    "Unknown CellRef or RegionRef in a forbidden declaration is INVALID.",
    "Multiple active declarations may forbid the same Cell; this is valid convergent evidence and must preserve all declaration refs.",
    "There is no ALLOW override or priority mechanism in 9.02 baseline; contradictory permission policy is deferred rather than guessed.",
    "Forbidden reasonCode is descriptive provenance and is not a scoring dimension.",
    "Region area, member count, rectangularity, connectivity and forbidden counts are descriptors only.",
    "9.02 does not own collision, reflow, placement candidates or acceptance of content; Compo9.03 owns those.",
    "9.02 does not own variants or numeric scoring; Compo9.04 owns those.",
    "ColumnGrid node occupancy remains owned by Compo8.02.",
    "Region membership must not alias GridNode membership.",
    "No foreign mutation: repairs or diagnostics may request corrected RegionSpec/ForbiddenGridRegistry but 9.02 never mutates CellSet, content or occupancy.",
    "N/A != 0.",
    "No beautyScore."
  ],
  "soft_constraints": [],
  "preferences": [],
  "overrides_allowed_by": [
    "a newer explicit RegionSpec/RegionSet lineage creates new Region refs",
    "a newer forbidden registry creates new constraint state without mutating historical registry",
    "historical CellRefs remain immutable"
  ],
  "initial_heuristics": {},
  "style_preset_values": [],
  "candidate_generation": {
    "placement_candidates": "NONE",
    "reason": "9.02 defines region and forbidden constraint evidence only"
  },
  "correction_policy": {
    "foreign_content_mutation": "FORBIDDEN",
    "invalid_cell_ref": "route to 9.01/integration owner",
    "invalid_region_membership": "request RegionSpec correction",
    "overlapping_merged_cells": "request RegionSet correction",
    "invalid_forbidden_declaration": "request registry/source correction",
    "occupancy_collision_reflow_question": "route to 9.03",
    "variant_scoring_question": "route to 9.04"
  },
  "deferred_inputs": [
    "Compo9.03 cell/region occupancy, collision, reflow and placement candidates",
    "Compo9.04 variant/scoring contracts",
    "future permission/allow-override policy if required"
  ],
  "recompute_when": [
    "cellSetRef changes",
    "RegionSpec membership/kind/connectivity/footprint changes",
    "RegionSet changes",
    "ForbiddenGridRegistry declarations/status/refs change"
  ],
  "tests": [
    "RegionSpec validation",
    "row-major membership",
    "merged rectangular completeness",
    "merge holes invalid",
    "merge overlap invalid",
    "generic connected/disconnected policy",
    "geometry union vs envelope",
    "forbidden cell declaration",
    "forbidden region expansion",
    "inactive declarations",
    "duplicate/unknown declaration refs",
    "unrestricted != free",
    "missing registry N_A",
    "no occupancy/scoring ownership",
    "determinism/no mutation"
  ],
  "finality": "REGION_MERGE_GEOMETRY_AND_FORBIDDEN_CONSTRAINT_OWNER_ONLY"
}
ARCHITECTURE CHECKPOINT · 9.02 OWNS REGION[] IDENTITY, EXPLICIT CELLREF MEMBERSHIP, MERGED-CELL RECTANGULARITY, REGION TOPOLOGY/GEOMETRY VIEWS AND FORBIDDEN CONSTRAINT REGISTRY. ATOMIC CELL IDENTITY REMAINS 9.01. MERGED_CELL REQUIRES COMPLETE RECTANGULAR BLOCK, >=2 CELLS, NO HOLES, AND NO OVERLAP WITH ANOTHER MERGED_CELL IN THE SAME REGIONSET. CELL_REGION CONNECTIVITY IS EXPLICIT: ORTHOGONALLY_CONNECTED OR ANY_EXPLICIT_SET. CELL_UNION AND SPAN_ENVELOPE ARE DISTINCT EXPLICIT FOOTPRINT MODELS; ENVELOPE NEVER CHANGES MEMBERSHIP. FORBIDDEN != OCCUPIED. UNRESTRICTED_BY_THIS_REGISTRY != FREE. MISSING REGISTRY = N/A. FORBID_REGION EXPANDS EXACT VERSIONED MEMBER CELLREFS, NOT ENVELOPE SPACE. NO ALLOW OVERRIDE/PRIORITY IS INVENTED. 2D OCCUPANCY/COLLISION/REFLOW/CANDIDATES → 9.03. VARIANTS/SCORING → 9.04. COLUMNGRID NODE OCCUPANCY REMAINS 8.02. NO BEAUTYSCORE.
VISITS / ...