{
  "format": "vercy-world-model-fixtures/v1",
  "modelId": "WM-ACT-006",
  "version": "0.1.0-candidate.2",
  "cases": [
    {
      "id": "idempotent-reimport",
      "kind": "positive",
      "input": "Import the same scoped export twice.",
      "expect": "One task and transition set remain with zero assertion churn."
    },
    {
      "id": "crosswalk-version-bump",
      "kind": "positive",
      "input": "A newer crosswalk remaps an existing source transition.",
      "expect": "Source-event identity remains stable and a versioned mapping assertion supersedes the old mapping."
    },
    {
      "id": "same-second-transitions",
      "kind": "positive",
      "input": "Two transitions have the same occurrence second and distinct source ordinals.",
      "expect": "Both remain ordered and distinct."
    },
    {
      "id": "project-move-key-change",
      "kind": "positive",
      "input": "A task moves container and its human key changes.",
      "expect": "Canonical taskId and immutable source item ID stay stable; aliases are effective-dated."
    },
    {
      "id": "two-master-claims",
      "kind": "negative",
      "input": "Two aliases claim master over the same interval.",
      "expect": "A surfaced conflict is created and neither claim silently wins."
    },
    {
      "id": "closed-fixed-no-acceptance",
      "kind": "negative",
      "input": "Native status is Closed/Fixed with no acceptance evidence.",
      "expect": "Accepted is not asserted; absence remains open-world."
    },
    {
      "id": "reopen-after-accepted",
      "kind": "positive",
      "input": "An accepted item is reopened.",
      "expect": "The prior outcome is explicitly superseded or retracted; history remains."
    },
    {
      "id": "unmapped-status",
      "kind": "negative",
      "input": "A native status has no crosswalk entry.",
      "expect": "A queryable loss record is written; no default canonical state is invented."
    },
    {
      "id": "restricted-absent-vs-empty",
      "kind": "negative",
      "input": "A restricted export omits a field visible in another scope.",
      "expect": "The field is absent under the recorded scope, never interpreted as empty."
    },
    {
      "id": "omitted-versus-deleted",
      "kind": "negative",
      "input": "An item is absent from a later export with no deletion event.",
      "expect": "No tombstone is created until deletion is positively observed."
    },
    {
      "id": "ranked-in-two-backlogs",
      "kind": "positive",
      "input": "One item has different ranks in two selection contexts.",
      "expect": "Ranks coexist as context-item facts and do not mutate Task."
    },
    {
      "id": "kanban-no-iteration",
      "kind": "positive",
      "input": "A Kanban source has no iteration.",
      "expect": "Task state, transitions and outcomes remain complete without Iteration."
    },
    {
      "id": "estimate-unit-change",
      "kind": "positive",
      "input": "An estimate changes from points to hours.",
      "expect": "Separate revisions retain unit scheme versions and are not numerically compared without a declared conversion."
    },
    {
      "id": "writeback-echo",
      "kind": "negative",
      "input": "A locally written update is re-imported from the source.",
      "expect": "Write provenance suppresses an echo assertion while preserving the observation."
    },
    {
      "id": "historical-lifecycle-version",
      "kind": "positive",
      "input": "A transition predates the currently active lifecycle definition.",
      "expect": "Occurrence-time-valid version is used or mapping is explicitly retrospective."
    }
  ]
}
