COMPO · 7.04 · ROLE-DEPENDENT EDGE POLICY

Role-dependent
edge
policy.

Explicit semantic-role dispatch layer Topic 7: owner-qualified role assignments map through versioned RoleEdgePolicyRules into mutation-free requests for 7.01 protected bindings, 7.02 bleed-intent bindings and 7.03 clearance/tension queries. Никакого role inference по имени/виду объекта, скрытого specificity, visual-hierarchy score или silent merge конфликтующих rules.

ModuleCompo 7.04
Scoperole → edge policy
Rolesexternal explicit
Prioritypolicy only
Topic7 · EDGE ZONES
Next7.05

Роль выбирает policy, но не создаётся здесь

00 / module api

7.04 — dispatch layer между explicit semantic role и уже определёнными edge-policy contracts 7.01–7.03.

INPUT

Owner-qualified semantic role + explicit policy set.

OUTPUT

Resolved directive + mutation-free downstream requests.

METRICS

None.

NO ROLE INFERENCE. `title:hero`, большой font size, высокая visual mass или расположение сверху не позволяют 7.04 самостоятельно назначить роль `TITLE`.

SemanticRoleAssignment

01 / role assignment

Role taxonomy и сам факт присвоения роли принадлежат внешнему semantic owner.

SemanticRoleAssignment {
  assignmentRef,
  contentRef,

  roleRef,
  roleNamespaceRef,
  roleOwnerRef,

  confidence,
  provenance
}
ONE ACTIVE ROLE PER NAMESPACE. Если системе нужна составная роль, upstream owner создаёт explicit composite `roleRef`; 7.04 не объединяет несколько ролей молча.

Rule selector только explicit

02 / selectors

Matching не использует название объекта, regex по contentRef или визуальные признаки.

EXACT_ROLE

Один exact external `roleRef`.

ROLE_SET

Explicit перечисление нескольких role refs.

DEFAULT_SELECTOR

Явно объявленный fallback внутри policy set.

DEFAULT IS DATA. Никакого встроенного «все остальные объекты держать внутри safe zone» нет.

Один directive — три независимых request-family

03 / RoleEdgeDirective

7.04 не копирует downstream computations: он формирует только owner-qualified requests/templates.

SAFE

NO_REQUEST

or

REQUEST_PROTECTION_BINDING
  hardSafePolicyRef
  protectionMode
  geometryTemplateRef

BLEED

NO_REQUEST

or

REQUEST_BLEED_BINDING
  bleedIntentPolicyRef
  intentKind
  geometryMode
  geometryTemplateRef

CLEARANCE

NO_REQUEST

or

REQUEST_CLEARANCE_QUERY
  referenceRef
  edges[]
  geometryMode
  normalizationMode
  tensionModelRef?

NO_REQUEST не равен запрету

04 / no-request semantics

Это важный firewall при наличии нескольких explicit policy owners.

7.04 directive: safe.requestMode = NO_REQUEST means: this policy set emits no 7.01 binding request does NOT mean: protected content forbidden existing 7.01 binding deleted other owner request cancelled

Rule выбирается целиком

05 / RoleEdgePolicyRule

Lower-priority rules не подмешивают отдельные поля в winning directive.

RoleEdgePolicyRule {
  ruleRef,

  selector,

  resolutionPriority:
    integer,

  directive:
    complete RoleEdgeDirective,

  enabled,
  confidence,
  provenance
}
PRIORITY ≠ HIERARCHY. `resolutionPriority:100` означает лишь «эта policy rule побеждает priority 50». Это ничего не говорит о визуальной важности объекта.

Никакого hidden specificity

06 / deterministic resolution

Exact-role rule не выигрывает у default автоматически — если автор policy хочет это, он задаёт priority явно.

1. Validate namespace 2. Match enabled non-default rules 3. If none: match explicit DEFAULT_SELECTOR 4. Find max resolutionPriority 5. One top rule: RESOLVED 6. Several top rules: same directive → RESOLVED_DEDUPLICATED different directive → AMBIGUOUS_POLICY_MATCH 7. No rules: N_A | INVALID per noMatchPolicy

Конфликт нельзя скрыть lexical tie-break

07 / ambiguity

Determinism здесь означает одинаково обнаруживать конфликт, а не одинаково выбирать случайного победителя.

Same payload

Две rules одинакового priority с canonical-equivalent directive можно de-duplicate, сохранив обе `selectedRuleRefs`.

Different payload

AMBIGUOUS_POLICY_MATCH. Policy-set owner должен исправить конфликт.

7.01–7.03 остаются owners

08 / request routing

Resolved directive превращается в requests, а не в готовые чужие результаты.

RoleResolvedEdgeDirective ↓ safe request → 7.01 ProtectedSemanticContentBinding bleed request → 7.02 BleedIntentBinding clearance request → 7.03 EdgeClearanceQuery + tensionModelRef All: mutationAllowed = false sourceAssignmentRef preserved sourceRuleRef(s) preserved

Role-dependent protection

09 / safe routing

7.04 может решить, что для данной explicit role нужно запросить protected binding, но containment остаётся 7.01.

ProtectedContentBindingRequest {
  requestRef,
  targetOwner: "Compo7.01",

  contentRef,
  hardSafePolicyRef,
  protectionMode,
  geometryTemplateRef,

  sourceAssignmentRef,
  sourceRuleRefs[],

  mutationAllowed: false
}

Role-dependent edge exit

10 / bleed routing

Например, explicit background-role policy может выбрать заранее определённый 7.02 bleed policy — но сама роль не даёт permission без rule.

BleedIntentBindingRequest {
  requestRef,
  targetOwner: "Compo7.02",

  contentRef,
  bleedIntentPolicyRef,
  intentKind,
  geometryMode,
  geometryTemplateRef,

  sourceAssignmentRef,
  sourceRuleRefs[],

  mutationAllowed: false
}

Role-dependent measurement target

11 / clearance routing

Role policy может выбрать, какие edges/reference/tension model измерять, но численное значение clearance вычисляет 7.03.

EdgeClearanceQueryRequest {
  requestRef,
  targetOwner: "Compo7.03",

  contentRef,
  referenceRef,
  edges[],
  geometryMode,
  normalizationMode,
  tensionModelRef?,
  geometryTemplateRef,

  sourceAssignmentRef,
  sourceRuleRefs[],

  mutationAllowed: false
}

Не смешиваем роли внутри namespace

12 / multi-role firewall

Скрытый merge `TITLE + BRAND + DECORATIVE` делает policy provenance непроверяемым.

Same contentRef + same roleNamespaceRef + multiple active roleRef → INVALID_ROLE_ASSIGNMENT_SET Required upstream fix: choose one role or: emit explicit COMPOSITE_ROLE_REF
DIFFERENT NAMESPACES. Один content может отдельно иметь, например, semantic-role namespace и accessibility-role namespace, но они разрешаются отдельными policy sets и не смешиваются автоматически.

7.05 может менять geometry, не role logic

13 / platform boundary

Role policy может ссылаться на versioned reference, который поставляет 7.05, но activation state остаётся там.

7.04: choose referenceRef for role policy 7.05: resolve current platform overlay geometry / active state 7.03: measure against resolved reference snapshot 7.04 does NOT: inspect app UI activate overlays animate safe zones

Role-dependent не означает универсальный policy owner

14 / ownership firewall

Каждый downstream module сохраняет собственную семантику.

QuestionOwner
Какая semantic role у content?external semantic owner
Containment hard-safe?7.01
Trim crossing / bleed compliance?7.02
Signed clearance / tension?7.03
Какую edge policy выбрать по explicit role?7.04
Dynamic platform geometry/lifecycle?7.05
Violation / repair / scoring?7.06

Visual Lab

15 / visual lab

Разные explicit roles могут маршрутизироваться в разные downstream owners без aesthetic ranking.

A · EXPLICIT PRIMARY_TEXT ROLE rule → request 7.01 protection + request 7.03 safe-edge clearance B · EXPLICIT BACKGROUND ROLE rule → request 7.02 bleed binding not because name says "background" C · EXPLICIT DECORATIVE ROLE policy may select another 7.02/7.03 ref no quality hierarchy implied roleRef comes from semantic owner · 7.04 never infers it from appearance resolutionPriority chooses policy rule · it is NOT visual hierarchy same top priority + different directives → AMBIGUOUS_POLICY_MATCH NO_REQUEST emits nothing; it does not cancel another owner's policy requests route to 7.01 / 7.02 / 7.03 with mutationAllowed=false platform lifecycle = 7.05 · violation / repair / score = 7.06

Role-policy regression

16 / deterministic tests

Проверяем explicit assignment, selector/default, priorities, ambiguous ties, de-duplication, request routing, multi-role firewall и отсутствие semantic/scoring leakage.

Tests not run yet.

DATA FOR LAYOUT ENGINE

17 / machine contract

Machine-readable 7.04 contract.

{
  "module": "Compo 7.04",
  "name": "role_dependent_edge_policy",
  "version": "1.1-final",
  "canonical_main_title": "Role-dependent edge policy",
  "topic": "07_ПОЛЯ_SAFE_ZONES_И_BLEED",
  "scope": "EXPLICIT_ROLE_TO_EDGE_POLICY_RESOLUTION_AND_MUTATION_FREE_DOWNSTREAM_REQUEST_ROUTING",
  "consumes": [
    "owner-qualified SemanticRoleAssignment",
    "RoleEdgePolicySet",
    "references to Compo7.01.HardSafePolicy",
    "references to Compo7.02.BleedIntentPolicy",
    "references to Compo7.03 RectKeepInBoundaryRef / EdgeTensionModel",
    "optional versioned 7.05 dynamic reference refs without owning overlay lifecycle"
  ],
  "provides": [
    "SemanticRoleAssignment contract adapter",
    "RoleEdgeDirective",
    "RoleEdgePolicyRule",
    "RoleEdgePolicySet",
    "RoleResolvedEdgeDirective",
    "RolePolicyResolutionSet",
    "ProtectedContentBindingRequest -> Compo7.01",
    "BleedIntentBindingRequest -> Compo7.02",
    "EdgeClearanceQueryRequest -> Compo7.03",
    "RolePolicyDiagnostic[]",
    "roleEdgePolicyRef for downstream Compo7.06"
  ],
  "owns_metrics": [],
  "descriptors_only": [
    "edge.role.assignmentRef",
    "edge.role.roleRef",
    "edge.role.roleNamespaceRef",
    "edge.role.policySetRef",
    "edge.role.selectedRuleRef",
    "edge.role.resolutionPriority",
    "edge.role.safeRequestMode",
    "edge.role.bleedRequestMode",
    "edge.role.clearanceRequestMode",
    "edge.role.resolutionStatus",
    "edge.role.confidence"
  ],
  "semantic_role_assignment_schema": {
    "assignmentRef": "stable ref",
    "contentRef": "owner-qualified content/object ref",
    "roleRef": "explicit semantic role ref",
    "roleNamespaceRef": "owner/version namespace for role semantics",
    "roleOwnerRef": "module/system that assigned the role",
    "confidence": "0..1",
    "provenance": "object",
    "important": "7.04 does not define the role taxonomy and does not derive roleRef from content"
  },
  "selector_schema": {
    "EXACT_ROLE": {
      "roleRef": "one exact external role ref"
    },
    "ROLE_SET": {
      "roleRefs": "non-empty explicit set"
    },
    "DEFAULT_SELECTOR": {
      "meaning": "explicit fallback inside this policy set if no non-default selector matches"
    },
    "no_pattern_guessing": "no substring, regex, content-name or visual-feature role inference"
  },
  "role_edge_directive_schema": {
    "safe": {
      "requestMode": "NO_REQUEST|REQUEST_PROTECTION_BINDING",
      "hardSafePolicyRef": "required when requesting",
      "protectionMode": "FULL_SUPPORT|BOUNDING_BOX|ANCHOR_SET|CUSTOM_REGION when requesting",
      "geometryTemplateRef": "owner-qualified geometry binding template/ref"
    },
    "bleed": {
      "requestMode": "NO_REQUEST|REQUEST_BLEED_BINDING",
      "bleedIntentPolicyRef": "required when requesting",
      "intentKind": "PRINT_BLEED|INTENTIONAL_CROP|BACKGROUND_CONTINUATION|DECORATIVE_EDGE_EXIT|CUSTOM",
      "geometryMode": "FULL_SUPPORT|BOUNDING_BOX|CUSTOM_REGION when requesting",
      "geometryTemplateRef": "owner-qualified geometry binding template/ref"
    },
    "clearance": {
      "requestMode": "NO_REQUEST|REQUEST_CLEARANCE_QUERY",
      "referenceRef": "required when requesting",
      "edges": "non-empty subset TOP|RIGHT|BOTTOM|LEFT",
      "geometryMode": "FULL_SUPPORT|BOUNDING_BOX|ANCHOR_SET|CUSTOM_REGION",
      "normalizationMode": "RAW_ONLY|RAW_AND_SHORT_N",
      "tensionModelRef": "optional explicit Compo7.03 model ref",
      "geometryTemplateRef": "owner-qualified geometry/query template/ref"
    },
    "no_request_semantics": "NO_REQUEST means emit nothing from this policy set; it does not revoke another owner's explicit request"
  },
  "role_edge_policy_rule_schema": {
    "ruleRef": "stable unique ref",
    "selector": "EXACT_ROLE|ROLE_SET|DEFAULT_SELECTOR",
    "resolutionPriority": "integer; larger value wins among matching rules",
    "directive": "complete RoleEdgeDirective; no implicit merge with lower-priority rules",
    "enabled": "boolean",
    "confidence": "0..1",
    "provenance": "STANDARD|EMPIRICAL|INITIAL_HEURISTIC|IMPLEMENTATION_HEURISTIC|STYLE_PRESET",
    "important": "priority is policy-resolution metadata, not semantic importance or composition hierarchy"
  },
  "role_edge_policy_set_schema": {
    "policySetRef": "stable versioned ref",
    "roleNamespaceRef": "must match incoming assignments",
    "rules": "RoleEdgePolicyRule[]",
    "noMatchPolicy": "N_A|INVALID",
    "allowExplicitDefault": "boolean",
    "status": "READY|INVALID",
    "confidence": "0..1",
    "provenance": "object",
    "duplicateRuleRef": "INVALID"
  },
  "resolution_algorithm": {
    "step_1": "validate role assignment and policy set namespace compatibility",
    "step_2": "collect enabled non-default rules whose selector explicitly matches roleRef",
    "step_3": "if none match and allowExplicitDefault=true, collect enabled DEFAULT_SELECTOR rules",
    "step_4": "take maximum explicit resolutionPriority",
    "step_5": "if one highest-priority rule -> RESOLVED",
    "step_6": "if multiple highest-priority rules have canonical-equivalent directives -> deterministic de-duplication; selectedRuleRefs[] preserved",
    "step_7": "if highest-priority directives differ -> AMBIGUOUS_POLICY_MATCH / INVALID",
    "step_8": "if no rule -> N_A or INVALID per noMatchPolicy",
    "forbidden": "implicit specificity weighting, lexical winner, role-name guessing, partial merge across priorities"
  },
  "request_routing": {
    "safe": "REQUEST_PROTECTION_BINDING creates a mutation-free request for a Compo7.01 ProtectedSemanticContentBinding using the selected HardSafePolicy ref; 7.01 remains evaluator/owner",
    "bleed": "REQUEST_BLEED_BINDING creates a mutation-free request for a Compo7.02 BleedIntentBinding; 7.02 remains trim-crossing/compliance owner",
    "clearance": "REQUEST_CLEARANCE_QUERY creates a mutation-free request for a Compo7.03 EdgeClearanceQuery and optional EdgeTensionModel ref; 7.03 remains metric owner",
    "no_request": "emits no request in that family and does not cancel other owner-authored requests"
  },
  "multi_role_policy": {
    "canonical_rule": "one active roleRef per contentRef per roleNamespaceRef in one resolution pass",
    "reason": "prevents hidden cross-role directive merging and ambiguous ownership",
    "composite_role": "if upstream semantics need TITLE_AND_BRAND_MARK or another compound role, upstream role owner must emit an explicit composite roleRef",
    "same_content_different_namespace": "may be processed in separate policy sets with distinct lineage; downstream conflict resolution remains explicit"
  },
  "policy_conflict_semantics": {
    "same_priority_same_directive": "RESOLVED_DEDUPLICATED",
    "same_priority_different_directive": "AMBIGUOUS_POLICY_MATCH",
    "different_priority": "highest explicit priority wins; lower rules are not merged",
    "downstream_safe_vs_bleed_conflict": "7.04 preserves emitted requests; 7.06/upstream policy owner resolves incompatibility rather than 7.04 silently dropping one"
  },
  "ownership_map": {
    "semantic_role_owner": "assigns roleRef / role taxonomy; external to 7.04",
    "7.01": "hard-safe binding semantics and containment",
    "7.02": "bleed-intent binding semantics and trim-crossing compliance",
    "7.03": "signed clearance metrics and tension classification",
    "7.04": "role-dependent selection/routing of explicit edge directives",
    "7.05": "platform overlays and dynamic safe/reference geometry lifecycle",
    "7.06": "violations, repair, target-aware scoring and Topic7 regression"
  },
  "semantic_firewalls": {
    "role_vs_visual_hierarchy": "semantic role assignment is not visual hierarchy score",
    "resolution_priority_vs_design_priority": "resolutionPriority resolves policy conflicts only",
    "no_request_vs_prohibition": "NO_REQUEST is absence of a 7.04 emission, not a hard prohibition",
    "policy_selection_vs_evaluation": "7.04 selects refs/templates; 7.01–7.03 evaluate their own semantics",
    "role_policy_vs_platform_lifecycle": "7.05 may change reference geometry state; 7.04 does not activate/deactivate platform overlays",
    "role_policy_vs_scoring": "7.06 may score explicit target compliance; 7.04 does not"
  },
  "metric_policy": {
    "role_resolution": "descriptor/dispatch only",
    "resolution_priority": "administrative integer, not score",
    "direct_scoring": "FORBIDDEN in 7.04",
    "protected_roles_are_better": "FORBIDDEN",
    "higher_priority_role_is_more_important": "FORBIDDEN",
    "more_edge_rules_is_better": "FORBIDDEN"
  },
  "hard_constraints": [
    "7.04 owns mapping from explicit semantic-role assignments to downstream edge-policy/binding/query requests; it does not own semantic role inference itself.",
    "Every SemanticRoleAssignment must be owner-qualified and explicit; content names, text strings, object types, size, visual mass or position must not be used to infer role.",
    "Within one roleNamespaceRef, one contentRef must have one active roleRef for one resolution pass; multi-role semantics require an explicit composite role upstream.",
    "RoleEdgePolicyRule resolution uses explicit resolutionPriority only; priority is administrative policy resolution metadata, not visual hierarchy or design score.",
    "If multiple highest-priority matching rules have semantically identical directives, they may be de-duplicated deterministically.",
    "If multiple highest-priority matching rules have different directives, resolution is AMBIGUOUS_POLICY_MATCH; no lexical winner may silently decide policy.",
    "DEFAULT_SELECTOR is an explicit fallback rule, not a hidden default.",
    "No matching rule yields N_A or INVALID according RoleEdgePolicySet.noMatchPolicy; no implicit protection/bleed/clearance behavior is invented.",
    "A NO_REQUEST directive means this policy set emits no downstream request; it does not cancel a binding/policy created by another explicit owner.",
    "7.04 may select/generate request payloads for 7.01 protected binding, 7.02 bleed-intent binding and 7.03 clearance query/tension model, but downstream semantic evaluation remains owned by those modules.",
    "7.04 must not copy 7.01 containment, 7.02 trim-crossing or 7.03 clearance metrics under new names.",
    "Downstream requests are mutation-free and carry source rule/assignment lineage.",
    "A role-policy request may reference a 7.05 dynamic zone/reference source, but 7.04 does not own platform overlay activation/lifecycle.",
    "Policy selection must preserve policyRef/modelRef versions and must not silently replace them after resolution.",
    "Role policy may differ across explicit policy-set versions or contexts; this is not a contradiction if lineage is distinct.",
    "7.04 does not construct canonical Violation, repair or scoring objects; 7.06 owns them.",
    "7.04 does not mutate content geometry.",
    "N/A != 0.",
    "No beautyScore."
  ],
  "hard_rules": [
    "7.04 owns mapping from explicit semantic-role assignments to downstream edge-policy/binding/query requests; it does not own semantic role inference itself.",
    "Every SemanticRoleAssignment must be owner-qualified and explicit; content names, text strings, object types, size, visual mass or position must not be used to infer role.",
    "Within one roleNamespaceRef, one contentRef must have one active roleRef for one resolution pass; multi-role semantics require an explicit composite role upstream.",
    "RoleEdgePolicyRule resolution uses explicit resolutionPriority only; priority is administrative policy resolution metadata, not visual hierarchy or design score.",
    "If multiple highest-priority matching rules have semantically identical directives, they may be de-duplicated deterministically.",
    "If multiple highest-priority matching rules have different directives, resolution is AMBIGUOUS_POLICY_MATCH; no lexical winner may silently decide policy.",
    "DEFAULT_SELECTOR is an explicit fallback rule, not a hidden default.",
    "No matching rule yields N_A or INVALID according RoleEdgePolicySet.noMatchPolicy; no implicit protection/bleed/clearance behavior is invented.",
    "A NO_REQUEST directive means this policy set emits no downstream request; it does not cancel a binding/policy created by another explicit owner.",
    "7.04 may select/generate request payloads for 7.01 protected binding, 7.02 bleed-intent binding and 7.03 clearance query/tension model, but downstream semantic evaluation remains owned by those modules.",
    "7.04 must not copy 7.01 containment, 7.02 trim-crossing or 7.03 clearance metrics under new names.",
    "Downstream requests are mutation-free and carry source rule/assignment lineage.",
    "A role-policy request may reference a 7.05 dynamic zone/reference source, but 7.04 does not own platform overlay activation/lifecycle.",
    "Policy selection must preserve policyRef/modelRef versions and must not silently replace them after resolution.",
    "Role policy may differ across explicit policy-set versions or contexts; this is not a contradiction if lineage is distinct.",
    "7.04 does not construct canonical Violation, repair or scoring objects; 7.06 owns them.",
    "7.04 does not mutate content geometry.",
    "N/A != 0.",
    "No beautyScore."
  ],
  "soft_constraints": [],
  "preferences": [],
  "overrides_allowed_by": [
    "a newer explicit RoleEdgePolicySet version may supersede an older set for future resolutions",
    "upstream semantic owner may change role assignment version",
    "resolved historical outputs remain tied to their original assignmentRef/policySetRef and are not retroactively mutated"
  ],
  "initial_heuristics": {},
  "style_preset_values": [],
  "candidate_generation": {
    "layout_candidates": "NONE",
    "policy_candidates": "NONE",
    "reason": "7.04 deterministically resolves explicit rules; ambiguous top-priority rules are errors, not candidate branches"
  },
  "correction_policy": {
    "foreign_content_mutation": "FORBIDDEN",
    "missing_role_assignment": "route to upstream semantic-role owner",
    "role_namespace_mismatch": "route to semantic/policy-set owner",
    "ambiguous_highest_priority_rules": "request policy-set correction; do not choose lexically",
    "missing_downstream_policy_ref": "request RoleEdgePolicySet author correction",
    "hard_safe_evaluation": "route to Compo7.01",
    "bleed_evaluation": "route to Compo7.02",
    "clearance_tension_evaluation": "route to Compo7.03",
    "platform_overlay_lifecycle": "route to Compo7.05",
    "violation_repair_scoring": "route to Compo7.06"
  },
  "deferred_inputs": [
    "Compo7.05 platform overlays/dynamic safe zones",
    "Compo7.06 violations/repair/scoring/tests",
    "future canonical semantic-role owner/taxonomy"
  ],
  "recompute_when": [
    "SemanticRoleAssignment changes",
    "roleNamespaceRef changes",
    "RoleEdgePolicySet version/rules change",
    "selected downstream policy/model/reference refs change",
    "rule enabled/priority/directive changes"
  ],
  "tests": [
    "explicit role only",
    "namespace match",
    "exact selector",
    "role-set selector",
    "explicit default",
    "priority",
    "same-priority dedupe",
    "same-priority conflict",
    "no-match N_A/INVALID",
    "NO_REQUEST semantics",
    "request routing",
    "multi-role same namespace rejection",
    "deterministic resolution",
    "no metric/scoring/platform/role inference leakage"
  ],
  "finality": "ROLE_DEPENDENT_EDGE_POLICY_RESOLUTION_AND_ROUTING_ONLY"
}
ARCHITECTURE CHECKPOINT · 7.04 OWNS ROLE-DEPENDENT SELECTION/ROUTING OF EXPLICIT EDGE POLICY ONLY — NO METRICS AND NO ROLE INFERENCE. ROLE REF COMES FROM AN EXTERNAL SEMANTIC OWNER. RESOLUTIONPRIORITY IS POLICY-RESOLUTION METADATA, NOT VISUAL HIERARCHY. HIGHEST-PRIORITY EQUAL DIRECTIVES MAY DEDUPE; DIFFERENT DIRECTIVES AT THE SAME TOP PRIORITY ARE AMBIGUOUS AND MUST NOT GET A LEXICAL WINNER. NO_REQUEST EMITS NOTHING AND DOES NOT REVOKE OTHER OWNER POLICIES. REQUESTS ROUTE TO 7.01 / 7.02 / 7.03 WITH MUTATIONALLOWED=FALSE. 7.05 OWNS PLATFORM LIFECYCLE; 7.06 VIOLATIONS/REPAIR/SCORING. NO BEAUTYSCORE.
VISITS / ...