COMPO · 9.01 · CELLS / MODULES / COORDINATE ADDRESSING

Cells,
modules &
addresses.

Atomic lattice layer Topic 9: one canonical Cell for every RowTrack × ColumnTrack pair, zero-based row/column addresses, deterministic row-major ordinals, stable geometry-versioned CellRef identity, orthogonal lattice neighbors and exact point classification across cells, gutters and row gaps. Gaps are not cells. Module is an alias of atomic Cell, not a second identity. Regions/merges/forbidden state, 2D occupancy, collision/reflow, placement candidates and scoring remain downstream.

ModuleCompo 9.01
Scopeatomic cells + addressing
Orderrow-major
Gapsnot cells
Metricsnone
Next9.02

Atomic cell = ColumnTrack × RowTrack

00 / module api

9.01 создаёт каноническую адресуемую 2D lattice из уже готовых X/Y tracks. Gutter/gap остаются spacing bands, а не cells.

CELL

One column × one row.

ADDRESS

Zero-based row + column.

NO STATE

No occupancy / forbidden / score.

ATOMIC ONLY. Multi-cell modules/regions не создаются в 9.01.

Zero-based canonical machine address

01 / CellAddress

One-based label может существовать только как UI-подпись.

CellAddress {
  rowIndex,
  columnIndex,

  addressKey:
    "r<row>:c<column>",

  ordinal:
    rowIndex * columnCount
    + columnIndex,

  displayLabel?:
    "R1C1" // presentation only
}
DISPLAY ≠ IDENTITY. `R1C1` нельзя молча парсить как canonical identity без явного adapter.

One identity, one atomic module

02 / Cell

`module` здесь — терминологический alias ячейки, а не новый объект с отдельным moduleRef.

Cell {
  cellRef,
  cellSetRef,

  modularGridRef,
  gridRef,

  columnGeometryRef,
  rowGeometryRef,

  address,
  moduleKind:
    ATOMIC_CELL,

  columnTrackRef,
  rowTrackRef,

  rect: {
    x0, y0,
    x1, y1
  },

  widthRaw,
  heightRaw,
  aspectRatio,

  neighborRefs,

  status,
  confidence,
  provenance
}

Gutters/gaps не входят

03 / cell geometry

Cell rectangle берёт только содержательные track intervals.

cell.x0 = column.x0 cell.x1 = column.x1 cell.y0 = row.y0 cell.y1 = row.y1 width = column.widthRaw height = row.heightRaw aspectRatio = width / height

Полный canonical address space

04 / CellSet

Семантически CellSet содержит rowCount×columnCount атомарных cells; реализация может быть eager или lazy.

CellSet {
  cellSetRef,

  modularGridRef,
  gridRef,
  columnGeometryRef,
  rowGeometryRef,

  rowCount,
  columnCount,
  cellCount,

  canonicalOrder:
    ROW_MAJOR_TOP_TO_BOTTOM_LEFT_TO_RIGHT,

  cells[],

  status,
  confidence,
  provenance
}
cellCount = rowCount * columnCount

Address ↔ ordinal

05 / ordinal mapping

Отображение биективно внутри одного CellSet.

ordinal = rowIndex * columnCount + columnIndex rowIndex = floor( ordinal / columnCount ) columnIndex = ordinal % columnCount

TOP / RIGHT / BOTTOM / LEFT

06 / lattice neighbors

Neighbor — топологическая смежность индексов. Positive gaps не отменяют lattice adjacency.

neighborRefs {
  TOP:    CellRef | null,
  RIGHT:  CellRef | null,
  BOTTOM: CellRef | null,
  LEFT:   CellRef | null
}
NEIGHBOR ≠ TOUCHING. Две соседние cells могут быть физически разделены gutter или row-gap.

Точная классификация lattice

07 / point lookup

Point locator адресует не только cells, но и spacing bands.

COLUMN + ROW → CELL GUTTER + ROW → COLUMN_GUTTER_BAND COLUMN + ROW_GAP → ROW_GAP_BAND GUTTER + ROW_GAP → GAP_INTERSECTION OUTSIDE any axis → OUTSIDE_DOMAIN

Half-open internal intervals

08 / boundary policy

Чтобы одна координата не принадлежала двум tracks, используется детерминированная boundary policy.

internal interval: [start, end) final interval on axis: [start, domainMax] No hidden snapping. No fuzzy ownership transfer.
EXACT LOOKUP. Tolerance-based alignment остаётся задачей Topic 10.

Spacing остаётся structural evidence

09 / gaps are not cells

Пересечение row-gap и gutter тоже не создаёт микрочейку.

COLUMN GUTTER

Вертикальная spacing band между atomic column cells.

ROW GAP

Горизонтальная spacing band между atomic row cells.

NO GAP CELLS. `GAP_INTERSECTION` — классификация пространства, а не CellRef.

Eager или lazy — identity одна

10 / storage semantics

Полный Cartesian row×column здесь является самой canonical lattice, а не candidate search.

semantic address space: complete implementation: eager Cell[] OR lazy resolver OR streamed materialization must preserve: CellRef addressKey ordinal rect neighbors

Cell existence ≠ state

11 / ownership firewalls

9.01 заканчивается на atomic topology/geometry.

QuestionOwner
Columns/gutters?8.01
ColumnGrid nodes/node occupancy?8.02
Rows/row gaps/ModularGrid root?9.00
Atomic Cell + addressing?9.01
Merged/Region/forbidden?9.02
Cell/region occupancy/collision/reflow?9.03
Variants/scoring?9.04

Geometry version creates new CellSet

12 / recompute

Cell identities version-sensitive через parent geometry refs.

columnGeometryRef changes → new cellSetRef → recompute 9.01 → invalidate 9.02 / 9.03 / 9.04 rowGeometryRef changes → new cellSetRef → recompute 9.01 → invalidate 9.02 / 9.03 / 9.04 mutationAllowed = false

Cell shape — не качество

13 / descriptor != score

Aspect ratio и cell count пока только descriptors.

FORBIDDEN. `square cells = better`, `more cells = more flexible`, `four neighbors = stronger module` — без explicit target это не scoring semantics.

Visual Lab

14 / visual lab

Показываем atomic cells, gaps и deterministic addressing.

A · ROW-MAJOR CELLS r0:c0r0:c1r0:c2 ordinal: 0,1,2 then 3,4,5... B · GAP LOOKUP gutter / row-gap / gap intersection C · NEIGHBORS lattice adjacency, not contact Cell = exactly one ColumnTrack × one RowTrack gutter / row-gap bands are not cells and never receive CellRef machine address is zero-based · display label may be one-based but noncanonical point locator uses half-open internal intervals · no hidden snap tolerance Cell existence != occupancy != forbidden state != score merged regions → 9.02 · occupancy/collision/reflow → 9.03

9.01 cell/address regression

15 / deterministic tests

Проверяем row-major IDs, geometry, ordinals, neighbors, point lookup, gaps, boundary policy и ownership barriers.

Tests not run yet.

DATA FOR LAYOUT ENGINE

16 / machine contract

Machine-readable 9.01 contract.

{
  "module": "Compo 9.01",
  "name": "cells_modules_coordinate_addressing",
  "version": "1.0-canonical",
  "canonical_main_title": "Cells/modules, coordinate addressing",
  "topic": "09_МОДУЛЬНАЯ_СЕТКА_КОЛОНКИ_И_РЯДЫ",
  "scope": "ATOMIC_CELL_IDENTITY_ROW_COLUMN_ADDRESSING_GEOMETRY_POINT_CLASSIFICATION_AND_LATTICE_ADJACENCY",
  "review_basis": {
    "public_MAIN": "9.01 exact title confirmed; Topic9 output requires Cell[] and later Region[]/occupancy/candidates",
    "public_Core_0.00": "canonical public Core link could not be opened; no Core content invented",
    "previous_module": "Compo9.00 ModularGrid root + row geometry",
    "related_owners_reviewed": [
      "Compo8.01 ColumnTrack[] / GutterTrack[]",
      "Compo8.02 GridNode[] / ColumnGrid node occupancy",
      "Compo9.00 RowTrack[] / RowGapTrack[] / ModularGrid root"
    ]
  },
  "consumes": [
    "Compo9.00.ModularGrid",
    "Compo8.01.ResolvedColumnGeometry",
    "Compo9.00.ResolvedRowGeometry"
  ],
  "provides": [
    "CellAddress",
    "Cell",
    "Cell[]",
    "CellSet",
    "CellNeighborRefs",
    "PointLatticeLocation",
    "cellSetRef for Compo9.02 / Compo9.03 / Compo9.04"
  ],
  "owns_metrics": [],
  "descriptors_only": [
    "grid.modular.cell.rowIndex",
    "grid.modular.cell.columnIndex",
    "grid.modular.cell.ordinal",
    "grid.modular.cell.x0Raw",
    "grid.modular.cell.x1Raw",
    "grid.modular.cell.y0Raw",
    "grid.modular.cell.y1Raw",
    "grid.modular.cell.widthRaw",
    "grid.modular.cell.heightRaw",
    "grid.modular.cell.aspectRatio",
    "grid.modular.cell.addressKey",
    "grid.modular.cell.neighborCount"
  ],
  "cell_address_schema": {
    "rowIndex": "zero-based integer 0..rowCount-1",
    "columnIndex": "zero-based integer 0..columnCount-1",
    "addressKey": "r<rowIndex>:c<columnIndex>",
    "ordinal": "rowIndex*columnCount+columnIndex",
    "displayLabel": "optional noncanonical one-based label e.g. R1C1",
    "canonical_identity": "rowIndex,columnIndex,addressKey; displayLabel is presentation only"
  },
  "cell_schema": {
    "cellRef": "stable derived ref scoped to cellSetRef + canonical addressKey",
    "cellSetRef": "parent set identity",
    "modularGridRef": "Compo9.00 root",
    "gridRef": "source ColumnGrid",
    "columnGeometryRef": "Compo8.01 geometry lineage",
    "rowGeometryRef": "Compo9.00 row geometry lineage",
    "address": "CellAddress",
    "moduleKind": "ATOMIC_CELL",
    "moduleAlias": "CELL",
    "columnTrackRef": "exact parent ColumnTrack",
    "rowTrackRef": "exact parent RowTrack",
    "rect": "x0,x1 from column; y0,y1 from row",
    "widthRaw": "x1-x0",
    "heightRaw": "y1-y0",
    "aspectRatio": "widthRaw/heightRaw descriptor only",
    "neighborRefs": "TOP|RIGHT|BOTTOM|LEFT refs or null",
    "status": "OK",
    "confidence": "minimum parent/root confidence",
    "provenance": "DERIVED",
    "occupancy": "not owned / absent",
    "score": "not owned / absent"
  },
  "cell_set_schema": {
    "cellSetRef": "cell-set:<modularGridRef>:<columnGeometryRef>:<rowGeometryRef>",
    "modularGridRef": "same root",
    "gridRef": "same source ColumnGrid",
    "columnGeometryRef": "exact inherited geometry version",
    "rowGeometryRef": "exact row geometry version",
    "rowCount": "from ResolvedRowGeometry",
    "columnCount": "from ResolvedColumnGeometry",
    "cellCount": "rowCount*columnCount",
    "canonicalOrder": "ROW_MAJOR_TOP_TO_BOTTOM_LEFT_TO_RIGHT",
    "cells": "conceptually complete atomic Cell[]",
    "status": "OK|INVALID",
    "confidence": "0..1",
    "provenance": "DERIVED"
  },
  "cell_geometry_formula": {
    "x0": "column.x0",
    "x1": "column.x1",
    "y0": "row.y0",
    "y1": "row.y1",
    "width": "column.widthRaw",
    "height": "row.heightRaw",
    "aspectRatio": "widthRaw/heightRaw",
    "important": "gutter widths and row-gap heights are excluded from cell rectangles"
  },
  "ordinal_addressing": {
    "forward": "ordinal = rowIndex*columnCount + columnIndex",
    "inverse_row": "floor(ordinal/columnCount)",
    "inverse_column": "ordinal % columnCount",
    "range": "0..cellCount-1",
    "ordering": "row-major"
  },
  "neighbor_semantics": {
    "TOP": "rowIndex-1, same column if rowIndex>0",
    "RIGHT": "same row, columnIndex+1 if <columnCount-1",
    "BOTTOM": "rowIndex+1, same column if <rowCount-1",
    "LEFT": "same row, columnIndex-1 if columnIndex>0",
    "diagonal": "not direct neighbor in baseline",
    "geometric_contact": "not implied; gutters/gaps may create physical separation"
  },
  "point_lattice_location_schema": {
    "status": "OK|INVALID",
    "classification": "CELL|COLUMN_GUTTER_BAND|ROW_GAP_BAND|GAP_INTERSECTION|OUTSIDE_DOMAIN",
    "xTrackKind": "COLUMN|GUTTER|OUTSIDE",
    "yTrackKind": "ROW|ROW_GAP|OUTSIDE",
    "columnIndex": "when xTrackKind=COLUMN",
    "gutterIndex": "when xTrackKind=GUTTER",
    "rowIndex": "when yTrackKind=ROW",
    "rowGapIndex": "when yTrackKind=ROW_GAP",
    "cellRef": "only when classification=CELL",
    "boundaryPolicy": "HALF_OPEN_INTERNAL_FINAL_MAX_INCLUSIVE",
    "snapTolerance": "NONE"
  },
  "point_location_policy": {
    "x_axis_partition": "ColumnTrack and GutterTrack intervals from Compo8.01",
    "y_axis_partition": "RowTrack and RowGapTrack intervals from Compo9.00",
    "internal_intervals": "[start,end)",
    "final_axis_interval": "includes exact domain maximum",
    "classification_matrix": {
      "COLUMN + ROW": "CELL",
      "GUTTER + ROW": "COLUMN_GUTTER_BAND",
      "COLUMN + ROW_GAP": "ROW_GAP_BAND",
      "GUTTER + ROW_GAP": "GAP_INTERSECTION",
      "any OUTSIDE": "OUTSIDE_DOMAIN"
    },
    "hidden_snap": "FORBIDDEN"
  },
  "storage_policy": {
    "semantic_cell_set": "complete rowCount*columnCount address space",
    "implementation": "may materialize eagerly, stream or resolve lazily",
    "invariant": "storage strategy cannot change refs/addresses/ordinals/geometry/neighbors",
    "candidate_cartesian_rule": "not applicable: CellSet is the canonical lattice itself, not a candidate search space"
  },
  "ownership_map": {
    "8.01": "ColumnTrack/GutterTrack geometry",
    "8.02": "GridLine/GridNode topology and ColumnGrid node occupancy",
    "9.00": "ModularGrid root and RowTrack/RowGapTrack geometry",
    "9.01": "atomic Cell identity, addressing, cell geometry, lattice adjacency, point classification",
    "9.02": "merged cells, Region[], forbidden cell/region semantics",
    "9.03": "2D cell/region occupancy, collision, reflow hooks, placement candidates",
    "9.04": "variants, hard filter, local scoring, repairs/comparison/tests",
    "10.x": "alignment/proximity interpretation"
  },
  "semantic_firewalls": {
    "cell_vs_column_node": "CellRef/addressKey is not GridNodeRef and cannot alias Topic8 node identity",
    "cell_vs_region": "Cell is one atomic row×column module; multi-cell Region belongs to 9.02",
    "cell_vs_occupancy": "cell existence/geometry does not imply occupied/free state",
    "cell_vs_forbidden": "atomic Cell has no forbidden semantics in 9.01",
    "neighbor_vs_contact": "lattice neighbors may be physically separated by gutters/gaps",
    "point_location_vs_alignment": "point partition lookup is exact topology addressing, not tolerant alignment measurement",
    "aspect_ratio_vs_quality": "cell aspect ratio is descriptor only"
  },
  "metric_policy": {
    "direct_scoring": "FORBIDDEN in 9.01",
    "cell_count_score": "FORBIDDEN",
    "square_cell_score": "FORBIDDEN",
    "neighbor_count_score": "FORBIDDEN",
    "aspect_ratio_score_without_target": "FORBIDDEN",
    "beautyScore": "FORBIDDEN"
  },
  "hard_constraints": [
    "9.01 owns canonical atomic Cell[] identities, row×column coordinate addresses, row-major ordinals, atomic cell rectangles, point-to-lattice classification and atomic lattice-neighbor relations.",
    "Every atomic Cell is derived from exactly one Compo8.01 ColumnTrack and exactly one Compo9.00 RowTrack.",
    "Cell geometry is the Cartesian intersection of the selected ColumnTrack X interval and RowTrack Y interval; 9.01 does not alter either parent track.",
    "Column gutters and row gaps are structural spacing intervals and are not atomic cells.",
    "The canonical CellSet contains exactly rowCount * columnCount atomic cells for a valid rectangular ModularGrid.",
    "Cell materialization order is deterministic row-major: top-to-bottom rows, left-to-right columns.",
    "Canonical machine address is zero-based (rowIndex,columnIndex).",
    "Canonical addressKey is r<rowIndex>:c<columnIndex> and is derived only from zero-based indices.",
    "Optional human display labels may be one-based, but they are noncanonical presentation metadata and must never be parsed as machine identity without an explicit adapter.",
    "Cell ordinal is rowIndex * columnCount + columnIndex.",
    "Ordinal inversion is deterministic: rowIndex=floor(ordinal/columnCount), columnIndex=ordinal mod columnCount.",
    "CellRef identity must include cellSetRef and canonical zero-based address so a geometry-version change cannot alias an older Cell identity.",
    "CellSetRef must include ModularGrid lineage plus columnGeometryRef and rowGeometryRef.",
    "The semantic term module in 9.01 is an alias for one atomic Cell; it does not create a second module identity or moduleRef namespace.",
    "Merged modules or multi-cell regions are not owned by 9.01; Compo9.02 owns merged cells and Region[].",
    "Forbidden cell/region semantics are not owned by 9.01.",
    "Cell/region occupancy is not owned by 9.01; Compo9.03 owns the 2D occupancy map.",
    "Collision, reflow hooks and 2D placement candidate generation are not owned by 9.01.",
    "Variants and numeric scoring are not owned by 9.01.",
    "Canonical ColumnGrid GridNode identity and node occupancy remain owned by Compo8.02.",
    "Cell address is not GridNode identity and must never alias a Topic8 nodeRef.",
    "Lattice adjacency is index adjacency, not geometric contact; a positive gutter/row-gap may separate logical neighbors physically.",
    "Atomic neighbors are at most TOP, RIGHT, BOTTOM and LEFT; diagonals are not baseline direct neighbors.",
    "Point classification uses the complete row/column partition including gutters and row gaps.",
    "A point can classify as CELL, COLUMN_GUTTER_BAND, ROW_GAP_BAND, GAP_INTERSECTION or OUTSIDE_DOMAIN.",
    "Point classification must never silently snap a coordinate across a gap or boundary using a hidden tolerance.",
    "Internal interval lookup is half-open [start,end); the final interval on an axis includes the inherited domain maximum so every in-domain point has one deterministic axis classification.",
    "A point in a column gutter and row track is not assigned to either adjacent Cell.",
    "A point in a row gap and column track is not assigned to either adjacent Cell.",
    "A point at a gutter×row-gap crossing is GAP_INTERSECTION.",
    "Cell rectangle bounds may be used as geometry descriptors but do not imply occupancy, content placement or alignment quality.",
    "Cell aspect ratio is a descriptor only and is not a score.",
    "Square cells are not universally better.",
    "Cell count is not a quality score.",
    "9.01 may expose lazy/addressable implementation semantics, but conceptual CellSet identity and address space must remain complete and deterministic.",
    "Storage strategy must not change CellRef, addressKey, ordinal, geometry or neighbor semantics.",
    "N/A != 0.",
    "No beautyScore."
  ],
  "hard_rules": [
    "9.01 owns canonical atomic Cell[] identities, row×column coordinate addresses, row-major ordinals, atomic cell rectangles, point-to-lattice classification and atomic lattice-neighbor relations.",
    "Every atomic Cell is derived from exactly one Compo8.01 ColumnTrack and exactly one Compo9.00 RowTrack.",
    "Cell geometry is the Cartesian intersection of the selected ColumnTrack X interval and RowTrack Y interval; 9.01 does not alter either parent track.",
    "Column gutters and row gaps are structural spacing intervals and are not atomic cells.",
    "The canonical CellSet contains exactly rowCount * columnCount atomic cells for a valid rectangular ModularGrid.",
    "Cell materialization order is deterministic row-major: top-to-bottom rows, left-to-right columns.",
    "Canonical machine address is zero-based (rowIndex,columnIndex).",
    "Canonical addressKey is r<rowIndex>:c<columnIndex> and is derived only from zero-based indices.",
    "Optional human display labels may be one-based, but they are noncanonical presentation metadata and must never be parsed as machine identity without an explicit adapter.",
    "Cell ordinal is rowIndex * columnCount + columnIndex.",
    "Ordinal inversion is deterministic: rowIndex=floor(ordinal/columnCount), columnIndex=ordinal mod columnCount.",
    "CellRef identity must include cellSetRef and canonical zero-based address so a geometry-version change cannot alias an older Cell identity.",
    "CellSetRef must include ModularGrid lineage plus columnGeometryRef and rowGeometryRef.",
    "The semantic term module in 9.01 is an alias for one atomic Cell; it does not create a second module identity or moduleRef namespace.",
    "Merged modules or multi-cell regions are not owned by 9.01; Compo9.02 owns merged cells and Region[].",
    "Forbidden cell/region semantics are not owned by 9.01.",
    "Cell/region occupancy is not owned by 9.01; Compo9.03 owns the 2D occupancy map.",
    "Collision, reflow hooks and 2D placement candidate generation are not owned by 9.01.",
    "Variants and numeric scoring are not owned by 9.01.",
    "Canonical ColumnGrid GridNode identity and node occupancy remain owned by Compo8.02.",
    "Cell address is not GridNode identity and must never alias a Topic8 nodeRef.",
    "Lattice adjacency is index adjacency, not geometric contact; a positive gutter/row-gap may separate logical neighbors physically.",
    "Atomic neighbors are at most TOP, RIGHT, BOTTOM and LEFT; diagonals are not baseline direct neighbors.",
    "Point classification uses the complete row/column partition including gutters and row gaps.",
    "A point can classify as CELL, COLUMN_GUTTER_BAND, ROW_GAP_BAND, GAP_INTERSECTION or OUTSIDE_DOMAIN.",
    "Point classification must never silently snap a coordinate across a gap or boundary using a hidden tolerance.",
    "Internal interval lookup is half-open [start,end); the final interval on an axis includes the inherited domain maximum so every in-domain point has one deterministic axis classification.",
    "A point in a column gutter and row track is not assigned to either adjacent Cell.",
    "A point in a row gap and column track is not assigned to either adjacent Cell.",
    "A point at a gutter×row-gap crossing is GAP_INTERSECTION.",
    "Cell rectangle bounds may be used as geometry descriptors but do not imply occupancy, content placement or alignment quality.",
    "Cell aspect ratio is a descriptor only and is not a score.",
    "Square cells are not universally better.",
    "Cell count is not a quality score.",
    "9.01 may expose lazy/addressable implementation semantics, but conceptual CellSet identity and address space must remain complete and deterministic.",
    "Storage strategy must not change CellRef, addressKey, ordinal, geometry or neighbor semantics.",
    "N/A != 0.",
    "No beautyScore."
  ],
  "soft_constraints": [],
  "preferences": [],
  "overrides_allowed_by": [
    "a new columnGeometryRef or rowGeometryRef creates a new CellSet lineage",
    "historical CellSet/Cell refs remain immutable"
  ],
  "initial_heuristics": {},
  "style_preset_values": [],
  "candidate_generation": {
    "placement_candidates": "NONE",
    "reason": "atomic lattice materialization/addressing is canonical geometry, not placement candidate generation"
  },
  "correction_policy": {
    "foreign_content_mutation": "FORBIDDEN",
    "invalid_column_geometry": "route to Compo8.01",
    "invalid_row_geometry": "route to Compo9.00",
    "invalid_modular_root": "route to Compo9.00/integration owner",
    "merged_or_forbidden_request": "route to Compo9.02",
    "occupancy_collision_reflow_request": "route to Compo9.03",
    "variant_scoring_request": "route to Compo9.04",
    "alignment_tolerance_request": "route to Topic10"
  },
  "deferred_inputs": [
    "Compo9.02 Region/merge/forbidden contracts",
    "Compo9.03 occupancy/collision/reflow/candidate contracts",
    "Compo9.04 variant/scoring contracts",
    "Topic10 alignment/proximity tolerance"
  ],
  "recompute_when": [
    "modularGridRef changes",
    "columnGeometryRef changes",
    "rowGeometryRef changes",
    "rowCount/columnCount or any parent track bounds change"
  ],
  "tests": [
    "CellSet lineage",
    "row-major materialization",
    "address key and ordinal inversion",
    "cell geometry intersection",
    "cell count exact",
    "neighbors corners/edges/interior",
    "gutter exclusion",
    "row-gap exclusion",
    "point classification matrix",
    "domain max boundary",
    "outside domain",
    "no hidden snapping",
    "storage-invariant identity",
    "no occupancy/region/scoring ownership",
    "Topic8 node firewall",
    "determinism"
  ],
  "finality": "ATOMIC_CELL_IDENTITY_ADDRESSING_GEOMETRY_AND_LATTICE_LOOKUP_ONLY"
}
ARCHITECTURE CHECKPOINT · 9.01 OWNS ATOMIC CELL[] IDENTITY, ZERO-BASED ROW×COLUMN ADDRESSING, ROW-MAJOR ORDINALS, CELL RECTANGLES, ORTHOGONAL LATTICE NEIGHBORS AND EXACT POINT-TO-LATTICE CLASSIFICATION. CELL = ONE COMPO8.01 COLUMNTRACK × ONE COMPO9.00 ROWTRACK. COLUMN GUTTERS AND ROW GAPS ARE STRUCTURAL SPACING BANDS, NEVER CELLS. INTERNAL LOOKUP IS HALF-OPEN; FINAL DOMAIN MAX IS INCLUDED; NO HIDDEN SNAP TOLERANCE. MODULE IS AN ALIAS OF ATOMIC CELL, NOT A SECOND IDENTITY. LATTICE NEIGHBOR != GEOMETRIC CONTACT. GRIDNODE/NODE OCCUPANCY REMAIN 8.02. MERGED/REGION/FORBIDDEN → 9.02. 2D CELL/REGION OCCUPANCY, COLLISION, REFLOW, PLACEMENT CANDIDATES → 9.03. VARIANTS/SCORING → 9.04. CELL EXISTENCE != OCCUPANCY != QUALITY. NO BEAUTYSCORE.
VISITS / ...