34.01 owns scale evidence binding and pairwise ratio derivation
34.00 tells us what the text subject semantically is. 34.01 adds explicit size evidence and compares subjects without ranking them.
Type size arrives as external evidence
34.01 preserves the measurement owner and unit. For headline subjects, this can be linked to 33.01 externally without re-owning headline font size.
Measurement owner → 34.01 evidence binding
Ratio describes a relation, not a hierarchy verdict
For example, 48/16 = 3 says only that one explicit type-size value is three times another in the same unit.
Explicit directed comparison
Pair orientation remains explicit
A→B and B→A are distinct directed ratio descriptors with inverse numeric values. Neither direction is a winner.
ratio = 3
A is structurally larger in this explicit comparison.
ratio = 0.333…
Inverse descriptor, same evidence pair.
Equal scale is a valid structural result
Two CAPTION or META subjects may have identical size. That does not create N_A, INVALID or a hierarchy failure.
Equal-size pair
Ratios require compatible units
34.01 refuses to compare PX against PT or REM against EM unless another owner has already normalized them into one explicit unit.
Ratio allowed
PX/PX, PT/PT, REM/REM, etc.
N_A
No silent conversion.
Name must match
Same enum alone is insufficient.
Semantic role and numeric size stay independent
34.01 does not encode the assumption that TITLE must always be larger than BODY.
Scale is only one hierarchy channel
Weight/style/case, color/contrast, readability/accessibility and ordering remain separate evidence families.
semantic roles
scale ratios
weight / style / case
color / contrast
readability / accessibility
multi-block ordering
scoring / tests
34.01 regression suite
Tests cover explicit size units, owner-defined units, measurement lineage, pair orientation, inverse ratios, equality, log2 scale steps, same-role comparisons, cross-unit N_A, zero-pair validity, bounded execution, 34.00 immutability and strict absence of ranking, normalization, graph construction and scoring.
DATA FOR LAYOUT ENGINE
Canonical machine contract for explicit type-scale evidence and pairwise hierarchy-ratio descriptors.
{
"module": "Compo 34.01",
"name": "type_scale_and_hierarchy_ratios",
"version": "1.0-canonical",
"canonical_main_title": "Type scale и hierarchy ratios",
"topic": "34_ТИПОГРАФИЧЕСКАЯ_ИЕРАРХИЯ",
"scope": "EXPLICIT_OWNER_QUALIFIED_TYPE_SIZE_EVIDENCE_AND_PAIRWISE_SCALE_RATIO_DESCRIPTORS_OVER_IMMUTABLE_34_00_TEXT_ROLE_SUBJECTS_WITHOUT_AUTOMATIC_HIERARCHY_RANK_WEIGHT_STYLE_CASE_COLOR_CONTRAST_READABILITY_ORDERING_OR_SCORING",
"main_topic_contract": {
"topic_title": "Типографическая иерархия",
"topic_goal": "Строит типографическую иерархию title/subtitle/body/caption/meta по scale, weight, case, color и порядку; отдельно фиксирует минимальную читаемость и accessibility constraints.",
"expected_output": "TextHierarchyGraph, type levels, hierarchy violations",
"planned_files": [
"34.00 Text role taxonomy",
"34.01 Type scale и hierarchy ratios",
"34.02 Weight / style / case hierarchy",
"34.03 Color / contrast hierarchy",
"34.04 Минимальная читаемость, size floors и accessibility constraints",
"34.05 Multi-block ordering",
"34.06 Scoring и tests"
]
},
"ownership": {
"owner": "Compo34.01",
"owns": [
"TypeScaleValueEvidenceBinding",
"TypeScalePairRequest",
"TypeScaleHierarchyPolicy",
"TypeScaleSubjectDescriptor",
"TypeScaleRatioDescriptor",
"TypeScaleDescriptorSet",
"TypeScaleAttachment",
"exact size-unit preservation",
"owner-qualified size-evidence lineage",
"pairwise numerator/denominator subject orientation",
"pairwise scale-ratio derivation",
"inverse-ratio derivation",
"equal-scale structural flag",
"larger/smaller structural direction",
"log2 scale-step descriptor",
"same-role cross-subject ratio semantics",
"same-subject pair rejection",
"bounded deterministic pair resolution",
"non-mutating correction request"
],
"does_not_own": [
"34.00 semantic text role",
"raw text content",
"text rendering",
"universal font-size measurement",
"33.01 headline font-size ownership",
"automatic font-size extraction",
"automatic unit conversion",
"automatic scale normalization across units",
"automatic hierarchy rank",
"automatic hierarchy level assignment",
"34.02 weight hierarchy",
"34.02 style hierarchy",
"34.02 case hierarchy",
"34.03 color hierarchy",
"34.03 contrast hierarchy",
"34.04 readability constraints",
"34.04 accessibility constraints",
"34.05 multi-block ordering",
"34.05 hierarchy graph construction",
"34.06 hierarchy scoring",
"34.06 hierarchy violation scoring",
"35 TextBlock geometry",
"36 typography spacing",
"37 text-image relation",
"automatic winner selection",
"foreign text-role mutation",
"foreign size-evidence mutation",
"universal beautyScore"
]
},
"size_units": [
"PX",
"CSS_PX",
"PT",
"REM",
"EM",
"OWNER_DEFINED"
],
"size_evidence_semantics": {
"meaning": "explicit positive type-size scalar supplied by an external measurement/style owner; 34.01 preserves evidence lineage and does not claim universal measurement ownership",
"subject_binding": "must reference one immutable 34.00 TextRoleDescriptor",
"value": "positive finite scalar",
"unit": "explicit and preserved",
"owner_defined_unit": "required only for OWNER_DEFINED",
"upstream_measurement_ref": "required owner-qualified source reference",
"headline_bridge": "a HEADLINE_REFERENCE subject may point to 33.00/33.01 lineage externally, but 34.01 does not re-own 33.01 font size"
},
"ratio_semantics": {
"request_orientation": "numeratorTextSubjectRef / denominatorTextSubjectRef",
"same_unit_required": true,
"ratio": "numerator size / denominator size",
"inverse_ratio": "denominator size / numerator size",
"equal_scale": "true only when numeric values are exactly equal within the same explicit unit",
"larger_subject_ref": "numerator if ratio>1; denominator if ratio<1; null if equal",
"smaller_subject_ref": "opposite of larger; null if equal",
"log2_scale_step": "log2(ratio)",
"ratio_is_hierarchy_rank": false,
"ratio_is_importance_score": false,
"ratio_is_readability_score": false,
"ratio_is_independent_vote": false
},
"compatibility_semantics": {
"34_00_subject": "must be immutable DECLARED_TYPOGRAPHIC_ROLE",
"scope_snapshot": "size evidence and pair requests must resolve under exact 34.00 scope/snapshot",
"units": "pairwise ratio requires exact same unit and same ownerDefinedUnit when OWNER_DEFINED",
"cross_unit_ratio": "N_A; no automatic conversion",
"same_role_pairs": "allowed",
"different_role_pairs": "allowed",
"same_subject_pair": "INVALID",
"role_labels": "preserved as descriptors only; ratio does not imply a canonical role order"
},
"policy": {
"request_mode": "EXPLICIT_TYPE_SCALE_PAIR_REQUESTS_ONLY",
"max_size_evidence": [
1,
131072
],
"max_pair_requests": [
0,
262144
],
"max_subjects": [
1,
131072
],
"overflow": "N_A_NO_TRUNCATION",
"duplicate_size_evidence_ref": "INVALID",
"duplicate_pair_request_ref": "INVALID",
"duplicate_subject_size_binding": "INVALID",
"duplicate_directed_pair_identity": "INVALID",
"auto_size_extraction": false,
"auto_unit_conversion": false,
"auto_scale_normalization": false,
"auto_pair_cartesian": false,
"auto_hierarchy_rank": false,
"auto_hierarchy_level": false,
"auto_role_ordering": false,
"auto_weight_style_case_hierarchy": false,
"auto_color_contrast_hierarchy": false,
"auto_readability_evaluation": false,
"auto_accessibility_evaluation": false,
"auto_multi_block_ordering": false,
"auto_hierarchy_graph": false,
"auto_scoring": false
},
"status_semantics": {
"OK": "explicit size evidence resolves for immutable 34.00 subjects; requested same-unit pair ratios are derived deterministically",
"N_A": "subject/evidence lineage is missing, scope/snapshot mismatches, requested pair uses incompatible units, or bounds overflow",
"INVALID": "malformed evidence/request/policy, unsupported unit, nonpositive size, duplicate identity, owner-defined unit missing, or same-subject pair",
"zero": "log2 scale step may legitimately be zero when sizes are equal; zero is never a sentinel for N_A"
},
"firewalls": [
"type size != hierarchy rank",
"scale ratio != hierarchy rank",
"scale ratio != semantic role order",
"scale ratio != visual importance score",
"scale ratio != readability score",
"scale ratio != independent vote",
"equal scale != hierarchy failure",
"larger type != automatically higher semantic role",
"TITLE larger than BODY != universal law",
"BODY larger than TITLE != automatically INVALID",
"same-role scale ratio != duplicate error",
"different-role scale ratio != hierarchy truth",
"log2 scale step != musical/modular scale law",
"34.01 preserves units; it does not normalize PX/PT/REM/EM",
"34.01 size evidence binding does not re-own 33.01 headline font size",
"34.01 does not mutate 34.00 semantic roles",
"34.01 does not assign 34.00 hierarchyRank",
"34.01 scale != 34.02 weight/style/case hierarchy",
"34.01 scale != 34.03 color/contrast hierarchy",
"34.01 scale != 34.04 readability/accessibility",
"34.01 ratio graph != 34.05 multi-block ordering",
"34.01 ratio descriptor != 34.06 score",
"34.01 does not own Topic35 TextBlock geometry",
"34.01 does not own Topic36 typography spacing",
"34.01 does not own Topic37 text-image relation",
"N_A != 0",
"INVALID != 0",
"descriptor != score",
"local != global",
"geometry != interpretation",
"heuristic != law",
"no universal type-scale ratio threshold",
"no universal beautyScore"
],
"owns_metrics": [],
"independent_numeric_votes": 0,
"topic34ProgressAfterThisModule": "2/7 local",
"next_module": "Compo 34.02 — Weight / style / case hierarchy",
"topic35_started": false,
"publication": "NOT_VERIFIED"
}