COMPO · 25.00 · FLOW-TEMPLATE SCHEMA

Route identity first.
Fit later.

25.00 создаёт canonical root schema для типовых маршрутов: S/C/serpentine, L/Z, vertical, diagonal и owner-defined templates. Здесь фиксируются identity, path owner/frame lineage и traversal semantics. Геометрия конкретных шаблонов, object projection, coverage, gaps и scoring остаются downstream.

ModuleCompo 25.00
TopicFlow templates
Templatesexplicit only
Geometry fitdeferred
Metricsnone
Progress1 / 5 local

Template registration, not route judgment

Root contract deliberately stops before path realization and fit.

00 / contract
explicit template declaration + owner-qualified path binding + exact coordinate-frame lineage + explicit traversal semantics → FlowTemplate[] → FlowTemplateSet → FlowSystemSeed NO path geometry realization NO object projection NO route-fit descriptor NO ordered objects NO template selection NO score

Visual atlas of declared route families

The pictures explain vocabulary. They are not hidden geometric defaults.

01 / explainer

Curved family

25.00 knows only the declared kind/family. Exact curve geometry belongs to 25.01.

S_CURVE C_CURVE SERPENTINE

Angular / linear family

L/Z/vertical/diagonal labels are schema identities here. Their path realization belongs to 25.02.

L_PATH Z_PATH VERTICAL DIAGONAL
Critical: the SVGs are documentation examples only. 25.00 never reconstructs these shapes from labels. Concrete geometry is owned by 25.01 and 25.02.

One owner per layer

25.00 owns the schema and exact lineage; downstream modules own realization, projection and scoring.

02 / ownership
Owns

Root schema

FlowTemplate identity, kind/family, traversal, path binding, set policy, seed.

25.01–25.02

Path geometry

S/C/serpentine and L/Z/vertical/diagonal realization stays downstream.

25.03–25.04

Fit & score

Projection, coverage, gaps, ordered objects, selection and scoring are not produced here.

Canonical records

All foreign refs remain explicit and owner-qualified.

03 / schema
FlowCoordinateFrameBinding {
  scopeRef, snapshotRef,
  coordinateFrameRef,
  coordinateFrameOwnerRef, unitRef,
  status, provenance, mutationAllowed:false
}

FlowTemplateDeclaration {
  templateRef, templateKind, templateFamily,
  traversalMode, pathRef, pathOwnerRef,
  coordinateFrameRef, sourceRef, sourceOwnerRef,
  status, provenance, mutationAllowed:false
}
FlowTemplate {
  scopeRef, snapshotRef, templateRef,
  templateKind, templateFamily, traversalMode,
  pathRef, pathOwnerRef, coordinateFrameRef,
  geometryAttachmentRef:null,
  projectionAttachmentRef:null,
  routeFitDescriptorRef:null,
  orderedObjectRefs:[],
  scoreRef:null,
  status, mutationAllowed:false
}

Traversal is explicit semantics

No observed eye movement is inferred from template direction.

04 / traversal

DIRECTED traversal

Direction belongs to template semantics. It does not prove observed eye movement or reading order.

t=0t=1template traversal only

UNDIRECTED traversal

No intrinsic start/end is asserted. This still does not mean two-way attention.

no canonical start/end in 25.00
DIRECTED

Canonical t=0 → t=1

Allows downstream parameterized ordering, but does not itself order scene objects.

UNDIRECTED

No intrinsic direction

Still not a claim about two-way reading, attention or motion.

Kind, identity and binding stay separate

This prevents hidden merging and accidental double counting.

05 / identity

Template identity ≠ kind

Two S_CURVE declarations remain two templates when their templateRef/path binding differs.

template:A · S_CURVEtemplate:B · S_CURVE

Exact path binding is owner-qualified

pathRef alone is insufficient. Owner and coordinate frame remain part of lineage.

pathRef: p17owner: geometry-ApathRef: p17owner: geometry-Bsame string ref≠ same bindingowner + frame lineage must match exactly
same templateKind ≠ same template same pathRef + different pathOwnerRef ≠ same binding DIRECTED reverse ≠ silently equivalent request order ≠ template priority

Bounded explicit-only set

No Cartesian generation and no implicit route discovery.

06 / policy
RuleCanonical behavior
selectionModeEXPLICIT_TEMPLATES_ONLY
maxTemplates1..256
overflowN_A_WITHOUT_TRUNCATION
duplicate templateRefINVALID
duplicate exact path bindingN_A_NO_WINNER
auto discovery / geometry / ordering / selection / scoringfalse

Immutable root seed

Downstream attachments begin null and cannot mutate 25.00 records.

07 / seed
FlowSystemSeed {
  templateSetRef,
  curvedPathAttachmentRef: null,
  angularPathAttachmentRef: null,
  projectionCoverageAttachmentRef: null,
  selectionScoringAttachmentRef: null,
  metricResultRefs: [],
  status,
  mutationAllowed: false
}

Route descriptor ≠ quality

Topic 25 starts as topology/lineage, not aesthetic preference.

08 / firewalls
No shortcut

S ≠ better

S/C/L/Z names are identifiers, not universal compositional laws.

Topic24 firewall

Diagonal path ≠ diagonal composition

A DIAGONAL_PATH template does not own main/counter diagonal scene structure.

Topic26 firewall

Route ≠ rhythm

Path topology does not create interval/repetition semantics.

Topic27 firewall

Route ≠ eye-flow graph

Declared traversal is not observed attention sequence.

What 25.00 actually does

A compact visual pipeline from declaration to immutable seed.

09 / pipeline
1 · Explicit declarations

templateRef + kind/family + traversal + pathRef/pathOwnerRef + coordinateFrameRef.

→
2 · Exact validation

Identity, owner-qualified path binding, duplicate detection, maxTemplates bound.

→
3 · Root seed

FlowTemplateSet + immutable FlowSystemSeed. No geometry fit, no ordered objects, no score.

CANON → LAB → DATA → IDEAS

Empirical questions stay outside the canonical schema until evidence exists.

10 / hooks
IDEAS_REFS[]Route recognition, direction culture, multi-route competition.
DATA_CAPTURE[]Identity, kinds, owners, frames, traversal, conflicts.
DEFERRED_INPUTS[]Desirability, object order, coverage target, gap tolerance.
HUMAN_FEEDBACK[]Kind, owner/frame, traversal and duplicate corrections.
CONFLICT_RULES[]Confidence/order never silently resolve identity conflicts.
LAB_HOOKS[]Recognition, projection tolerance, reading-direction tests.

25.00 regression suite

Tests cover exact lineage, explicit-only selection, duplicate handling, traversal semantics, immutable seed, zero metrics and strict Topic24/26/27 + 25.01–25.04 boundaries.

11 / deterministic tests
Tests not run yet.

DATA FOR LAYOUT ENGINE

Machine-readable contract for integration and cross-module audit.

12 / machine contract
{
  "module": "Compo 25.00",
  "name": "flow_template_schema",
  "version": "1.0-canonical",
  "canonical_main_title": "Flow-template schema",
  "topic": "25_S_CURVE_L_STRUCTURE_AND_OTHER_ROUTES",
  "scope": "EXPLICIT_OWNER_QUALIFIED_FLOW_TEMPLATE_IDENTITY_PATH_BINDING_TRAVERSAL_SEMANTICS_BOUNDED_TEMPLATE_SET_AND_IMMUTABLE_ROOT_SEED_ONLY_WITHOUT_PATH_GEOMETRY_RESOLUTION_OBJECT_PROJECTION_COVERAGE_GAPS_TEMPLATE_SELECTION_OR_SCORING",
  "main_topic_contract": {
    "topic_title": "S-кривая, L-структура и другие маршруты",
    "topic_goal": "Хранит типовые маршруты S/C/L/Z и другие flow templates, чтобы сравнивать arrangement объектов с конкретной траекторией, а не оценивать движение абстрактно.",
    "expected_output": "FlowTemplate, route-fit descriptors, ordered objects",
    "planned_files": [
      "25.00 Flow-template schema",
      "25.01 S/C/serpentine paths",
      "25.02 L/Z/vertical/diagonal paths",
      "25.03 Object projection, coverage and gaps",
      "25.04 Template selection, scoring and tests"
    ]
  },
  "ownership": {
    "owner": "Compo25.00",
    "owns": [
      "FlowTemplateKind taxonomy",
      "FlowTraversalMode taxonomy",
      "FlowCoordinateFrameBinding",
      "FlowTemplateDeclaration",
      "FlowTemplate",
      "FlowTemplateSetPolicy",
      "FlowTemplateSet",
      "FlowSystemSeed root identity",
      "explicit template identity and exact path-owner/frame lineage",
      "explicit traversal direction semantics without object-order inference",
      "bounded explicit-only template registration",
      "identity/status/provenance rules for Topic25 root schema",
      "non-mutating correction request for template/path/frame declarations"
    ],
    "does_not_own": [
      "raw path geometry or curve fitting — upstream/path owners",
      "S/C/serpentine geometry realization — Compo25.01",
      "L/Z/vertical/diagonal geometry realization — Compo25.02",
      "object projection onto route — Compo25.03",
      "coverage, gaps or ordered-object derivation — Compo25.03",
      "template selection, target profile, MetricResult or scoring — Compo25.04",
      "diagonal-composition axis scoring — Topic24",
      "rhythm interval sequence semantics — Topic26",
      "eye-flow/attention graph semantics — Topic27",
      "dominance / hierarchy / beautyScore / final-layout ranking",
      "foreign geometry/style/semantic mutation"
    ]
  },
  "taxonomies": {
    "FlowTemplateKind": [
      "S_CURVE",
      "C_CURVE",
      "SERPENTINE",
      "L_PATH",
      "Z_PATH",
      "VERTICAL_PATH",
      "DIAGONAL_PATH",
      "OWNER_DEFINED"
    ],
    "FlowTraversalMode": [
      "DIRECTED",
      "UNDIRECTED"
    ],
    "FlowTemplateFamily": [
      "CURVED",
      "ANGULAR",
      "LINEAR",
      "OWNER_DEFINED"
    ]
  },
  "identity": {
    "template_identity": "scopeRef + snapshotRef + templateRef",
    "path_binding": "pathRef + pathOwnerRef + coordinateFrameRef",
    "same_kind_not_same_template": true,
    "same_path_ref_different_owner_not_same_binding": true,
    "directed_reverse_is_not_silently_equivalent": true
  },
  "policy": {
    "selectionMode": "EXPLICIT_TEMPLATES_ONLY",
    "maxTemplates": [
      1,
      256
    ],
    "overflow": "N_A_WITHOUT_TRUNCATION",
    "duplicateTemplateRef": "INVALID",
    "duplicateExactPathBinding": "N_A_NO_WINNER",
    "autoTemplateDiscovery": false,
    "autoPathGeometryInference": false,
    "autoObjectOrdering": false,
    "autoTemplateSelection": false,
    "autoScoring": false
  },
  "root_seed_contract": {
    "templateSetRef": "exact",
    "curvedPathAttachmentRef": null,
    "angularPathAttachmentRef": null,
    "projectionCoverageAttachmentRef": null,
    "selectionScoringAttachmentRef": null,
    "metricResultRefs": [],
    "mutationAllowed": false
  },
  "status_semantics": {
    "OK": "valid explicit identity and path/frame lineage",
    "N_A": "missing/conflicting/duplicate-equivalent/overflow evidence; never numeric zero",
    "INVALID": "malformed or impossible record; never numeric zero"
  },
  "firewalls": [
    "template kind != geometry realization",
    "template declaration != route fit",
    "DIRECTED traversal != observed reading order",
    "UNDIRECTED != bidirectional attention claim",
    "same kind != same template",
    "same pathRef with different owner != same binding",
    "template count != route strength",
    "S/C/L/Z labels != automatic scene preference",
    "diagonal path template != Topic24 diagonal composition axis",
    "route template != rhythm sequence",
    "route template != eye-flow graph",
    "N_A != 0",
    "INVALID != 0",
    "descriptor != score",
    "local != global"
  ],
  "visual_explanation": {
    "diagrams": [
      "template family atlas: S/C/L/Z/vertical/diagonal",
      "directed vs undirected traversal",
      "template identity vs path binding",
      "explicit-only bounded registration pipeline"
    ]
  },
  "ideas_data_hooks": {
    "IDEAS_REFS": [
      "perceived route preference by content type",
      "S vs C route discrimination",
      "directionality and reading culture",
      "route density vs perceived flow",
      "multi-route competition",
      "object skipping tolerance",
      "route-fit robustness under scale"
    ],
    "DATA_CAPTURE": [
      "template identity",
      "kind/family",
      "path owner/frame binding",
      "traversal mode",
      "declaration conflicts",
      "duplicate path-binding collisions",
      "set status"
    ],
    "DEFERRED_SEMANTIC_INPUTS": [
      "route desirability",
      "main template selection",
      "object order",
      "coverage target",
      "gap tolerance"
    ],
    "HUMAN_FEEDBACK_HOOKS": [
      "correct template kind",
      "correct path owner/frame",
      "withdraw duplicate template",
      "correct traversal semantics"
    ],
    "CONFLICT_PRIORITY_ASSUMPTIONS": [
      "confidence does not break contradictory identity",
      "request order is not template priority",
      "kind name is not score"
    ],
    "LAB_HOOKS": [
      "template recognition studies",
      "projection tolerance experiments",
      "reading-direction interactions",
      "route competition experiments"
    ]
  },
  "topic25ProgressAfterThisModule": "1/5 local",
  "next_module": "Compo 25.01 — S/C/serpentine paths",
  "hard_stop": "No 25.01–25.04 implementation in this file",
  "owns_metrics": [],
  "independent_numeric_votes": 0
}
VISITS / ...