{
 "zones": [
  "UTC",
  "America/New_York",
  "Europe/London",
  "Australia/Lord_Howe",
  "America/Santiago",
  "Asia/Kuala_Lumpur"
 ],
 "mutants": [
  {
   "id": "K1",
   "platform": "kotlin",
   "kind": "behaviour",
   "description": "daily path off by one",
   "old": "1 + ((steps - 1) % (pool.size - 1)) else steps % pool.size",
   "new": "1 + ((steps - 1) % (pool.size - 1)) else (steps + 1) % pool.size",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 95419,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "K2",
   "platform": "kotlin",
   "kind": "behaviour",
   "description": "boundary instant excluded",
   "old": "var steps = dates.count { it <= now }",
   "new": "var steps = dates.count { it < now }",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 50671,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "K3",
   "platform": "kotlin",
   "kind": "behaviour",
   "description": "tail boundary inclusive",
   "old": "- if (now < today) 1 else 0)",
   "new": "- if (now <= today) 1 else 0)",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 24529,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "K4",
   "platform": "kotlin",
   "kind": "behaviour",
   "description": "rounds elapsed up",
   "old": "val elapsedSeconds = (nowMillis - anchorMillis) / 1000L",
   "new": "val elapsedSeconds = (nowMillis - anchorMillis + 999L) / 1000L",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 3763,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "K5",
   "platform": "kotlin",
   "kind": "behaviour",
   "description": "override slot reused",
   "old": "if (initialQuoteOnly && steps > 0) return 1 + ((steps - 1) % (poolSize - 1)).toInt()",
   "new": "if (initialQuoteOnly && steps > 0) return ((steps - 1) % (poolSize - 1)).toInt()",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 11460,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "K6",
   "platform": "kotlin",
   "kind": "behaviour",
   "description": "civil day in local zone",
   "old": "java.util.Calendar.getInstance(java.util.TimeZone.getTimeZone(\"UTC\"))",
   "new": "java.util.Calendar.getInstance()",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 4933,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "K7",
   "platform": "kotlin",
   "kind": "refactor",
   "description": "rename helper (no behaviour change)",
   "old": "currentPoolIndex",
   "new": "poolIndexAt",
   "contractExit": 1,
   "contractPassed": 21,
   "contractFailed": 1,
   "contractKilled": true,
   "answersChanged": 0,
   "answersCompared": 220228,
   "differentialKilled": false,
   "missingZones": []
  },
  {
   "id": "S1",
   "platform": "swift",
   "kind": "behaviour",
   "description": "boundary instant excluded",
   "old": "let published = scheduleDates.prefix { $0 <= date }.count",
   "new": "let published = scheduleDates.prefix { $0 < date }.count",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 50735,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "S2",
   "platform": "swift",
   "kind": "behaviour",
   "description": "rounds periods",
   "old": "base = elapsed <= 0 ? 0 : Int(elapsed / interval)",
   "new": "base = elapsed <= 0 ? 0 : Int((elapsed / interval).rounded())",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 4544,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "S3",
   "platform": "swift",
   "kind": "behaviour",
   "description": "tail ignores time of day",
   "old": "return published + max(0, days - (date < boundary ? 1 : 0))",
   "new": "return published + max(0, days)",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 8389,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "S4",
   "platform": "swift",
   "kind": "behaviour",
   "description": "override slot reused",
   "old": "return list[1 + ((base - 1) % (list.count - 1))]",
   "new": "return list[base % list.count]",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 32500,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "S5",
   "platform": "swift",
   "kind": "behaviour",
   "description": "ignores authoritative pool",
   "old": "let list = authoritativePool ? self.pool : (eligible.isEmpty ? pool : eligible)",
   "new": "let list = eligible.isEmpty ? pool : eligible",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 70240,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "S6",
   "platform": "swift",
   "kind": "behaviour",
   "description": "timeline gap policy",
   "old": "matchingPolicy: .nextTime",
   "new": "matchingPolicy: .previousTimePreservingSmallerComponents",
   "contractExit": 0,
   "contractPassed": 22,
   "contractFailed": 0,
   "contractKilled": false,
   "answersChanged": 168,
   "answersCompared": 220228,
   "differentialKilled": true,
   "missingZones": []
  },
  {
   "id": "S7",
   "platform": "swift",
   "kind": "refactor",
   "description": "operand order (no behaviour change)",
   "old": "let eligible = pool.filter { $0.tier <= maxTier }",
   "new": "let eligible = pool.filter { maxTier >= $0.tier }",
   "contractExit": 1,
   "contractPassed": 21,
   "contractFailed": 1,
   "contractKilled": true,
   "answersChanged": 0,
   "answersCompared": 220228,
   "differentialKilled": false,
   "missingZones": []
  }
 ],
 "behaviourCount": 12,
 "refactorCount": 2,
 "contractBehaviourKilled": 0,
 "differentialBehaviourKilled": 12,
 "contractRefactorKilled": 2,
 "differentialRefactorKilled": 0
}