{
  "format": "vercy-enterprise-allocation-fixtures/v1",
  "contourId": "EM-FIN-04",
  "candidateKey": "candidate-allocation-offline-consolidation-scope",
  "cases": [
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "knowledge-time-replay",
      "kind": "positive",
      "input": "Scope S-1 revision 2 has effectiveFrom 2026-01-01T00:00:00+02:00 and recordedAt 2026-02-10T09:00:00+02:00. Revision 3 has effectiveFrom 2026-01-01T00:00:00+02:00 and recordedAt 2026-05-01T09:00:00+02:00. Replay is requested at knowledge time 2026-03-01T00:00:00+02:00.",
      "expect": "Only revision 2 resolves; revision 3 is invisible at that knowledge cut even though its valid time covers the period.",
      "invariantRefs": [
        "Valid time and knowledge time remain distinct",
        "Replay at knowledge time T resolves only revisions recorded at or before T"
      ],
      "expectedCode": "KNOWLEDGE_TIME_REPLAY"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "draft-revision-not-pinnable",
      "kind": "negative",
      "input": "Run R1 pins S-1 revision 4 whose status is draft.",
      "expect": "The pin is rejected; only approved or effective revisions are pinnable.",
      "invariantRefs": [
        "Every run pins one immutable scope revision"
      ],
      "expectedCode": "DRAFT_REVISION_NOT_PINNABLE"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "protective-rights-only",
      "kind": "negative",
      "input": "ORG-P holds 60.00% of ORG-C ordinary shares; the only recorded instrument grants protective rights and no control basis is asserted.",
      "expect": "Membership is rejected; an ownership percentage neither establishes nor refutes inclusion.",
      "invariantRefs": [
        "Neither an ownership percentage nor any threshold establishes or refutes membership",
        "Economic ownership, voting power, control and consolidation treatment remain separate assertions"
      ],
      "expectedCode": "PROTECTIVE_RIGHTS_ONLY"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "de-facto-control-below-majority",
      "kind": "positive",
      "input": "ORG-P holds 35.00% of ORG-D ordinary shares (denominator: issued voting ordinary shares) and an evidenced de facto control instrument valid from 2026-03-01T00:00:00+02:00.",
      "expect": "Membership is accepted with purpose, consolidation approach, controlBasisRef, authorityRef, evidenceRefs, validFrom and recordedAt recorded; the holding is cited as input only.",
      "invariantRefs": [
        "Membership requires an evidenced control basis valid in the membership interval",
        "Ownership assertions state right type, class, denominator and time"
      ],
      "expectedCode": "DE_FACTO_CONTROL_BELOW_MAJORITY"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "mid-period-method-change",
      "kind": "positive",
      "input": "ORG-S is consolidated full from 2026-01-01T00:00:00+02:00 and by equity method from 2026-04-16T00:00:00+02:00 inside reporting period 2026-01-01/2026-06-30.",
      "expect": "Revision 3 records two ScopeMembership intervals for ORG-S with distinct consolidationApproach values; the post-change portion is isolable and the two intervals are not additive without a comparability bridge.",
      "invariantRefs": [
        "Membership states interval and consolidation approach",
        "Scope changes produce comparability bridges"
      ],
      "expectedCode": "MID_PERIOD_METHOD_CHANGE"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "membership-purpose-required",
      "kind": "negative",
      "input": "A ScopeMembership for ORG-S omits purpose and relies on the scope-level purpose value 'statutory'.",
      "expect": "The membership is rejected; purpose is asserted per membership and never inherited silently.",
      "invariantRefs": [
        "Every membership states purpose",
        "Management and statutory perimeters remain parallel and non-substitutable"
      ],
      "expectedCode": "MEMBERSHIP_PURPOSE_REQUIRED"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "separate-membership-lists",
      "kind": "negative",
      "input": "The statutory and management perimeters of S-1 revision 2 are recorded as one membership list distinguished only by a per-member flag.",
      "expect": "The shared list is rejected; statutory and management purposes require separate membership sets even where membership overlaps.",
      "invariantRefs": [
        "Statutory and management purposes never share a membership list"
      ],
      "expectedCode": "SEPARATE_MEMBERSHIP_LISTS"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "retired-scope-resolvable",
      "kind": "positive",
      "input": "Scope S-9 is retired on 2026-09-30T23:59:59+02:00; statement edition A1.1 issued 2026-08-14T12:00:00+02:00 cites S-9 revision 4.",
      "expect": "S-9 revision 4 remains resolvable and immutable; the identifier is never recycled.",
      "invariantRefs": [
        "Retired identifiers and revisions remain resolvable",
        "Scope identifiers are never recycled"
      ],
      "expectedCode": "RETIRED_SCOPE_RESOLVABLE"
    },
    {
      "candidateKey": "candidate-allocation-offline-consolidation-scope",
      "id": "control-evidence-restated",
      "kind": "positive",
      "input": "On 2026-11-02T10:00:00+02:00 the control evidence behind ORG-S inclusion is restated.",
      "expect": "A successor revision with changeReason is created; the prior revision and every run already pinning it remain unchanged and resolvable.",
      "invariantRefs": [
        "A successor resolves its predecessor and never replaces it",
        "Original and recalculated perimeters remain resolvable"
      ],
      "expectedCode": "CONTROL_EVIDENCE_RESTATED"
    }
  ]
}
