{
  "format": "vercy-enterprise-allocation-fixtures/v1",
  "candidateName": "Learning Result",
  "executable": false,
  "cases": [
    {
      "id": "failed-result",
      "kind": "positive",
      "input": "Attendance is complete but assessment fails objective O1.",
      "expect": "Normatively, a not-achieved Learning Result may be recorded without award or credential.",
      "rules": [
        "LR-INV-01",
        "LR-INV-15"
      ]
    },
    {
      "id": "two-objective-results",
      "kind": "positive",
      "input": "One course serves objective versions O1 and O2.",
      "expect": "Normatively, two distinct Learning Results share one Enrollment and Program Version.",
      "rules": [
        "LR-INV-02",
        "LR-INV-16"
      ]
    },
    {
      "id": "retake-appends",
      "kind": "positive",
      "input": "A learner retakes the assessment and achieves the objective.",
      "expect": "Normatively, a successor result is appended and the failed result remains resolvable.",
      "rules": [
        "LR-INV-03",
        "LR-INV-17"
      ]
    },
    {
      "id": "attendance-is-result",
      "kind": "negative",
      "input": "Attendance alone is used as achieved outcome.",
      "expect": "Normatively, the inference is non-conformant.",
      "rules": [
        "LR-INV-04"
      ]
    },
    {
      "id": "award-is-result",
      "kind": "negative",
      "input": "A qualification award replaces the Learning Result.",
      "expect": "Normatively, the identity collapse is non-conformant.",
      "rules": [
        "LR-INV-05"
      ]
    },
    {
      "id": "result-is-credential",
      "kind": "negative",
      "input": "A Learning Result is exposed as a credential.",
      "expect": "Normatively, the identity collapse is non-conformant.",
      "rules": [
        "LR-INV-06"
      ]
    },
    {
      "id": "missing-objective-version",
      "kind": "negative",
      "input": "A result cites only an objective label.",
      "expect": "Normatively, the result is non-conformant without objective-version identity.",
      "rules": [
        "LR-INV-07"
      ]
    },
    {
      "id": "indeterminate-not-fail",
      "kind": "negative",
      "input": "An indeterminate result is collapsed to not-achieved.",
      "expect": "Normatively, the collapse is non-conformant.",
      "rules": [
        "LR-INV-08"
      ]
    },
    {
      "id": "pool-entry-complete",
      "kind": "semantic",
      "input": "A pool entry omits validity or readiness target pin.",
      "expect": "Normatively, it is non-conformant.",
      "rules": [
        "LR-INV-09"
      ]
    },
    {
      "id": "attribution-required",
      "kind": "semantic",
      "input": "A state changes without actor or recorded time.",
      "expect": "Normatively, it is non-conformant.",
      "rules": [
        "LR-INV-10"
      ]
    },
    {
      "id": "chain-required",
      "kind": "semantic",
      "input": "A successor omits its predecessor reference.",
      "expect": "Normatively, it is non-conformant.",
      "rules": [
        "LR-INV-11"
      ]
    },
    {
      "id": "transfer-pin",
      "kind": "semantic",
      "input": "A transfer rewrites the predecessor Program Version pin.",
      "expect": "Normatively, it is non-conformant.",
      "rules": [
        "LR-INV-12"
      ]
    },
    {
      "id": "void-tombstone",
      "kind": "semantic",
      "input": "A voided result loses actor, reason or tombstone.",
      "expect": "Normatively, it is non-conformant.",
      "rules": [
        "LR-INV-13"
      ]
    },
    {
      "id": "effective-outcome",
      "kind": "semantic",
      "input": "Two valid results tie on ordering.",
      "expect": "Normatively, the effective outcome is contested.",
      "rules": [
        "LR-INV-14"
      ]
    }
  ],
  "status": "declarative-normative-expectations"
}
