{
  "format": "vercy-enterprise-adoption-profile/v1",
  "contourId": "EM-LND-01",
  "name": "Organizational Structure Landscape",
  "candidateRevision": 3,
  "decision": "PROFILE",
  "newRuntimeId": false,
  "bases": [
    {
      "model_id": "WM-ORG-002",
      "registry_id": "vr.wm-org-002",
      "synthesisSha256": "a991fb7774ae1b611787fe093e9d9e380499bf42c9fbe69fcb91af147be90812"
    },
    {
      "model_id": "WM-ORG-003",
      "registry_id": "vr.wm-org-003",
      "synthesisSha256": "c626866472ec1be766b3ce256f0e3f375118fb1c462fac4921a367f925ca0bc4"
    },
    {
      "model_id": "WM-ORG-004",
      "registry_id": "vr.wm-org-004",
      "synthesisSha256": "276439f4a06ed634dda2e84d4bb34499a521d08dbb31eab9d5dfe8fb041466e0"
    },
    {
      "model_id": "WM-ORG-016",
      "registry_id": "vr.wm-org-016",
      "synthesisSha256": "ae1b264d2d9d71872f3f8803680d7e602ad13ef4eb00f5630a2fe08bbf41e201"
    }
  ],
  "proposedHostBinding": {
    "value": "vr.wm-org-002#profile/landscape-organizational-structure",
    "allocationStatus": "not-allocated",
    "note": "proposal only; registry-owner decision required"
  },
  "axisCodeList": {
    "codeListVersion": "candidate-3",
    "codes": [
      "administrative",
      "functional",
      "project-membership",
      "project-nesting",
      "supervisory"
    ],
    "kind": "profile constants, not runtime identifiers"
  },
  "constructs": {
    "OrganizationLandscape": {
      "kind": "projection-specification",
      "identity": [
        "landscapeId",
        "specVersion"
      ],
      "versionAttributes": [
        "organizationPerimeter",
        "axisSet",
        "scenarioClass",
        "correspondenceRules"
      ]
    },
    "StructureAxis": {
      "kind": "governed-profile-construct",
      "identity": [
        "axisCode",
        "ruleVersion"
      ],
      "ownsEdges": false
    },
    "StructureSnapshot": {
      "kind": "generated-artifact",
      "lifecycle": [
        "created",
        "retained",
        "tombstoned"
      ],
      "digest": {
        "digestScheme": "vercy-landscape-snapshot-digest/v1",
        "algorithm": "sha-256",
        "canonicalisation": "JCS (RFC 8785)",
        "timeNormalisation": "RFC 3339 converted to UTC Z at nanosecond precision; -00:00 forbidden",
        "orderedInputs": [
          "digestScheme",
          "algorithm",
          "landscapeId",
          "specVersion",
          "organizationPerimeter",
          "scenarioClass",
          "axisCode",
          "ruleVersion",
          "codeListVersion",
          "requestParameters",
          "worldTime",
          "recordTime",
          "sourcePins",
          "generatorVersion",
          "completeness"
        ],
        "requestParameters": [
          "root",
          "maxDepth",
          "disclosureClass"
        ],
        "sourcePinOrder": "lexicographic by sourceId",
        "sourcePinShape": {
          "fields": [
            "sourceId",
            "required",
            "state",
            "version",
            "digest",
            "digestAlgorithm"
          ],
          "states": [
            "pinned",
            "omitted",
            "substituted"
          ]
        },
        "completeness": [
          "complete",
          "partial"
        ]
      },
      "tombstone": "payload removed; digest, canonical manifest, source-pin map and disposition authority remain retained and resolvable"
    },
    "SnapshotRefusal": {
      "kind": "diagnostic-artifact",
      "identity": [
        "landscapeId",
        "specVersion",
        "axisCode",
        "ruleVersion",
        "worldTime",
        "recordTime",
        "requestNonce"
      ],
      "payload": [
        "refusalCode",
        "failingSourceId",
        "requestedPair",
        "declaredHorizon"
      ]
    },
    "SnapshotDisclosure": {
      "kind": "repeatable-event",
      "fields": [
        "snapshotDigest",
        "disclosureClass",
        "grantRef",
        "at"
      ]
    }
  },
  "axes": {
    "administrative": {
      "hierarchyIdentifier": "required WM-ORG-002 hierarchyIdentifier",
      "surfaceIsCodmReportingHierarchy": true,
      "sources": [
        {
          "source": "WM-ORG-002",
          "edgePredicate": "named containment hierarchy edge"
        }
      ],
      "parentCardinality": "at most one per unit per interval",
      "rootRule": "exactly one root",
      "acyclic": true,
      "orphanPolicy": "refused"
    },
    "functional": {
      "sources": [
        {
          "source": "WM-ORG-002",
          "edgePredicate": "reportingLineType in {functional, professional}"
        },
        {
          "source": "WM-ORG-004",
          "edgePredicate": "post reporting type in {functional, professional}, solid or dotted"
        }
      ],
      "parentCardinality": "unbounded",
      "acyclicityRequired": {
        "type": "boolean",
        "default": false
      }
    },
    "project-membership": {
      "sources": [
        {
          "source": "WM-ORG-003",
          "edgePredicate": "agent-team membership"
        }
      ],
      "cardinality": "many-to-many",
      "acyclicity": "inapplicable",
      "hierarchy": false
    },
    "project-nesting": {
      "sources": [
        {
          "source": "WM-ORG-003",
          "edgePredicate": "team-nesting edge"
        }
      ],
      "profileAlternatives": [
        "Scrum: nesting prohibited",
        "one-parent profile: at most one parent and acyclic",
        "nested-group profile: nesting permitted under its declared rules"
      ],
      "mergeAlternatives": false
    },
    "supervisory": {
      "sources": [
        {
          "source": "WM-ORG-016",
          "edgePredicate": "reporting_line_type_code = supervisory"
        },
        {
          "source": "WM-ORG-004",
          "edgePredicate": "post reporting type = supervisory"
        }
      ],
      "effectiveSupervisor": "at most one per assignment after precedence; zero permitted and recorded",
      "secondaryEdgesVisible": true,
      "unresolvedCode": "SUPERVISOR_PRECEDENCE_UNRESOLVED",
      "precedenceRuleVersion": "required WM-ORG-016 rule version"
    }
  },
  "constraints": [
    "The profile is read-only and never creates or edits source objects or relations.",
    "Every projected edge declares axisCode, owning master, source edge type and world-time interval.",
    "An untyped or unclassified reporting edge is refused with UNTYPED_REPORTING_EDGE and no edge projects onto more than one axis.",
    "Axis cardinality and cycle rules apply within one axis only; the union graph is not acyclicity-checked.",
    "Administrative containment binds one named hierarchy, permits at most one parent per interval, requires exactly one root, refuses orphans and is acyclic.",
    "Functional acyclicityRequired defaults false and parent cardinality is unbounded.",
    "Project membership and project nesting are separate axis codes and their profile alternatives are never merged.",
    "Supervisory precedence never selects arbitrarily; unresolved ties produce a refusal record.",
    "Every unit-subject reporting edge carries standardExtensionNote declaring the org:reportsTo departure and mapping rule.",
    "One request-level worldTime and recordTime pair applies to every required source.",
    "Intervals are half-open [validFrom, validTo); timestamps require explicit offsets and -00:00 is forbidden.",
    "Each source horizon is a bitemporal rectangle and the composed horizon is the intersection over required sources.",
    "Source version-and-digest pinning is currently satisfiable only for WM-ORG-002 when contentDigest is present; generation using WM-ORG-003, WM-ORG-004 or WM-ORG-016 is blocked pending scoped EXTEND.",
    "Any future pin substitute is marked state=substituted with an explicit fidelity marker in the canonical manifest.",
    "Required-source reconstruction or pin failure emits SnapshotRefusal, never a partial snapshot.",
    "Optional omission is allowed only by the axis rule, recorded with an omitted pin-map entry and completeness=partial.",
    "Snapshot digest uses the complete canonical manifest and keyed pin map; all content-affecting parameters are inputs.",
    "Snapshots are immutable, never overwritten, never re-imported and carry a loss/fidelity manifest.",
    "References to persons, units, teams, posts and assignments use {model_id, identifier, scheme} plus a closed display-label set; source facts are not copied.",
    "A generation after a recorded correction at a later recordTime yields a new digest while the earlier digest remains retained.",
    "Tombstoning removes payload only and preserves digest, manifest, pin map and disposition authority.",
    "Disclosure is repeatable and external to snapshot lifecycle; suppression parameters belong to this profile, grants to S2 and audit facets to S4.",
    "Landscape generation reconstructs from bitemporal assertions; composing WM-ORG-003 team-hierarchy-snapshot is forbidden because it is single-clock.",
    "Only asserted edges are projected; informal and de facto reporting are excluded as a declared source gap.",
    "Vacancy and other derived values are never stored; IFRS 8 segment determination and statistical units are out of scope.",
    "Scenario class authoritative includes recorded source facts, including future-effective changes; hypothetical requests are refused.",
    "Scenario-marked and authoritative facts never appear in one another's views.",
    "Decision time, effective time, world time and record time remain distinct; decisionTimestamp never substitutes for effective time.",
    "No landscape, axis-instance, snapshot or registry identifier is allocated by this profile."
  ],
  "adjudications": [
    "Functional cycles are parameterized: acyclicityRequired defaults false; this adopts Grok's parameterized rule while retaining the provider disagreement as a hold.",
    "The matrix fixture treats its project edge strictly as membership; supervisory reporting appears only on the supervisory axis, correcting the Claude walkthrough wording."
  ],
  "holds": [
    "All four sources remain non-canonical reviewable drafts and the profile cannot exceed their publication ceiling.",
    "Semantic crosswalk is not boundary-reviewed beyond publication metadata for WM-ORG-002/003/004.",
    "WM-ORG-003 single-clock snapshot composition is forbidden and its source assertion contract remains incomplete.",
    "Three of four bases lack a version-and-digest contract; generation is blocked pending scoped EXTEND.",
    "WM-ORG-002 named-hierarchy binding, ERP cost/profit/funds-centre hierarchies and unit-to-site association remain unresolved.",
    "Functional acyclicity and reporting-edge vocabularies are not ratified.",
    "Disclosure class, suppression parameters, source horizons and retention guarantees are not ratified.",
    "ISO clause text is unverified; unit-grain staffing is extension-grade; private-sector matrix forms are unvalidated; EU/US regional scope must be stated on any draft.",
    "Scenario planning is unsupported and authoritative-only.",
    "Fixture v3 is structurally validated but not executed because no generator with digestScheme and generatorVersion exists.",
    "The proposed host binding is not allocated and requires registry-owner action.",
    "W3C ORG, ISO 42010 and ArchiMate are alignments only, not conformance claims.",
    "The single frozen audit is complete and will not be rerun; it authorizes no publication.",
    "No package conversion, live verification, canonical publication or registry mutation is authorized."
  ],
  "version": "0.1.0",
  "assurance": "reviewable-research-profile",
  "publicationState": "published-partial",
  "runtimeId": null,
  "canonical": false,
  "installable": false
}
