{
  "recordedAt": "2026-09-29T12:44:30.217825+00:00",
  "unitTests": {
    "command": "node --test tests/touchline-commercial-model.test.cjs tests/touchline-save-model.test.cjs tests/touchline-transfers-model.test.cjs tests/touchline-relationships-model.test.cjs",
    "passed": 16,
    "failed": 0,
    "checks": [
      "old-contract bonuses after July replacement and expiry",
      "concurrent primary sponsorship exclusivity",
      "daily cash accrual and duplicate prevention",
      "transfer and backup compatibility"
    ]
  },
  "browserTests": [
    {
      "command": "node tests/touchline-commercial-browser.cjs",
      "result": "passed",
      "record": "commercial-validation.json",
      "testedAt": "2026-09-29T12:42:21.494Z",
      "checks": [
        "20 current partner identities and local logos",
        "migration preserves Club Base and budgets; no historical bookings",
        "proposal, next-day counter-offer, signature and delayed activation",
        "Commercial director Office notification",
        "reload, complete backup import and branding persistence",
        "budget reallocation and explicit failed-save rollback",
        "loan wage liability",
        "transfer upfront amount and 24 future instalments, no duplicate booking",
        "weekly payroll and monthly sponsor/retail accounting",
        "9 branded Home/Away/Third proposals, individual review and ChatGPT prompt",
        "signed main partner switches in future kits",
        "independent shirt/shorts/socks match selection",
        "320/390/1280 Partners/Finance/Kits layouts"
      ]
    },
    {
      "command": "node tests/touchline-commercial-transactions-browser.cjs",
      "result": "passed",
      "record": "commercial-transactions-validation.json",
      "testedAt": "2026-09-29T12:41:05.277Z",
      "checks": [
        "actual transfer confirmation and ownership",
        "failed transfer commit restores cash, journal, player ownership and budget",
        "same-day upfront cash and signing fee",
        "24 scheduled instalments",
        "cash reserve enforced in Review deal",
        "actual simulated home match receipt once"
      ]
    },
    {
      "command": "node tests/touchline-multi-season-browser.cjs",
      "result": "passed",
      "record": "multi-season-validation.json",
      "testedAt": "2026-09-29T12:24:12.261Z",
      "checks": [
        "2026/27 archive",
        "2027/28 transition",
        "2028/29 repeated transition",
        "save failure rollback",
        "Club Base and Rotation preservation",
        "acquisition and OVR preservation",
        "new PL/UEFA/cup simulation",
        "calendar reload",
        "9 image proposals",
        "320/390/1280 layouts"
      ]
    },
    {
      "command": "node tests/touchline-save-load-browser.cjs",
      "result": "passed",
      "record": "save-load-validation.json",
      "testedAt": "2026-09-29T12:32:46.215Z",
      "checks": [
        "confirmed team lock",
        "31-minute checkpoint with seconds/RNG/energy/stats",
        "draft substitution not applied",
        "same future result after reload",
        "completed result once",
        "portable archive and KIT bytes",
        "restore commit failure rollback",
        "stale tab/plan refused",
        "manual/automatic/before-load saves",
        "download/import/preview/restore UI",
        "corrupt-primary recovery",
        "320/390/1280 widths"
      ]
    },
    {
      "command": "node tests/touchline-relationships-browser.cjs",
      "result": "passed",
      "record": "relationships-validation.json",
      "testedAt": "2026-09-29T12:34:01.058Z",
      "checks": [
        "player roster and Office navigation",
        "conversation choices and promise",
        "read state/save/reload",
        "response save failure rollback",
        "renewal refusal from unresolved concerns",
        "match morale integration",
        "actual prepared match/eligibility/starting XI survives reload",
        "full-time playing-time ledger and interview",
        "duplicate settlement prevented",
        "press response and social post with cooldown",
        "full portable backup includes relationship state",
        "scout canonical notification/read state",
        "transfer action links",
        "320/390/1280 overflow check"
      ]
    }
  ],
  "actualUserCareerChanged": false,
  "limits": [
    "isolated test careers, not a run on the user career",
    "not the complete repository test suite",
    "not a ten-season full-world acceptance run",
    "private sponsor fees and expiry dates remain labelled game estimates"
  ]
}