{
  "schemaVersion": "source-freshness-status-v1",
  "generatedAt": "2026-07-02T00:21:25.945Z",
  "overallStatus": "fresh-with-known-gaps",
  "purpose": "Machine-readable source freshness and automation boundary status for Kickoff Lens public data, five-league release gates, and monetization readiness.",
  "worldCup": {
    "status": "fresh-with-known-gaps",
    "generatedAt": "2026-07-01T23:00:06.286Z",
    "temporalUpdatedAt": "2026-07-02T00:20:39.791Z",
    "rankingUpdatedAt": "2026-07-02T00:20:36.109Z",
    "sourceDataAgeHours": 0,
    "rankingMode": "fifa-live-unofficial",
    "rankingSource": "https://api.fifa.com/api/v3/fifarankings/rankings/live?gender=1&sportType=0&language=en-GB",
    "officialRankingDate": "2026-06-11",
    "nextOfficialRankingDate": "2026-07-20",
    "teams": 48,
    "matches": 104,
    "knownFixtureCount": 88,
    "finished": 81,
    "inProgress": 1,
    "pendingResults": 0,
    "fullSquadPlayers": 1248,
    "eventTimelineIncompleteCount": 4,
    "eventTimelineIncompleteIds": [
      "m28",
      "m26",
      "m72",
      "m82"
    ],
    "note": "Final score confirmation and event timeline completeness are separate. Missing timelines are surfaced as data gaps instead of blocking verified scores."
  },
  "clubFootball": {
    "status": "release-gated-operational",
    "maintenanceSchemaVersion": "five-league-maintenance-status-v1",
    "releaseSchemaVersion": "club-football-release-status-v1",
    "maintenanceStatus": "release-gated-operational",
    "releaseStatus": "framework-public-data-private",
    "competitionCount": 5,
    "productAreaCount": 25,
    "sourceRegistryCount": 15,
    "releaseCandidateCount": 5,
    "publicLayerAligned": true,
    "allThemeRoutesInSitemap": true,
    "allCandidateRoutesNoindexOnly": true,
    "note": "Five major league pages are public product/data-room pages. Club, player, matchweek, and recap long-tail pages remain gated until source and originality requirements pass."
  },
  "monetizationPublicSide": {
    "status": "public-side-ready-review-pending",
    "adsenseSchemaVersion": "adsense-readiness-status-v1",
    "publicReadiness": "public-side-ready-review-pending",
    "approvalClaim": false,
    "accountStatusBoundary": "This file does not claim Google AdSense approval, ad serving, payment readiness, or Policy Center clearance. Those private account-side states must be checked inside Google AdSense.",
    "notVerified": [
      "Google AdSense site approval state",
      "Google AdSense Policy Center state",
      "Google payment profile and tax state",
      "Google ad serving enabled state",
      "Google Search Console manual actions or account notices",
      "Bing Webmaster Tools account-side warnings"
    ],
    "note": "This status only records public-side readiness. Google AdSense account approval, Policy Center state, payment readiness, and live ad serving must still be checked in Google."
  },
  "automation": {
    "status": "passed",
    "opsSchemaVersion": "ops-maintenance-status-v1",
    "mode": "dry-run",
    "lastStartedAt": "2026-07-02T00:20:33.651Z",
    "lastFinishedAt": "2026-07-02T00:21:01.739Z",
    "nextAction": "Dry run passed. Review generated files, then run npm run ops:auto-maintain when ready to deploy.",
    "note": "ops-agent owns live score/ranking refreshes. The overseas project owns static build, checks, release gates, deploy packaging, and IndexNow submissions."
  },
  "nextActions": [
    "Keep World Cup data refreshed through ops-agent and preserve final-score versus event-timeline separation.",
    "Keep five-league long-tail pages noindex until source timestamp, squad-depth note, player-dependency note, matchup context, and correction trail are visible.",
    "Use this status file in future operations dashboards so agents can decide whether to sync, rebuild, deploy, or hold for manual account review.",
    "Do not treat this file as Google AdSense approval or Search Console/Bing account clearance."
  ]
}
