{
  "schema": "MAKNOW_FLR003_SYNTHETIC_CASES_v1",
  "cases": [
    {
      "id": "baseline_aligned",
      "writer_projection": "customer{id:int,name:text}",
      "reader_projection": "customer{id:int,name:text}",
      "environment_projection": "customer{id:int,name:text}",
      "boundary": "writer->reader",
      "diff_kind": "NONE",
      "reader_behavior": "ACCEPTS",
      "failure_signal": "NONE",
      "evidence_complete": true,
      "replication": false,
      "transfer": false,
      "containment_applied": "NONE_REQUIRED",
      "repair_applied": "NONE_REQUIRED",
      "rerun_passed": true
    },
    {
      "id": "additive_nullable_compatible",
      "writer_projection": "customer{id:int,name:text,nickname:text?}",
      "reader_projection": "customer{id:int,name:text}+ignore_unknown",
      "environment_projection": "customer{id:int,name:text,nickname:text?}",
      "boundary": "writer->reader",
      "diff_kind": "ADD_NULLABLE_FIELD",
      "reader_behavior": "IGNORES_UNKNOWN",
      "failure_signal": "NONE",
      "evidence_complete": true,
      "replication": false,
      "transfer": false,
      "containment_applied": "NONE_REQUIRED",
      "repair_applied": "NONE_REQUIRED",
      "rerun_passed": true
    },
    {
      "id": "renamed_required_field_break",
      "writer_projection": "event{account_id:int}",
      "reader_projection": "event{customer_id:int|required}",
      "environment_projection": "n/a",
      "boundary": "writer->reader_decoder",
      "diff_kind": "RENAME_REQUIRED_FIELD",
      "reader_behavior": "REQUIRES_OLD_NAME",
      "failure_signal": "MISSING_REQUIRED_FIELD",
      "evidence_complete": true,
      "replication": false,
      "transfer": false,
      "containment_applied": "PAUSE_ROLLOUT_OR_COMPAT_ALIAS",
      "repair_applied": "READER_ACCEPTS_BOTH_THEN_WRITER_SWITCH_THEN_REMOVE_LEGACY",
      "rerun_passed": true
    },
    {
      "id": "constraint_acceptance_split",
      "writer_projection": "customer{email:text?}",
      "reader_projection": "n/a",
      "environment_projection": "staging:email nullable | target:email NOT NULL",
      "boundary": "writer->storage",
      "diff_kind": "CONSTRAINT_DIVERGENCE",
      "reader_behavior": "STORAGE_ENFORCES_STRICTER_CONSTRAINT",
      "failure_signal": "NULL_REJECTED_AT_TARGET",
      "evidence_complete": true,
      "replication": false,
      "transfer": false,
      "containment_applied": "BLOCK_INCOMPATIBLE_WRITES_OR_ROUTE_SAFE_PATH",
      "repair_applied": "CHOOSE_TARGET_CONTRACT_THEN_BACKFILL_THEN_ALIGN_CONSTRAINTS",
      "rerun_passed": true
    },
    {
      "id": "logical_replication_schema_lag",
      "writer_projection": "publisher.orders{id,total,region}",
      "reader_projection": "subscriber.orders{id,total}",
      "environment_projection": "logical-replication subscriber missing region",
      "boundary": "publisher->subscriber",
      "diff_kind": "SUBSCRIBER_SCHEMA_LAG",
      "reader_behavior": "TARGET_MISSING_WRITTEN_COLUMN",
      "failure_signal": "REPLICATION_APPLY_ERROR",
      "evidence_complete": true,
      "replication": true,
      "transfer": false,
      "containment_applied": "PAUSE_AFFECTED_ROLLOUT_OR_REPLICATION_PATH",
      "repair_applied": "APPLY_ADDITIVE_SUBSCRIBER_SCHEMA_THEN_RESUME_AND_VERIFY",
      "rerun_passed": true
    },
    {
      "id": "type_incompatible_reader",
      "writer_projection": "metric{value:text=\"high\"}",
      "reader_projection": "metric{value:int}",
      "environment_projection": "n/a",
      "boundary": "writer->reader_decoder",
      "diff_kind": "TYPE_CHANGE_NONCONVERTIBLE_VALUE",
      "reader_behavior": "INTEGER_PARSE_REQUIRED",
      "failure_signal": "TYPE_PARSE_ERROR",
      "evidence_complete": true,
      "replication": false,
      "transfer": false,
      "containment_applied": "FREEZE_WRITER_VERSION_OR_COMPAT_TRANSFORM",
      "repair_applied": "MIGRATE_READER_OR_RESTORE_CONVERTIBLE_WRITER_DOMAIN",
      "rerun_passed": true
    },
    {
      "id": "open_incomplete_evidence",
      "writer_projection": "customer{id:int,tier:text}",
      "reader_projection": "MISSING",
      "environment_projection": "UNKNOWN",
      "boundary": "unknown",
      "diff_kind": "POSSIBLE_RENAME",
      "reader_behavior": "UNKNOWN",
      "failure_signal": "INTERMITTENT_DECODE_ERROR",
      "evidence_complete": false,
      "replication": false,
      "transfer": false,
      "containment_applied": "LIMIT_AFFECTED_PATH",
      "repair_applied": "COLLECT_READER_AND_RUNTIME_PROJECTION",
      "rerun_passed": false
    },
    {
      "id": "transfer_event_db_projection",
      "writer_projection": "event_v2{amount_cents:int}",
      "reader_projection": "mapper expects event.total_cents",
      "environment_projection": "db.orders.total_cents:int intentionally retained",
      "boundary": "event->mapper->db",
      "diff_kind": "EVENT_FIELD_RENAME",
      "reader_behavior": "MAPPER_REQUIRES_OLD_EVENT_FIELD",
      "failure_signal": "MAPPER_MISSING_FIELD",
      "evidence_complete": true,
      "replication": false,
      "transfer": true,
      "containment_applied": "PIN_EVENT_V1_OR_COMPAT_MAPPER",
      "repair_applied": "UPDATE_MAPPER_FOR_V2_THEN_REPLAY_EVENT;KEEP_DB_PROJECTION_IF_INTENTIONAL",
      "rerun_passed": true
    }
  ]
}
