{
  "format": "vercy-enterprise-allocation-fixtures/v2",
  "candidateName": "Value Stream",
  "cases": [
    {
      "id": "process-redesign",
      "kind": "positive",
      "input": "Internal work is automated without changing recipient stages.",
      "expect": "The stream identity remains stable.",
      "target": "Value Stream",
      "violates": "none (baseline positive case)",
      "closesDefect": "D0-baseline"
    },
    {
      "id": "recipient-change",
      "kind": "positive",
      "input": "The terminal recipient outcome changes.",
      "expect": "A successor stream version is created.",
      "target": "Value Stream",
      "violates": "none (baseline positive case)",
      "closesDefect": "D0-baseline"
    },
    {
      "id": "process-collapse",
      "kind": "negative",
      "input": "A workflow diagram is treated as the value stream.",
      "expect": "The conflation is rejected.",
      "target": "Value Stream",
      "violates": "D0-baseline",
      "closesDefect": "D0-baseline",
      "expectedCode": "EMSTR01-BND-002"
    },
    {
      "id": "completion-benefit",
      "kind": "negative",
      "input": "Process completion is treated as realized benefit.",
      "expect": "The inference is rejected.",
      "target": "Value Stream",
      "violates": "D0-baseline",
      "closesDefect": "D0-baseline",
      "expectedCode": "EMSTR01-AUTH-002"
    },
    {
      "id": "vs-stage-identity-and-criteria",
      "target": "Value Stream",
      "kind": "positive",
      "input": "A ValueStreamVersion contains three Stage records, each with stageKey, recipientValueState, entryCriteria, exitCriteria and sequenceIndex.",
      "expect": "The version is accepted and each stage is individually addressable.",
      "violates": "none (exercises: Entry and exit criteria are explicit.)",
      "closesDefect": "D9"
    },
    {
      "id": "vs-legacy-binding-declared-only",
      "target": "Value Stream",
      "kind": "positive",
      "input": "A stage declares a realization reference to WM-ACT-003 carrying specificationState 'legacy-only' and enforceable false.",
      "expect": "The declaration is accepted as non-enforceable and no process constraint is applied to the stage.",
      "violates": "none (exercises: Blocked capability and process references remain non-enforceable.)",
      "closesDefect": "D7"
    },
    {
      "id": "vs-legacy-binding-enforced",
      "target": "Value Stream",
      "kind": "negative",
      "input": "A stage-to-process binding to WM-ACT-003 is treated as an enforceable constraint and a stage is validated against the legacy process specification.",
      "expect": "The enforcement is rejected; the binding remains declared and non-enforceable pending a current boundary-reviewed specification.",
      "violates": "Blocked capability and process references remain non-enforceable.",
      "closesDefect": "D7",
      "expectedCode": "EMSTR01-REF-003"
    },
    {
      "id": "vs-capability-binding-enforced",
      "target": "Value Stream",
      "kind": "negative",
      "input": "A stage-to-capability binding to WM-ACT-001 is used to gate a value-stream version release.",
      "expect": "The gate is rejected; capability remains a legacy-only completion dependency.",
      "violates": "Blocked capability and process references remain non-enforceable.",
      "closesDefect": "D7",
      "expectedCode": "EMSTR01-REF-003"
    },
    {
      "id": "vs-outcome-master-preempted",
      "target": "Value Stream",
      "kind": "negative",
      "input": "The value stream references WM-MAT-008 as the master of outcome observation for its terminal recipient outcome.",
      "expect": "The reference is rejected; the Outcome and Benefit Realization referent stays identifier-unassigned to EM-STR-02 with target null.",
      "violates": "Output, outcome and benefit remain distinct.",
      "closesDefect": "D8",
      "expectedCode": "EMSTR01-REF-004"
    },
    {
      "id": "stage-without-criteria",
      "target": "Value Stream",
      "kind": "negative",
      "input": "A stage is recorded with a name and sequence only, with no recipientValueState, entryCriteria or exitCriteria.",
      "expect": "The stage is rejected; stage identity and criteria are mandatory.",
      "violates": "Entry and exit criteria are explicit.",
      "closesDefect": "D9",
      "expectedCode": "EMSTR01-CNT-002"
    },
    {
      "id": "stage-defined-by-process",
      "target": "Value Stream",
      "kind": "negative",
      "input": "A process step set is imported and used to define the stage boundaries, so that automating a step changes the stage sequence.",
      "expect": "The definition is rejected; a process may realize a stage but never defines it.",
      "violates": "A process is internal realization, not the stream.",
      "closesDefect": "D7",
      "expectedCode": "EMSTR01-BND-002"
    },
    {
      "id": "vs-owns-value-mechanism",
      "target": "Value Stream",
      "kind": "negative",
      "input": "A value-stream version records revenue and cost logic for the flow it describes.",
      "expect": "The attributes are rejected; the value mechanism is mastered by the Business Model.",
      "violates": "Output, outcome and benefit remain distinct.",
      "closesDefect": "D10",
      "expectedCode": "EMSTR01-BND-001"
    }
  ],
  "fixtureShapeVersion": "vercy-enterprise-allocation-fixtures/v2"
}
