{
  "format": "vercy-model-allocation-fixtures/v1",
  "contourId": "EM-PEO-03",
  "candidateRevision": 3,
  "proposedName": "Proficiency Scale",
  "declarative": true,
  "fixturesExecuted": false,
  "caseCount": 16,
  "cases": [
    {
      "id": "scale-level-resolves",
      "kind": "positive",
      "input": "A result cites scale version V and level L.",
      "expect": "L must resolve inside V with descriptor and ordinal position.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "level-interpretation-version-scoped",
      "kind": "negative",
      "input": "A v1 level interpretation is reused for v2.",
      "expect": "The cross-version interpretation must be rejected.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "ordinal-arithmetic",
      "kind": "negative",
      "input": "A consumer averages ordinal level numbers.",
      "expect": "The arithmetic inference must be rejected.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "missing-not-zero",
      "kind": "negative",
      "input": "A result is missing or indeterminate.",
      "expect": "No level is created.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "measurement-construct-change",
      "kind": "negative",
      "input": "An ordinal scale becomes ratio under the same scale identity.",
      "expect": "A new scale is required.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "descriptor-change-new-version",
      "kind": "positive",
      "input": "A level descriptor changes.",
      "expect": "A successor ScaleVersion is created and old results stay pinned.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "mapping-endpoint-unresolved",
      "kind": "negative",
      "input": "A target level is absent from the pinned target version.",
      "expect": "The mapping must be rejected.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "mapping-self-loop",
      "kind": "negative",
      "input": "A mapping maps a level to itself in the same version.",
      "expect": "The mapping must be rejected.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "lossy-directional-map",
      "kind": "positive",
      "input": "Placeholder scheme A level L4 maps to scheme B level P for a purpose.",
      "expect": "The mapping records both pins, loss, direction and authority.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "reverse-not-implied",
      "kind": "negative",
      "input": "A consumer reverses that mapping.",
      "expect": "No reverse mapping exists.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "transitive-not-implied",
      "kind": "negative",
      "input": "Two maps are chained.",
      "expect": "No transitive map or person assertion is created.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "mapping-person",
      "kind": "negative",
      "input": "A mapping is applied directly to a person's assertion.",
      "expect": "The operation must be rejected.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "target-endorsement",
      "kind": "positive",
      "input": "Issuer and target authority differ.",
      "expect": "Endorsement remains explicit and false unless separately recorded.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "retired-history",
      "kind": "positive",
      "input": "A scale version is retired.",
      "expect": "Historical results remain resolvable.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "undeclared-transition",
      "kind": "negative",
      "input": "A scale becomes retired without a declared operation.",
      "expect": "The transition must be rejected.",
      "fixturesExecuted": false,
      "expectationOnly": true
    },
    {
      "id": "review-slug-not-id",
      "kind": "negative",
      "input": "A consumer treats the pre-allocation slug as a registry ID.",
      "expect": "The registry claim must be rejected.",
      "fixturesExecuted": false,
      "expectationOnly": true
    }
  ]
}
