{
  "format": "vercy-enterprise-profile-fixtures/v1",
  "profileName": "Report / Statement",
  "cases": [
    {
      "id": "issued-report",
      "kind": "positive",
      "input": "Issue A pins definition v1.2, parameters, input snapshots, cutoff, run and disclosure policy.",
      "expect": "The issue is immutable, explainable and identifier-distinct from run, record and publication."
    },
    {
      "id": "restatement",
      "kind": "positive",
      "input": "An upstream correction changes the report inputs.",
      "expect": "Issue B supersedes A with new snapshots and execution evidence while A remains resolvable."
    },
    {
      "id": "suppressed-slice",
      "kind": "positive",
      "input": "A sensitive slice is withheld under policy.",
      "expect": "The issue records policy version and suppression reason without storing the withheld value in the manifest."
    },
    {
      "id": "overwrite-issued",
      "kind": "negative",
      "input": "A published issue is updated in place after correction.",
      "expect": "The mutation is rejected; a successor issue is required."
    },
    {
      "id": "live-dashboard-citation",
      "kind": "negative",
      "input": "A changing dashboard URL is cited as a fixed report issue.",
      "expect": "The citation is rejected until a frozen evidence-bearing snapshot exists."
    },
    {
      "id": "arbitrary-cross-domain-join",
      "kind": "negative",
      "input": "One projection joins arbitrary HR and financial objects without rights and disclosure checks.",
      "expect": "The issue is rejected because neither report definition nor aggregation bypasses policy and rights checks."
    },
    {
      "id": "coverage-exception",
      "kind": "negative",
      "input": "Execution evidence omits part of the declared reporting period.",
      "expect": "Issuance fails unless an explicit coverage exception is recorded and permitted by policy."
    },
    {
      "id": "publication-before-issue",
      "kind": "negative",
      "input": "A publication case references a report statement still in computed state.",
      "expect": "The publication reference is rejected until the report issue reaches issued state."
    },
    {
      "id": "snapshot-without-execution",
      "kind": "negative",
      "input": "A dashboard snapshot has filters and a cutoff but no complete execution evidence.",
      "expect": "No report issue is minted; the view remains ephemeral and non-citable."
    },
    {
      "id": "state-bound-artifact-cardinality",
      "kind": "negative",
      "input": "A computed issue has no record rendition yet and later receives two artifact renditions.",
      "expect": "The computed state remains valid; issuance requires the evidence tuple, while zero-to-many external artifact references may be attached without merging identities."
    },
    {
      "id": "as-of-ordering",
      "kind": "negative",
      "input": "A producer sets asOfAt before cutoffAt or issuedAt before asOfAt.",
      "expect": "Validation rejects the issue because reportingPeriod.end, cutoffAt, asOfAt and issuedAt must be ordered."
    },
    {
      "id": "binding-widening",
      "kind": "negative",
      "input": "An issue introduces a query binding absent from the pinned definition version.",
      "expect": "Validation rejects the issue because resolved bindings may narrow or instantiate, but never exceed, the definition bindings."
    }
  ]
}
