{
  "format": "vercy-model-allocation-candidate/v1",
  "contourId": "EM-PEO-05",
  "proposedName": "Career Path",
  "modelId": null,
  "registryId": null,
  "allocationState": "unassigned",
  "decision": "NEW MODEL",
  "canonicalPublishable": false,
  "identityTest": {
    "stableIdentity": "A reusable career-transition definition remains identifiable independently of workers, aspirations, nominations and assignments.",
    "versionIdentity": "Changes to nodes, transitions or expectations create an immutable successor version.",
    "independentLifecycle": [
      "draft",
      "reviewed",
      "approved",
      "released",
      "effective",
      "deprecated",
      "retired"
    ],
    "mastership": "enterprise career architecture authority"
  },
  "boundary": {
    "owns": [
      "career-path identity",
      "immutable path versions",
      "job-family or position nodes",
      "typical transitions",
      "transition expectations",
      "applicability",
      "successor history"
    ],
    "references": [
      {
        "target": "WM-ORG-004",
        "purpose": "Position context",
        "contractState": "provisional"
      },
      {
        "target": "WM-XCT-023",
        "purpose": "Role context",
        "contractState": "provisional"
      },
      {
        "target": "WM-PER-009",
        "purpose": "Competency expectations",
        "contractState": "provisional"
      },
      {
        "target": "WM-ACT-008",
        "purpose": "Worker development plan",
        "contractState": "provisional"
      }
    ],
    "excludes": [
      "worker aspiration",
      "promotion entitlement",
      "nomination",
      "appointment",
      "position assignment",
      "compensation decision"
    ]
  },
  "objects": {
    "CareerPath": {
      "identity": [
        "careerPathId"
      ],
      "required": [
        "name",
        "ownerRef",
        "status",
        "recordedAt",
        "recordedBy"
      ],
      "optional": [
        "predecessorRef"
      ]
    },
    "CareerPathVersion": {
      "identity": [
        "careerPathId",
        "version"
      ],
      "required": [
        "nodes",
        "transitions",
        "validFrom",
        "contentDigest",
        "recordedAt",
        "recordedBy",
        "applicability"
      ],
      "optional": [
        "expectations",
        "validTo",
        "predecessorRef"
      ]
    }
  },
  "invariants": [
    "A career path may exist without incumbents.",
    "Published versions are immutable.",
    "Nodes reference external role or position definitions.",
    "Transitions are typical possibilities, not promises.",
    "Expectations are version-pinned.",
    "Worker aspiration remains separate.",
    "A path never grants promotion.",
    "A path never creates nomination.",
    "A path never creates assignment or access.",
    "Compensation remains external.",
    "Supersession preserves historical plans.",
    "Missing transition evidence remains unknown.",
    "A Career Path is advisory unless a separately governed gate is explicitly attached.",
    "Path steps may recommend Program Versions and objective versions without owning them.",
    "Aspiration is a time-stamped person assertion and never path identity, nomination or appointment.",
    "Path branching remains advisory by default; a governed gate requires a separate explicit policy.",
    "Every path state append records actor and time."
  ],
  "holds": [
    "Registry allocation is pending and no identifier may be guessed.",
    "All base specifications and relation contracts remain provisional reviewable drafts.",
    "Privacy, retention, source pins and executable conformance remain pending.",
    "Package conversion and live verification are pending.",
    "Frozen audit returned REVISE at revision 2; all 44 checklist items were remediated once without audit rerun."
  ],
  "candidateRevision": 3,
  "digestPolicy": {
    "algorithm": "SHA-256",
    "canonicalization": "UTF-8 canonical JSON with sorted object keys and no insignificant whitespace",
    "coverage": "all fields bearing on released semantics",
    "verification": "asserted and unverified until live conformance closes"
  },
  "privacyPolicy": {
    "purposeLimited": true,
    "minimumDisclosure": true,
    "disclosureScopeRequired": true,
    "evidenceMinimized": true,
    "unknownDistinctFromAbsent": true
  },
  "lifecycles": {
    "path": [
      "draft",
      "reviewed",
      "approved",
      "released",
      "effective",
      "deprecated",
      "retired"
    ],
    "version": [
      "draft",
      "released",
      "effective",
      "superseded",
      "retired"
    ]
  },
  "invariantRules": [
    {
      "id": "CP-INV-01",
      "text": "A career path may exist without incumbents."
    },
    {
      "id": "CP-INV-02",
      "text": "Published versions are immutable."
    },
    {
      "id": "CP-INV-03",
      "text": "Nodes reference external role or position definitions."
    },
    {
      "id": "CP-INV-04",
      "text": "Transitions are typical possibilities, not promises."
    },
    {
      "id": "CP-INV-05",
      "text": "Expectations are version-pinned."
    },
    {
      "id": "CP-INV-06",
      "text": "Worker aspiration remains separate."
    },
    {
      "id": "CP-INV-07",
      "text": "A path never grants promotion."
    },
    {
      "id": "CP-INV-08",
      "text": "A path never creates nomination."
    },
    {
      "id": "CP-INV-09",
      "text": "A path never creates assignment or access."
    },
    {
      "id": "CP-INV-10",
      "text": "Compensation remains external."
    },
    {
      "id": "CP-INV-11",
      "text": "Supersession preserves historical plans."
    },
    {
      "id": "CP-INV-12",
      "text": "Missing transition evidence remains unknown."
    },
    {
      "id": "CP-INV-13",
      "text": "A Career Path is advisory unless a separately governed gate is explicitly attached."
    },
    {
      "id": "CP-INV-14",
      "text": "Path steps may recommend Program Versions and objective versions without owning them."
    },
    {
      "id": "CP-INV-15",
      "text": "Aspiration is a time-stamped person assertion and never path identity, nomination or appointment."
    },
    {
      "id": "CP-INV-16",
      "text": "Path branching remains advisory by default; a governed gate requires a separate explicit policy."
    },
    {
      "id": "CP-INV-17",
      "text": "Every path state append records actor and time."
    }
  ]
}
