{
  "format": "vercy-enterprise-allocation-fixtures/v2",
  "candidateName": "Strategy",
  "cases": [
    {
      "id": "choice-set",
      "kind": "positive",
      "input": "A strategy selects direct sales and rejects marketplace distribution.",
      "expect": "Both choice and exclusion are explicit.",
      "target": "Strategy",
      "violates": "none (baseline positive case)",
      "closesDefect": "D0-baseline"
    },
    {
      "id": "restatement",
      "kind": "positive",
      "input": "The channel changes after an assumption is defeated.",
      "expect": "A successor release is created.",
      "target": "Strategy",
      "violates": "none (baseline positive case)",
      "closesDefect": "D0-baseline"
    },
    {
      "id": "project-list",
      "kind": "negative",
      "input": "A project list is labelled strategy without choices or horizon.",
      "expect": "The record is rejected.",
      "target": "Strategy",
      "violates": "D0-baseline",
      "closesDefect": "D0-baseline",
      "expectedCode": "EMSTR01-CHO-002"
    },
    {
      "id": "forecast-as-fact",
      "kind": "negative",
      "input": "A scenario projection is relabelled as achieved outcome.",
      "expect": "The assertion is rejected.",
      "target": "Strategy",
      "violates": "D0-baseline",
      "closesDefect": "D0-baseline",
      "expectedCode": "EMSTR01-AUTH-002"
    },
    {
      "id": "str-decision-referent-triple",
      "target": "Strategy",
      "kind": "positive",
      "input": "A StrategyRelease cites rationaleRef to WM-KNW-010, approvalActivityRef to WM-ACT-024 and issuedRecordRef to WM-REC-010 as three distinct referents and restates none of them.",
      "expect": "The release is accepted and all three referents resolve independently.",
      "violates": "none (exercises: Horizon and authority are explicit.)",
      "closesDefect": "D2"
    },
    {
      "id": "str-exclusion-nonempty",
      "target": "Strategy",
      "kind": "positive",
      "input": "A StrategyRelease selects segment X through a direct channel and records marketplace distribution as an explicitly rejected alternative with its exclusion reason.",
      "expect": "The release is accepted with non-empty excludedChoices.",
      "violates": "none (exercises: Each release explicitly rejects an alternative.)",
      "closesDefect": "D17"
    },
    {
      "id": "str-alignment-basis-rationale",
      "target": "Strategy",
      "kind": "positive",
      "input": "An AlignmentAssertion links a WM-KNW-011 objective to a strategic theme with basisKind 'rationale' and a cited rationale reference.",
      "expect": "The assertion is accepted and the basis is attributable.",
      "violates": "none (exercises: Alignment requires attributable basis.)",
      "closesDefect": "D11"
    },
    {
      "id": "theme-reassignment-is-new-containment",
      "target": "Strategy",
      "kind": "positive",
      "input": "A strategic theme is moved from one strategy to another and is recorded as a new containment under the receiving strategy release.",
      "expect": "The move is accepted as a new containment; the theme acquires no root identity and no independent lifecycle.",
      "violates": "none (exercises: Themes remain release-owned children.)",
      "closesDefect": "D9"
    },
    {
      "id": "str-unadmitted-reference-target",
      "target": "Strategy",
      "kind": "negative",
      "input": "A strategy reference entry names a referent identifier that is not in the admitted reuse set or the legacy-only set.",
      "expect": "The entry is rejected and must be rewritten with target null and targetState declared-unallocated.",
      "violates": "Blocked referents are never silently promoted.",
      "closesDefect": "D1",
      "expectedCode": "EMSTR01-REF-001"
    },
    {
      "id": "str-missing-approval-occurrence",
      "target": "Strategy",
      "kind": "negative",
      "input": "A StrategyRelease carries a single decisionRef intended to serve as rationale, approval occurrence and issued expression at once.",
      "expect": "The release is rejected; three distinct referents to WM-KNW-010, WM-ACT-024 and WM-REC-010 are required.",
      "violates": "Horizon and authority are explicit.",
      "closesDefect": "D2",
      "expectedCode": "EMSTR01-REF-002"
    },
    {
      "id": "theme-claimed-as-root",
      "target": "Strategy",
      "kind": "negative",
      "input": "A strategic theme is submitted with its own identity, authority and lifecycle and no containing strategy.",
      "expect": "The submission is rejected; a theme exists only within a Strategy release.",
      "violates": "Themes remain release-owned children.",
      "closesDefect": "D9",
      "expectedCode": "EMSTR01-CNT-001"
    },
    {
      "id": "str-owns-benefit-and-forecast",
      "target": "Strategy",
      "kind": "negative",
      "input": "A strategy release records a forecast figure and a realized benefit among its own attributes.",
      "expect": "Both attributes are rejected; Strategy never records a forecast, an observed outcome or a realized benefit.",
      "violates": "Strategy never records a forecast, an observed outcome or a realized benefit.",
      "closesDefect": "D10",
      "expectedCode": "EMSTR01-BND-001"
    },
    {
      "id": "str-none-considered-escape",
      "target": "Strategy",
      "kind": "negative",
      "input": "A strategy release leaves excludedChoices empty and supplies a none-considered rationale in its place.",
      "expect": "The release is rejected; a none-considered rationale does not satisfy the rejected-alternative invariant.",
      "violates": "excludedChoices is non-empty; a none-considered rationale does not satisfy this invariant.",
      "closesDefect": "D17",
      "expectedCode": "EMSTR01-CHO-001"
    },
    {
      "id": "str-alignment-by-tag",
      "target": "Strategy",
      "kind": "negative",
      "input": "An alignment assertion between an initiative and a strategic theme states its basis as a shared tag and a shared budget line.",
      "expect": "The assertion is rejected; tag, budget line, portfolio membership and reporting line are forbidden bases.",
      "violates": "Alignment requires attributable basis.",
      "closesDefect": "D11",
      "expectedCode": "EMSTR01-ALN-001"
    },
    {
      "id": "initiative-substituted-for-choice",
      "target": "Strategy",
      "kind": "negative",
      "input": "A WM-ACT-030 initiative record is registered as the strategy's choice set.",
      "expect": "The registration is rejected; an initiative realizes a choice and is not the choice.",
      "violates": "Initiatives and portfolios never substitute for strategy.",
      "closesDefect": "D10",
      "expectedCode": "EMSTR01-CHO-002"
    }
  ],
  "fixtureShapeVersion": "vercy-enterprise-allocation-fixtures/v2"
}
