{
  "format": "vercy-model-allocation-candidate/v1",
  "contourId": "EM-PEO-05",
  "proposedName": "Learning Result",
  "modelId": null,
  "registryId": null,
  "allocationState": "unassigned",
  "decision": "NEW MODEL",
  "canonicalPublishable": false,
  "candidateRevision": 3,
  "identityTest": {
    "stableIdentity": "A learner outcome—achieved, not-achieved or indeterminate—for one version-scoped learning objective remains identifiable independently of attendance, completion, assessment administration, qualification award and credential.",
    "versionIdentity": "A retake, different objective or objective version, changed assessment basis or attributable correction creates a new result or explicit successor.",
    "independentLifecycle": [
      "provisional",
      "finalized",
      "superseded",
      "voided"
    ],
    "mastership": "authorized learning-record steward"
  },
  "boundary": {
    "owns": [
      "learning-result identity",
      "person and enrollment references",
      "program and objective-version references",
      "assessment-basis references",
      "achieved, not-achieved or indeterminate outcome",
      "finalization and successor history",
      "valid and recorded time",
      "retention and disposition state"
    ],
    "references": [
      {
        "target": "WM-PER-001",
        "purpose": "Learner identity",
        "contractState": "provisional"
      },
      {
        "target": "WM-ACT-034",
        "purpose": "Assessment result and basis",
        "contractState": "provisional"
      },
      {
        "target": "WM-PER-008",
        "purpose": "Optional downstream qualification award",
        "contractState": "provisional"
      },
      {
        "target": "WM-XCT-017",
        "purpose": "Optional downstream credential",
        "contractState": "provisional"
      }
    ],
    "excludes": [
      "attendance or delivery completion",
      "assessment administration or raw score ownership",
      "competency assertion",
      "qualification award",
      "credential",
      "development-plan progress",
      "appointment, assignment or access"
    ]
  },
  "objects": {
    "LearningResult": {
      "identity": [
        "learningResultId",
        "versionId"
      ],
      "required": [
        "personRef",
        "enrollmentRef",
        "programVersionRef",
        "objectiveVersionRef",
        "assessmentBasisRefs",
        "outcome",
        "recordedAt",
        "status",
        "recordedBy",
        "validFrom",
        "retentionPolicyRef"
      ],
      "optional": [
        "assessmentResultRefs",
        "evidenceRefs",
        "validFrom",
        "validTo",
        "predecessorRef",
        "correctionReason",
        "retentionPolicyRef",
        "dispositionState",
        "finalizedAt",
        "retakePredecessorRef",
        "voidReason",
        "voidedBy",
        "voidedAt",
        "dispositionReceiptRef",
        "disclosureScope"
      ],
      "outcomes": [
        "achieved",
        "not-achieved",
        "indeterminate"
      ],
      "lifecycle": [
        "provisional",
        "finalized",
        "superseded",
        "voided",
        "retained",
        "disposed"
      ],
      "conditionalRequirements": {
        "provisional": "finalizedAt is forbidden",
        "finalizedOrLater": "finalizedAt is required",
        "voided": "voidReason, voidedBy and voidedAt are required",
        "retake": "retakePredecessorRef is required",
        "disposed": "dispositionReceiptRef and a resolvable tombstone are required"
      }
    }
  },
  "invariants": [
    "Every result pins exactly one person, enrollment, Program Version and objective version.",
    "Every result cites an attributable assessment basis.",
    "Attendance and completion never imply achieved outcome.",
    "Failed assessment may create not-achieved Learning Result without qualification or credential.",
    "One Enrollment may yield several Learning Results for distinct objective versions.",
    "A retake appends a result and never overwrites prior results.",
    "Learning Result is neither WM-PER-008 qualification award nor WM-XCT-017 credential.",
    "Downstream award and credential are optional and never substitutes for the result.",
    "Indeterminate never collapses to not-achieved or achieved.",
    "Finalized result correction creates an attributable successor.",
    "Disposition never cascades to Person, award or credential masters.",
    "No identifier is allocated until registry reservation is approved.",
    "Achieved outcome may authorize but never creates qualification award or credential; each requires a separate governed decision.",
    "FinalizedAt is forbidden for provisional results and required for finalized or later states.",
    "Result Program Version pin must match Enrollment and objective version must belong to it.",
    "Every state append records actor and time.",
    "Post-void and post-disposal references resolve to tombstones and never dangle."
  ],
  "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."
  ],
  "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": {
    "result": [
      "provisional",
      "finalized",
      "superseded",
      "voided"
    ],
    "retention": [
      "active",
      "held",
      "due",
      "disposed"
    ]
  },
  "pinConsistency": [
    "programVersionRef equals the Program Version pinned by Enrollment",
    "objectiveVersionRef is scoped to programVersionRef",
    "assessmentBasisRefs are authoritative and assessmentResultRefs are a resolvable subset"
  ],
  "effectiveOutcomeRule": "For a Person and objectiveVersionRef at an as-of instant, select the latest valid finalized non-voided result in the required retake/predecessor chain by finalizedAt then recordedAt; ties are contested, never silently chosen.",
  "recognitionOfPriorLearning": "Out of contour and held; this candidate requires enrollmentRef until a separate governed basis is approved.",
  "invariantRules": [
    {
      "id": "LR-INV-01",
      "text": "Every result pins exactly one person, enrollment, Program Version and objective version."
    },
    {
      "id": "LR-INV-02",
      "text": "Every result cites an attributable assessment basis."
    },
    {
      "id": "LR-INV-03",
      "text": "Attendance and completion never imply achieved outcome."
    },
    {
      "id": "LR-INV-04",
      "text": "Failed assessment may create not-achieved Learning Result without qualification or credential."
    },
    {
      "id": "LR-INV-05",
      "text": "One Enrollment may yield several Learning Results for distinct objective versions."
    },
    {
      "id": "LR-INV-06",
      "text": "A retake appends a result and never overwrites prior results."
    },
    {
      "id": "LR-INV-07",
      "text": "Learning Result is neither WM-PER-008 qualification award nor WM-XCT-017 credential."
    },
    {
      "id": "LR-INV-08",
      "text": "Downstream award and credential are optional and never substitutes for the result."
    },
    {
      "id": "LR-INV-09",
      "text": "Indeterminate never collapses to not-achieved or achieved."
    },
    {
      "id": "LR-INV-10",
      "text": "Finalized result correction creates an attributable successor."
    },
    {
      "id": "LR-INV-11",
      "text": "Disposition never cascades to Person, award or credential masters."
    },
    {
      "id": "LR-INV-12",
      "text": "No identifier is allocated until registry reservation is approved."
    },
    {
      "id": "LR-INV-13",
      "text": "Achieved outcome may authorize but never creates qualification award or credential; each requires a separate governed decision."
    },
    {
      "id": "LR-INV-14",
      "text": "FinalizedAt is forbidden for provisional results and required for finalized or later states."
    },
    {
      "id": "LR-INV-15",
      "text": "Result Program Version pin must match Enrollment and objective version must belong to it."
    },
    {
      "id": "LR-INV-16",
      "text": "Every state append records actor and time."
    },
    {
      "id": "LR-INV-17",
      "text": "Post-void and post-disposal references resolve to tombstones and never dangle."
    }
  ]
}
