{
  "components": {
    "schemas": {
      "BacktestResultDetail": {
        "properties": {
          "naive_baseline_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Naive Baseline Points"
          },
          "no_moves_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "No Moves Points"
          },
          "optimal_lineup_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Optimal Lineup Points"
          },
          "our_draft_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Draft Points"
          },
          "our_lineup_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Lineup Points"
          },
          "our_waiver_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Waiver Points"
          },
          "pure_adp_draft_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pure Adp Draft Points"
          },
          "run_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run At"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "summary_json": {
            "additionalProperties": true,
            "title": "Summary Json",
            "type": "object"
          }
        },
        "required": [
          "season",
          "summary_json"
        ],
        "title": "BacktestResultDetail",
        "type": "object"
      },
      "BacktestResultSummary": {
        "properties": {
          "naive_baseline_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Naive Baseline Points"
          },
          "no_moves_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "No Moves Points"
          },
          "optimal_lineup_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Optimal Lineup Points"
          },
          "our_draft_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Draft Points"
          },
          "our_lineup_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Lineup Points"
          },
          "our_waiver_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Waiver Points"
          },
          "pure_adp_draft_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pure Adp Draft Points"
          },
          "run_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run At"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          }
        },
        "required": [
          "season"
        ],
        "title": "BacktestResultSummary",
        "type": "object"
      },
      "ByeCoverage": {
        "properties": {
          "counterparty": {
            "$ref": "#/components/schemas/TeamByeCoverage"
          },
          "us": {
            "$ref": "#/components/schemas/TeamByeCoverage"
          }
        },
        "required": [
          "us",
          "counterparty"
        ],
        "title": "ByeCoverage",
        "type": "object"
      },
      "ByeOutlook": {
        "properties": {
          "crunch_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Crunch Weeks",
            "type": "array"
          },
          "median_lineup_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Median Lineup Value"
          },
          "weeks": {
            "items": {
              "$ref": "#/components/schemas/ByeOutlookWeek"
            },
            "title": "Weeks",
            "type": "array"
          }
        },
        "required": [
          "median_lineup_value",
          "crunch_weeks",
          "weeks"
        ],
        "title": "ByeOutlook",
        "type": "object"
      },
      "ByeOutlookPlayer": {
        "properties": {
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "nfl_bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nfl Bye Week"
          },
          "nfl_team": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nfl Team"
          },
          "position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Position"
          }
        },
        "required": [
          "espn_id",
          "name",
          "position",
          "nfl_team",
          "nfl_bye_week"
        ],
        "title": "ByeOutlookPlayer",
        "type": "object"
      },
      "ByeOutlookWeek": {
        "properties": {
          "crunch": {
            "title": "Crunch",
            "type": "boolean"
          },
          "held_slots": {
            "items": {
              "type": "string"
            },
            "title": "Held Slots",
            "type": "array"
          },
          "on_bye": {
            "items": {
              "type": "string"
            },
            "title": "On Bye",
            "type": "array"
          },
          "replacement_level_starters": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Level Starters"
          },
          "shortfall": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shortfall"
          },
          "unfilled_slots": {
            "items": {
              "type": "string"
            },
            "title": "Unfilled Slots",
            "type": "array"
          },
          "unknown": {
            "items": {
              "type": "string"
            },
            "title": "Unknown",
            "type": "array"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week",
          "value",
          "shortfall",
          "unfilled_slots",
          "held_slots",
          "on_bye",
          "unknown",
          "replacement_level_starters",
          "crunch"
        ],
        "title": "ByeOutlookWeek",
        "type": "object"
      },
      "CancelRunResponse": {
        "properties": {
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "status"
        ],
        "title": "CancelRunResponse",
        "type": "object"
      },
      "CandidatePlayer": {
        "properties": {
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "nfl_bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nfl Bye Week"
          },
          "nfl_team": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nfl Team"
          },
          "player_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Player Id"
          },
          "position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Position"
          },
          "vorp": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp"
          }
        },
        "required": [
          "espn_id",
          "player_id",
          "name",
          "position",
          "nfl_team",
          "vorp",
          "nfl_bye_week"
        ],
        "title": "CandidatePlayer",
        "type": "object"
      },
      "ChainInfo": {
        "properties": {
          "max_duration_seconds": {
            "title": "Max Duration Seconds",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "pause": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PauseInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "schedule": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schedule"
          },
          "steps": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ChainStepInfo"
            },
            "title": "Steps",
            "type": "object"
          }
        },
        "required": [
          "name",
          "max_duration_seconds",
          "steps"
        ],
        "title": "ChainInfo",
        "type": "object"
      },
      "ChainStepInfo": {
        "properties": {
          "after": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "After",
            "type": "array"
          },
          "last_run": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LastRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "latest": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest"
          }
        },
        "required": [
          "after"
        ],
        "title": "ChainStepInfo",
        "type": "object"
      },
      "ChatGrounding": {
        "properties": {
          "free_agents": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Free Agents"
          },
          "roster_deficits": {
            "additionalProperties": true,
            "title": "Roster Deficits",
            "type": "object"
          },
          "team_roster": {
            "additionalProperties": true,
            "title": "Team Roster",
            "type": "object"
          },
          "trade_evaluation": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trade Evaluation"
          },
          "waiver_recommendations": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Waiver Recommendations"
          }
        },
        "required": [
          "team_roster",
          "roster_deficits"
        ],
        "title": "ChatGrounding",
        "type": "object"
      },
      "ChatQueryRequest": {
        "properties": {
          "question": {
            "title": "Question",
            "type": "string"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          },
          "trade_proposal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TradeProposal"
              },
              {
                "type": "null"
              }
            ]
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "question",
          "season",
          "week",
          "team_id"
        ],
        "title": "ChatQueryRequest",
        "type": "object"
      },
      "ChatQueryResponse": {
        "properties": {
          "answer": {
            "title": "Answer",
            "type": "string"
          },
          "grounding": {
            "$ref": "#/components/schemas/ChatGrounding"
          },
          "latency_ms": {
            "title": "Latency Ms",
            "type": "integer"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          }
        },
        "required": [
          "answer",
          "provider",
          "model",
          "latency_ms",
          "grounding"
        ],
        "title": "ChatQueryResponse",
        "type": "object"
      },
      "CommittedPlayer": {
        "properties": {
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "offer_keys": {
            "items": {
              "type": "string"
            },
            "title": "Offer Keys",
            "type": "array"
          }
        },
        "required": [
          "espn_id",
          "offer_keys"
        ],
        "title": "CommittedPlayer",
        "type": "object"
      },
      "ContextCoverage": {
        "properties": {
          "missing_metric_count": {
            "title": "Missing Metric Count",
            "type": "integer"
          },
          "unmapped_espn_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unmapped Espn Ids",
            "type": "array"
          }
        },
        "required": [
          "unmapped_espn_ids",
          "missing_metric_count"
        ],
        "title": "ContextCoverage",
        "type": "object"
      },
      "CounterRequest": {
        "additionalProperties": false,
        "properties": {
          "approved_by": {
            "description": "Required human approver audit label; the API key authenticates the caller, not this identity.",
            "maxLength": 200,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "review_token": {
            "description": "`review_token` from the GET /v1/trade/incoming row the human reviewed.",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Review Token",
            "type": "string"
          },
          "week": {
            "maximum": 18.0,
            "minimum": 1.0,
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "approved_by",
          "review_token",
          "week"
        ],
        "title": "CounterRequest",
        "type": "object"
      },
      "DeadLetterQueue": {
        "properties": {
          "messages": {
            "title": "Messages",
            "type": "integer"
          },
          "queue": {
            "title": "Queue",
            "type": "string"
          }
        },
        "required": [
          "queue",
          "messages"
        ],
        "title": "DeadLetterQueue",
        "type": "object"
      },
      "DecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "accept",
              "decline"
            ],
            "title": "Action",
            "type": "string"
          },
          "approved_by": {
            "description": "Required human approver audit label; the API key authenticates the caller, not this identity.",
            "maxLength": 200,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "comment": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "review_token": {
            "description": "`review_token` from the GET /v1/trade/incoming row the human reviewed.",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Review Token",
            "type": "string"
          }
        },
        "required": [
          "approved_by",
          "review_token",
          "action"
        ],
        "title": "DecisionRequest",
        "type": "object"
      },
      "DraftAutoPublishRequest": {
        "properties": {
          "enabled": {
            "description": "False disables auto-publish (recorded as disabled_by='manual'); true re-enables it (clears disabled_by)",
            "title": "Enabled",
            "type": "boolean"
          },
          "league_id": {
            "description": "League whose auto-publish kill switch should be toggled",
            "title": "League Id",
            "type": "string"
          }
        },
        "required": [
          "league_id",
          "enabled"
        ],
        "title": "DraftAutoPublishRequest",
        "type": "object"
      },
      "DraftConfigPayload": {
        "properties": {
          "auto_publish_enabled": {
            "default": true,
            "description": "Manual kill switch (#108/#109) for hold_and_publish's auto-publish. Defaults True so existing callers that never send this field see no behavior change.",
            "title": "Auto Publish Enabled",
            "type": "boolean"
          },
          "league_id": {
            "description": "ESPN league identifier the draft-sync Job should target",
            "title": "League Id",
            "type": "string"
          },
          "mode": {
            "default": "live",
            "description": "'practice' for ESPN mock draft rooms; tags the Job/status so a practice run is never mistaken for the real Draft Day",
            "enum": [
              "live",
              "practice"
            ],
            "title": "Mode",
            "type": "string"
          },
          "season": {
            "description": "Season year, e.g. 2026",
            "title": "Season",
            "type": "integer"
          },
          "team_id": {
            "description": "Our own team_id within that league",
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "league_id",
          "team_id",
          "season"
        ],
        "title": "DraftConfigPayload",
        "type": "object"
      },
      "DraftPauseRequest": {
        "properties": {
          "league_id": {
            "description": "League whose auto-draft should be paused/resumed",
            "title": "League Id",
            "type": "string"
          },
          "pick_number": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pick to pause; defaults to the next pick currently on the recommendation board",
            "title": "Pick Number"
          }
        },
        "required": [
          "league_id"
        ],
        "title": "DraftPauseRequest",
        "type": "object"
      },
      "DraftPickSummary": {
        "properties": {
          "espn_player_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ESPN's own player id, as it arrived on the draft stream. Null only on picks recorded before this column existed.",
            "title": "Espn Player Id"
          },
          "matchup_coefficient": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Player's most recent weekly_stats.matchup_coefficient, same current-value caveat as vorp_score.",
            "title": "Matchup Coefficient"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Joined from players; null if the player row is missing",
            "title": "Name"
          },
          "pick_number": {
            "title": "Pick Number",
            "type": "integer"
          },
          "player_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Internal players.player_id (Sleeper-namespaced). Null when the ESPN->internal crosswalk has no entry for this player - always the case for K and D/ST, which players does not carry.",
            "title": "Player Id"
          },
          "position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Joined from players; null if the player row is missing",
            "title": "Position"
          },
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Player's most recent weekly_stats.projected_points, same current-value caveat as vorp_score.",
            "title": "Projected Points"
          },
          "round": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Round"
          },
          "scarcity_multiplier": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Player's most recent weekly_stats.scarcity_multiplier, same current-value caveat as vorp_score.",
            "title": "Scarcity Multiplier"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          },
          "vorp_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Player's most recent weekly_stats.vorp_score - a CURRENT pipeline value, not a snapshot frozen at pick time. Null if the player has no weekly_stats row (e.g. no crosswalk entry) or has no VORP computed yet.",
            "title": "Vorp Score"
          },
          "was_autodrafted": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if this pick landed on a different player than the last target we actually attempted to publish for its pick_number (or no attempt was ever recorded, e.g. auto-publish was off) - i.e. ESPN's clock ran out and the room picked on our behalf rather than our recommendation landing. Only ever meaningful for our own team's picks; always null for opponent picks, since the concept of 'a target we attempted' does not apply to them.",
            "title": "Was Autodrafted"
          }
        },
        "required": [
          "pick_number",
          "round",
          "team_id"
        ],
        "title": "DraftPickSummary",
        "type": "object"
      },
      "DraftPickTriggerPayload": {
        "properties": {
          "decision_inputs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "CORE-17 (#35): the scarcity-adjusted VORP (and season) that justified this recommendation. Recorded to bot_decisions; never forwarded to the click bot.",
            "title": "Decision Inputs"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unix timestamp after which this pick must not be enqueued. The caller's HTTP timeout only stops the caller waiting; it does not cancel this handler, which can resume from a blocked broker call and queue a click long after the pick clock has run out - by then ESPN has autodrafted and the click lands on the next team's pick. Checked immediately before the message is published.",
            "title": "Expires At"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Stable per-pick key. A publish that fails ambiguously - a read timeout, or a connection reset after the request was sent - may already have queued a durable message, so the caller's retry would otherwise enqueue a second draft action for the same pick and the worker would click twice. Supplying the same key on every attempt makes the enqueue idempotent. Optional: callers that genuinely want an independent action (a manual override from the UI, say) simply omit it.",
            "title": "Idempotency Key"
          },
          "league_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "League this pick belongs to. With pick_number, lets the gateway revalidate supersession immediately before publishing.",
            "title": "League Id"
          },
          "mode": {
            "anyOf": [
              {
                "enum": [
                  "live",
                  "practice"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Practice/live tag for this pick, forwarded to the click bot so it can safely submit for real in a practice room even when DRY_RUN is unset (which otherwise defaults to true everywhere, live included). Sourced from the caller's own context - draft_matrix.py's listener already knows its mode from the Job's own label/env, and the web UI knows it from the stored draft config - never guessed downstream, since a live league misidentified as practice would defeat the point of the safe default.",
            "title": "Mode"
          },
          "name": {
            "description": "Display name of the recommended draft target, as expected by the click bot",
            "title": "Name",
            "type": "string"
          },
          "pick_number": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Draft slot this target is for. The caller's cancellation flag cannot reach an attempt already blocked inside requests.post, so a pick landing mid-flight would otherwise still be enqueued and clicked against a later slot. The gateway rechecks the listener board's last_processed_pick_number here.",
            "title": "Pick Number"
          },
          "player_id": {
            "description": "ESPN player id of the recommended draft target. Must be ESPN's, not the internal Sleeper players.player_id: the worker clicks button.Button--draft[data-player-id=...] in the draft room, and the two id spaces overlap numerically, so the wrong namespace silently matches a different player",
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "description": "Player's position, for a name+position+team match against ESPN's own player pool",
            "title": "Position",
            "type": "string"
          },
          "pro_team": {
            "description": "Player's NFL team abbreviation, for a name+position+team match against ESPN's own player pool",
            "title": "Pro Team",
            "type": "string"
          },
          "team_id": {
            "description": "Target local league team identification number",
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id",
          "player_id",
          "name",
          "position",
          "pro_team"
        ],
        "title": "DraftPickTriggerPayload",
        "type": "object"
      },
      "DraftStatusResponse": {
        "properties": {
          "auto_publish_disabled_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "'manual' if an operator disabled auto-publish via POST /v1/draft/auto-publish, 'circuit_breaker' if a future automatic safety net tripped it, null if auto-publish has never been disabled for this league",
            "title": "Auto Publish Disabled By"
          },
          "auto_publish_enabled": {
            "default": true,
            "description": "Manual kill switch (#108/#109) for hold_and_publish's auto-publish; True (fail-open) when the draft_config row is unavailable",
            "title": "Auto Publish Enabled",
            "type": "boolean"
          },
          "autodraft_active_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Team whose ESPN autodraft is currently toggled on, from fantasy-browser-worker's live AUTODRAFT WS frame. Null if no team currently has it active or the signal hasn't been seen yet - this is a live toggle state, not a history of past autodrafted picks",
            "title": "Autodraft Active Team Id"
          },
          "connector_health": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "fantasy-browser-worker's draft:{league_id}:health heartbeat, forwarded verbatim (ws_connected, dom_observer, pick_silence_ms, last_pick_seen_at, picks_known, ledger_stats, per-tier ingest counters). Deliberately independent of pipeline_health - an evicted/blind connector and an unhealthy listener are different failures that must stay separately visible. Null if the connector has never written a heartbeat, its 1h TTL expired, or the key was malformed.",
            "title": "Connector Health"
          },
          "draft_state": {
            "description": "'waiting' before the first pick, 'active' while picks remain, 'complete' once picks_seen reaches every team's full roster (#82) - independent of pipeline_health, so a finished draft is never rendered as a degraded connection",
            "enum": [
              "waiting",
              "active",
              "complete"
            ],
            "title": "Draft State",
            "type": "string"
          },
          "job_state": {
            "description": "Active/Succeeded/Failed/Unknown, from the k8s Job's own status",
            "title": "Job State",
            "type": "string"
          },
          "last_clicker_action": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Human-readable outcome of WORKER-06's most recent click for this league (e.g. 'Drafted Breece Hall at 14:32:05', or a failure message), sourced from execution_log; null until the click bot has confirmed a pick",
            "title": "Last Clicker Action"
          },
          "league_id": {
            "title": "League Id",
            "type": "string"
          },
          "listener_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Most recent listener error text, if one was reported by the draft listener runtime.",
            "title": "Listener Error"
          },
          "listener_last_event_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Most recent listener event timestamp as ISO-8601 UTC string.",
            "title": "Listener Last Event At"
          },
          "listener_state": {
            "description": "League-scoped listener lifecycle state derived from the draft board hash and Job status. 'Complete' (#82) is the one terminal value the board's own explicit state - not job_state - can win with even though the Job is no longer Active.",
            "enum": [
              "Active",
              "Starting",
              "Failed",
              "Unknown",
              "Complete"
            ],
            "title": "Listener State",
            "type": "string"
          },
          "mode": {
            "description": "'live' or 'practice', sourced from the draft_config row for this league",
            "title": "Mode",
            "type": "string"
          },
          "on_the_clock_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "fantasy-browser-worker's live SELECTING WS frame when available (real-time, no chicken-and-egg gap for a team's own round-1 pick); falls back to our own snake-draft derivation, which is null until every team's round-1 slot is known, and again once the draft is complete - there is no next pick to be on the clock for",
            "title": "On The Clock Team Id"
          },
          "pipeline_health": {
            "description": "'healthy' iff Postgres/Redis both respond and, while the draft is still active, the draft-sync Job is Active and the listener's last-processed timestamp is fresh; a 'complete' draft only requires Postgres/Redis, since its Job is expected to have exited, else 'degraded'",
            "title": "Pipeline Health",
            "type": "string"
          },
          "recent_errors": {
            "description": "Most recent draft-related error rows from execution_log (limit 5)",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Recent Errors",
            "type": "array"
          },
          "recent_picks": {
            "items": {
              "$ref": "#/components/schemas/DraftPickSummary"
            },
            "title": "Recent Picks",
            "type": "array"
          },
          "recommendation": {
            "additionalProperties": true,
            "description": "Latest recommendation from CORE-08's solver (draft:{league_id}:board), empty if none yet",
            "title": "Recommendation",
            "type": "object"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "team_aggregates": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TeamAggregate"
            },
            "description": "Per-team VORP/projected-points totals, position breakdown, and a value-pick alert for that team's most recent pick - keyed by team_id, same keys as team_rosters.",
            "title": "Team Aggregates",
            "type": "object"
          },
          "team_ids": {
            "description": "Every team_id in the league, from draft_slots, in slot order - independent of who has picked so far. Unlike team_rosters/team_aggregates (which only ever gain a key once a team's first pick lands), this is the source of truth for rendering one comparison column per team, including teams with zero picks. Empty if draft_slots hasn't been synced yet.",
            "items": {
              "type": "string"
            },
            "title": "Team Ids",
            "type": "array"
          },
          "team_rosters": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/DraftPickSummary"
              },
              "type": "array"
            },
            "description": "All draft picks grouped by team_id for full-roster rendering, ordered by pick_number ascending within each team",
            "title": "Team Rosters",
            "type": "object"
          }
        },
        "required": [
          "league_id",
          "season",
          "mode",
          "job_state",
          "recommendation",
          "recent_picks",
          "draft_state",
          "pipeline_health",
          "listener_state"
        ],
        "title": "DraftStatusResponse",
        "type": "object"
      },
      "ExcludedPlayer": {
        "properties": {
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "reason": {
            "enum": [
              "out",
              "nfl_bye",
              "no_metrics",
              "unmapped",
              "unknown_position"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "espn_id",
          "reason"
        ],
        "title": "ExcludedPlayer",
        "type": "object"
      },
      "FantasyScheduleWeek": {
        "properties": {
          "matchup_period": {
            "title": "Matchup Period",
            "type": "integer"
          },
          "opponent_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opponent Name"
          },
          "opponent_strength_z": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opponent Strength Z"
          },
          "opponent_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opponent Team Id"
          },
          "status": {
            "enum": [
              "scheduled",
              "bye",
              "unavailable"
            ],
            "title": "Status",
            "type": "string"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week",
          "matchup_period",
          "status",
          "opponent_team_id",
          "opponent_name",
          "opponent_strength_z"
        ],
        "title": "FantasyScheduleWeek",
        "type": "object"
      },
      "FreeAgentEntry": {
        "properties": {
          "bench_player": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FreeAgentPlayer"
              },
              {
                "type": "null"
              }
            ]
          },
          "bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bye Week"
          },
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "injury_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Injury Status"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "pro_team": {
            "title": "Pro Team",
            "type": "string"
          },
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected Points"
          },
          "vorp_delta": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp Delta"
          },
          "vorp_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp Score"
          }
        },
        "required": [
          "player_id",
          "espn_id",
          "name",
          "position",
          "pro_team"
        ],
        "title": "FreeAgentEntry",
        "type": "object"
      },
      "FreeAgentPlayer": {
        "properties": {
          "bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bye Week"
          },
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "injury_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Injury Status"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "pro_team": {
            "title": "Pro Team",
            "type": "string"
          },
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected Points"
          },
          "vorp_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp Score"
          }
        },
        "required": [
          "player_id",
          "espn_id",
          "name",
          "position",
          "pro_team"
        ],
        "title": "FreeAgentPlayer",
        "type": "object"
      },
      "FreeAgentsResponse": {
        "properties": {
          "free_agents": {
            "items": {
              "$ref": "#/components/schemas/FreeAgentEntry"
            },
            "title": "Free Agents",
            "type": "array"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "source_mode": {
            "enum": [
              "target_week",
              "rolling_prior_weeks"
            ],
            "title": "Source Mode",
            "type": "string"
          },
          "source_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Source Weeks",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "season",
          "week",
          "free_agents",
          "total",
          "limit",
          "offset",
          "source_mode",
          "source_weeks"
        ],
        "title": "FreeAgentsResponse",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "InboxPublication": {
        "properties": {
          "action": {
            "anyOf": [
              {
                "enum": [
                  "accept",
                  "decline"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action"
          },
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "title": "Approved By",
            "type": "string"
          },
          "decision_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision Key"
          },
          "fingerprint": {
            "title": "Fingerprint",
            "type": "string"
          },
          "kind": {
            "enum": [
              "decision",
              "counter"
            ],
            "title": "Kind",
            "type": "string"
          },
          "publish_error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Publish Error"
          },
          "retry_of": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retry Of"
          },
          "review_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Token"
          },
          "status": {
            "enum": [
              "pending",
              "queued",
              "failed_before_publish"
            ],
            "title": "Status",
            "type": "string"
          },
          "tracking_id": {
            "title": "Tracking Id",
            "type": "string"
          },
          "verified_not_answered": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified Not Answered"
          }
        },
        "required": [
          "kind",
          "status",
          "tracking_id",
          "approved_by",
          "approved_at",
          "fingerprint"
        ],
        "title": "InboxPublication",
        "type": "object"
      },
      "InboxResponse": {
        "description": "The newest worker response row that blocks the offer: what a retry names.",
        "properties": {
          "action": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action"
          },
          "decision_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision Key"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "status": {
            "enum": [
              "responding",
              "responded",
              "response_unknown",
              "rejected"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status"
        ],
        "title": "InboxResponse",
        "type": "object"
      },
      "InboxScore": {
        "properties": {
          "as_of_week": {
            "title": "As Of Week",
            "type": "integer"
          },
          "complete_horizon": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Complete Horizon"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "exceeds_roster_limit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exceeds Roster Limit"
          },
          "final_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Final Score"
          },
          "partial_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Partial Reasons",
            "type": "array"
          },
          "players": {
            "additionalProperties": {
              "$ref": "#/components/schemas/InboxScorePlayer"
            },
            "title": "Players",
            "type": "object"
          },
          "raw_delta_vorp": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Raw Delta Vorp"
          },
          "retry": {
            "title": "Retry",
            "type": "boolean"
          },
          "scored_at": {
            "format": "date-time",
            "title": "Scored At",
            "type": "string"
          },
          "scored_fingerprint": {
            "title": "Scored Fingerprint",
            "type": "string"
          },
          "scoring_version": {
            "anyOf": [
              {
                "const": "trade-score-v1",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scoring Version"
          },
          "stale": {
            "title": "Stale",
            "type": "boolean"
          },
          "state": {
            "enum": [
              "scored",
              "incomplete",
              "unavailable",
              "unscorable",
              "stale_ownership"
            ],
            "title": "State",
            "type": "string"
          },
          "unavailable_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Unavailable Reasons",
            "type": "array"
          },
          "unmapped_espn_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unmapped Espn Ids",
            "type": "array"
          }
        },
        "required": [
          "state",
          "scoring_version",
          "as_of_week",
          "final_score",
          "complete_horizon",
          "unavailable_reasons",
          "raw_delta_vorp",
          "exceeds_roster_limit",
          "unmapped_espn_ids",
          "partial_reasons",
          "players",
          "scored_fingerprint",
          "scored_at",
          "retry",
          "stale",
          "error"
        ],
        "title": "InboxScore",
        "type": "object"
      },
      "InboxScorePlayer": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "player_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Player Id"
          }
        },
        "required": [
          "player_id",
          "name"
        ],
        "title": "InboxScorePlayer",
        "type": "object"
      },
      "InboxScoreRequest": {
        "additionalProperties": false,
        "properties": {
          "counterparty_team_id": {
            "pattern": "^[1-9]\\d*$",
            "title": "Counterparty Team Id",
            "type": "string"
          },
          "horizon": {
            "anyOf": [
              {
                "maximum": 18.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Horizon"
          },
          "league_id": {
            "pattern": "^[1-9]\\d*$",
            "title": "League Id",
            "type": "string"
          },
          "our_team_id": {
            "pattern": "^[1-9]\\d*$",
            "title": "Our Team Id",
            "type": "string"
          },
          "receive_espn_ids": {
            "items": {
              "pattern": "^-?[1-9]\\d*$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Receive Espn Ids",
            "type": "array"
          },
          "season": {
            "maximum": 2100.0,
            "minimum": 2000.0,
            "title": "Season",
            "type": "integer"
          },
          "send_espn_ids": {
            "items": {
              "pattern": "^-?[1-9]\\d*$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Send Espn Ids",
            "type": "array"
          },
          "week": {
            "maximum": 18.0,
            "minimum": 1.0,
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "league_id",
          "season",
          "week",
          "our_team_id",
          "counterparty_team_id",
          "send_espn_ids",
          "receive_espn_ids"
        ],
        "title": "InboxScoreRequest",
        "type": "object"
      },
      "InboxTriage": {
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "By"
          },
          "snooze_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snooze Until"
          },
          "state": {
            "enum": [
              "new",
              "seen",
              "snoozed",
              "dismissed"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state"
        ],
        "title": "InboxTriage",
        "type": "object"
      },
      "IncomingEvaluation": {
        "description": "The worker's full score evidence for an incoming offer: the exact POST\n/v1/trade/score request and its unmodified response.\n\nDisplay-only. It is exposed only while it describes the same offer version, refresh\nand score as `score`, which alone drives ranking, mappings and publication checks.",
        "properties": {
          "evaluated_at": {
            "description": "Equals `score.scored_at`.",
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "request": {
            "$ref": "#/components/schemas/InboxScoreRequest"
          },
          "score": {
            "$ref": "#/components/schemas/TradeScore"
          },
          "scored_fingerprint": {
            "description": "Equals the offer's `fingerprint` and `score.scored_fingerprint`.",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Scored Fingerprint",
            "type": "string"
          },
          "version": {
            "const": "incoming-trade-evaluation-v1",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "version",
          "evaluated_at",
          "scored_fingerprint",
          "request",
          "score"
        ],
        "title": "IncomingEvaluation",
        "type": "object"
      },
      "IncomingTrade": {
        "properties": {
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "decision": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision"
          },
          "espn_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Status"
          },
          "espn_transaction_id": {
            "title": "Espn Transaction Id",
            "type": "string"
          },
          "espn_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Type"
          },
          "evaluation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IncomingEvaluation"
              },
              {
                "type": "null"
              }
            ]
          },
          "executed_at": {
            "format": "date-time",
            "title": "Executed At",
            "type": "string"
          },
          "exit_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit Reason"
          },
          "expiration_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiration Date"
          },
          "fingerprint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fingerprint"
          },
          "first_seen_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Seen At"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "last_seen_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Seen At"
          },
          "league_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "League Id"
          },
          "missed_reads": {
            "default": 0,
            "title": "Missed Reads",
            "type": "integer"
          },
          "other_items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Other Items",
            "type": "array"
          },
          "our_counter": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OurCounter"
              },
              {
                "type": "null"
              }
            ]
          },
          "our_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Team Id"
          },
          "parse_issues": {
            "items": {
              "type": "string"
            },
            "title": "Parse Issues",
            "type": "array"
          },
          "player_names": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Player Names",
            "type": "object"
          },
          "proposed_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Date"
          },
          "proposing_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposing Team Id"
          },
          "publications": {
            "items": {
              "$ref": "#/components/schemas/InboxPublication"
            },
            "title": "Publications",
            "type": "array"
          },
          "receive_espn_ids": {
            "items": {
              "type": "string"
            },
            "title": "Receive Espn Ids",
            "type": "array"
          },
          "receive_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Receive Players",
            "type": "array"
          },
          "related_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Related Transaction Id"
          },
          "response": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InboxResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "review_token": {
            "description": "Send this back on decision, counter and retry; it changes when the offer does.",
            "title": "Review Token",
            "type": "string"
          },
          "score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InboxScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "season": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Season"
          },
          "send_espn_ids": {
            "items": {
              "type": "string"
            },
            "title": "Send Espn Ids",
            "type": "array"
          },
          "send_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Send Players",
            "type": "array"
          },
          "shadow_policy": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ShadowPolicy"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "thread_root_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thread Root Id"
          },
          "triage": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InboxTriage"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "status",
          "league_id",
          "season",
          "executed_at",
          "espn_transaction_id",
          "send_players",
          "receive_players",
          "review_token"
        ],
        "title": "IncomingTrade",
        "type": "object"
      },
      "IncomingTradeList": {
        "properties": {
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offers": {
            "items": {
              "$ref": "#/components/schemas/IncomingTrade"
            },
            "title": "Offers",
            "type": "array"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          }
        },
        "required": [
          "offers",
          "limit",
          "offset"
        ],
        "title": "IncomingTradeList",
        "type": "object"
      },
      "IrMoveInstruction": {
        "properties": {
          "decision_inputs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Why this move was proposed. Recorded to bot_decisions; never forwarded to the click bot.",
            "title": "Decision Inputs"
          },
          "kind": {
            "description": "'ir' moves player_id into an IR slot; 'activate_ir' moves them out of IR into slot. One player, nobody promoted.",
            "enum": [
              "ir",
              "activate_ir"
            ],
            "title": "Kind",
            "type": "string"
          },
          "player_id": {
            "description": "ESPN player id of the player to move. Must be ESPN's, not the internal Sleeper players.player_id - same id-namespace trap as SwapInstruction's ids",
            "title": "Player Id",
            "type": "string"
          },
          "player_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Display name of the player, for the gateway's id-namespace cross-check.",
            "title": "Player Name"
          },
          "slot": {
            "description": "Target slot: IR for 'ir'; any non-IR slot (normally BENCH) for 'activate_ir'",
            "title": "Slot",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "player_id",
          "slot"
        ],
        "title": "IrMoveInstruction",
        "type": "object"
      },
      "JobHealth": {
        "properties": {
          "attempt": {
            "default": 1,
            "title": "Attempt",
            "type": "integer"
          },
          "chain_root_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Root Id"
          },
          "dedupe_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dedupe Key"
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Reason"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Id"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "input_count": {
            "default": 0,
            "title": "Input Count",
            "type": "integer"
          },
          "job_name": {
            "title": "Job Name",
            "type": "string"
          },
          "llm_count": {
            "default": 0,
            "title": "Llm Count",
            "type": "integer"
          },
          "output_count": {
            "default": 0,
            "title": "Output Count",
            "type": "integer"
          },
          "parent_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Run Id"
          },
          "recent_failures": {
            "default": 0,
            "title": "Recent Failures",
            "type": "integer"
          },
          "requested_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested By"
          },
          "scheduled_for": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled For"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "additionalProperties": true,
            "default": {},
            "title": "Summary",
            "type": "object"
          },
          "trace_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trace Id"
          },
          "trigger": {
            "additionalProperties": true,
            "default": {},
            "title": "Trigger",
            "type": "object"
          },
          "trigger_type": {
            "title": "Trigger Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "job_name",
          "trigger_type",
          "status",
          "started_at"
        ],
        "title": "JobHealth",
        "type": "object"
      },
      "JobHealthList": {
        "properties": {
          "dead_letters": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/DeadLetterQueue"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dead Letters"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/JobHealth"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "JobHealthList",
        "type": "object"
      },
      "JobInfo": {
        "properties": {
          "acts": {
            "title": "Acts",
            "type": "boolean"
          },
          "alert": {
            "title": "Alert",
            "type": "string"
          },
          "command": {
            "items": {
              "type": "string"
            },
            "title": "Command",
            "type": "array"
          },
          "deadline_seconds": {
            "title": "Deadline Seconds",
            "type": "integer"
          },
          "executor": {
            "title": "Executor",
            "type": "string"
          },
          "last_run": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LastRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "max_attempts": {
            "title": "Max Attempts",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "on_event": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "On Event",
            "type": "array"
          },
          "overlap": {
            "title": "Overlap",
            "type": "string"
          },
          "params": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Params",
            "type": "object"
          },
          "pause": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PauseInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "profile": {
            "title": "Profile",
            "type": "string"
          },
          "schedules": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Schedules",
            "type": "array"
          }
        },
        "required": [
          "name",
          "executor",
          "overlap",
          "max_attempts",
          "deadline_seconds",
          "alert",
          "acts",
          "params",
          "profile",
          "command",
          "schedules",
          "on_event"
        ],
        "title": "JobInfo",
        "type": "object"
      },
      "JobsResponse": {
        "properties": {
          "chains": {
            "items": {
              "$ref": "#/components/schemas/ChainInfo"
            },
            "title": "Chains",
            "type": "array"
          },
          "jobs": {
            "items": {
              "$ref": "#/components/schemas/JobInfo"
            },
            "title": "Jobs",
            "type": "array"
          }
        },
        "required": [
          "jobs",
          "chains"
        ],
        "title": "JobsResponse",
        "type": "object"
      },
      "LastRun": {
        "properties": {
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "job_name": {
            "title": "Job Name",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "trigger_type": {
            "title": "Trigger Type",
            "type": "string"
          }
        },
        "required": [
          "job_name",
          "id",
          "status",
          "started_at",
          "trigger_type"
        ],
        "title": "LastRun",
        "type": "object"
      },
      "LauncherHealthResponse": {
        "properties": {
          "heartbeat_age_seconds": {
            "title": "Heartbeat Age Seconds",
            "type": "number"
          },
          "heartbeat_at": {
            "format": "date-time",
            "title": "Heartbeat At",
            "type": "string"
          },
          "queue_depths": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Queue Depths",
            "type": "object"
          },
          "queued_count": {
            "title": "Queued Count",
            "type": "integer"
          },
          "running_count": {
            "title": "Running Count",
            "type": "integer"
          }
        },
        "required": [
          "heartbeat_at",
          "heartbeat_age_seconds",
          "queue_depths",
          "running_count",
          "queued_count"
        ],
        "title": "LauncherHealthResponse",
        "type": "object"
      },
      "LeagueTradeContext": {
        "properties": {
          "as_of_week": {
            "title": "As Of Week",
            "type": "integer"
          },
          "committed_players": {
            "items": {
              "$ref": "#/components/schemas/CommittedPlayer"
            },
            "title": "Committed Players",
            "type": "array"
          },
          "coverage": {
            "$ref": "#/components/schemas/ContextCoverage"
          },
          "end_week": {
            "title": "End Week",
            "type": "integer"
          },
          "league_id": {
            "title": "League Id",
            "type": "string"
          },
          "lineup_slot_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Lineup Slot Counts",
            "type": "object"
          },
          "regular_season_end_week": {
            "title": "Regular Season End Week",
            "type": "integer"
          },
          "roster_snapshot": {
            "$ref": "#/components/schemas/RosterSnapshot"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "start_week": {
            "title": "Start Week",
            "type": "integer"
          },
          "strength_metric": {
            "$ref": "#/components/schemas/StrengthMetric"
          },
          "teams": {
            "additionalProperties": {
              "$ref": "#/components/schemas/TradeContextTeam"
            },
            "title": "Teams",
            "type": "object"
          }
        },
        "required": [
          "league_id",
          "season",
          "as_of_week",
          "start_week",
          "end_week",
          "regular_season_end_week",
          "lineup_slot_counts",
          "roster_snapshot",
          "strength_metric",
          "coverage",
          "teams"
        ],
        "title": "LeagueTradeContext",
        "type": "object"
      },
      "LineupPlayerLine": {
        "properties": {
          "bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bye Week"
          },
          "deficit_flag": {
            "title": "Deficit Flag",
            "type": "boolean"
          },
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "headshot_url": {
            "title": "Headshot Url",
            "type": "string"
          },
          "injury_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Injury Status"
          },
          "ir_suggestion": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ir Suggestion"
          },
          "jersey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jersey"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "net_vorp": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Net Vorp"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "pro_team": {
            "title": "Pro Team",
            "type": "string"
          },
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected Points"
          },
          "rumor_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rumor Confidence"
          },
          "rumor_sentiment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rumor Sentiment"
          },
          "rumor_suggested_action": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rumor Suggested Action"
          },
          "slot": {
            "title": "Slot",
            "type": "string"
          },
          "suggested_swap": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Swap"
          }
        },
        "required": [
          "player_id",
          "espn_id",
          "name",
          "position",
          "slot",
          "pro_team",
          "headshot_url",
          "deficit_flag"
        ],
        "title": "LineupPlayerLine",
        "type": "object"
      },
      "LineupTriggerPayload": {
        "properties": {
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Stable key for this lineup decision (#189). lineup_solver retries a failed publish and the CronJob retries a failed pod, and a retry after an ambiguous failure (read timeout, reset after send) could otherwise enqueue the same swaps twice. Repeats within LINEUP_TRIGGER_IDEMPOTENCY_TTL_SECONDS return status 'duplicate'. Optional: the web UI's manual swaps omit it.",
            "title": "Idempotency Key"
          },
          "optimized_swaps": {
            "description": "Lineup moves, applied in one ESPN transaction. An entry without kind is a bench + promote swap; kind 'ir' / 'activate_ir' moves one player into or out of IR; kind 'move' re-slots one starter.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/SwapInstruction"
                },
                {
                  "$ref": "#/components/schemas/IrMoveInstruction"
                },
                {
                  "$ref": "#/components/schemas/SlotMoveInstruction"
                }
              ]
            },
            "title": "Optimized Swaps",
            "type": "array"
          },
          "team_id": {
            "description": "Target local league team identification number",
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id",
          "optimized_swaps"
        ],
        "title": "LineupTriggerPayload",
        "type": "object"
      },
      "LineupWeek": {
        "properties": {
          "after": {
            "title": "After",
            "type": "number"
          },
          "before": {
            "title": "Before",
            "type": "number"
          },
          "delta": {
            "title": "Delta",
            "type": "number"
          },
          "excluded_players": {
            "items": {
              "$ref": "#/components/schemas/ExcludedPlayer"
            },
            "title": "Excluded Players",
            "type": "array"
          },
          "held_slots": {
            "items": {
              "type": "string"
            },
            "title": "Held Slots",
            "type": "array"
          },
          "starters_after": {
            "items": {
              "$ref": "#/components/schemas/Starter"
            },
            "title": "Starters After",
            "type": "array"
          },
          "starters_before": {
            "items": {
              "$ref": "#/components/schemas/Starter"
            },
            "title": "Starters Before",
            "type": "array"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week",
          "before",
          "after",
          "delta",
          "starters_before",
          "starters_after",
          "held_slots",
          "excluded_players"
        ],
        "title": "LineupWeek",
        "type": "object"
      },
      "MatchupResponse": {
        "properties": {
          "opponent": {
            "$ref": "#/components/schemas/TeamSide"
          },
          "our_team": {
            "$ref": "#/components/schemas/TeamSide"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "season",
          "week",
          "our_team",
          "opponent"
        ],
        "title": "MatchupResponse",
        "type": "object"
      },
      "MoveRequest": {
        "properties": {
          "end_week": {
            "maximum": 18.0,
            "minimum": 1.0,
            "title": "End Week",
            "type": "integer"
          },
          "incoming_espn_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Incoming Espn Ids",
            "type": "array"
          },
          "kind": {
            "enum": [
              "waiver",
              "trade"
            ],
            "title": "Kind",
            "type": "string"
          },
          "outgoing_espn_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Outgoing Espn Ids",
            "type": "array"
          },
          "season": {
            "maximum": 2100.0,
            "minimum": 2000.0,
            "title": "Season",
            "type": "integer"
          },
          "start_week": {
            "maximum": 18.0,
            "minimum": 1.0,
            "title": "Start Week",
            "type": "integer"
          }
        },
        "required": [
          "kind",
          "season",
          "start_week",
          "end_week",
          "incoming_espn_ids"
        ],
        "title": "MoveRequest",
        "type": "object"
      },
      "NegotiationThread": {
        "properties": {
          "counter_limit": {
            "description": "Counters the worker sends per thread before refusing another.",
            "title": "Counter Limit",
            "type": "integer"
          },
          "our_counters": {
            "description": "Counters from us that ESPN has shown; staged-only counters don't count.",
            "title": "Our Counters",
            "type": "integer"
          },
          "state": {
            "anyOf": [
              {
                "enum": [
                  "awaiting_us",
                  "awaiting_them",
                  "agreed",
                  "rejected",
                  "expired",
                  "abandoned"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "thread_root_id": {
            "title": "Thread Root Id",
            "type": "string"
          },
          "turns": {
            "items": {
              "$ref": "#/components/schemas/ThreadTurn"
            },
            "title": "Turns",
            "type": "array"
          }
        },
        "required": [
          "thread_root_id",
          "state",
          "our_counters",
          "counter_limit",
          "turns"
        ],
        "title": "NegotiationThread",
        "type": "object"
      },
      "OfferPlayer": {
        "properties": {
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "required": [
          "espn_id",
          "name"
        ],
        "title": "OfferPlayer",
        "type": "object"
      },
      "OfferResolution": {
        "properties": {
          "espn_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Transaction Id"
          },
          "outcome": {
            "enum": [
              "accepted",
              "declined",
              "expired",
              "withdrawn",
              "vetoed",
              "cancelled"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "resolved_at": {
            "format": "date-time",
            "title": "Resolved At",
            "type": "string"
          }
        },
        "required": [
          "outcome",
          "resolved_at"
        ],
        "title": "OfferResolution",
        "type": "object"
      },
      "OfferResolutionRequest": {
        "additionalProperties": false,
        "properties": {
          "espn_transaction_id": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Transaction Id"
          },
          "outcome": {
            "enum": [
              "accepted",
              "declined",
              "expired",
              "withdrawn",
              "vetoed",
              "cancelled"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "resolved_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          }
        },
        "required": [
          "outcome"
        ],
        "title": "OfferResolutionRequest",
        "type": "object"
      },
      "OfferResolutionResponse": {
        "properties": {
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "espn_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Transaction Id"
          },
          "offer_key": {
            "title": "Offer Key",
            "type": "string"
          },
          "outcome": {
            "enum": [
              "accepted",
              "declined",
              "expired",
              "withdrawn",
              "vetoed",
              "cancelled"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "resolved_at": {
            "format": "date-time",
            "title": "Resolved At",
            "type": "string"
          }
        },
        "required": [
          "outcome",
          "resolved_at",
          "offer_key"
        ],
        "title": "OfferResolutionResponse",
        "type": "object"
      },
      "OurCounter": {
        "properties": {
          "espn_transaction_id": {
            "title": "Espn Transaction Id",
            "type": "string"
          },
          "exit_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit Reason"
          },
          "expiration_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiration Date"
          },
          "missed_reads": {
            "default": 0,
            "title": "Missed Reads",
            "type": "integer"
          },
          "proposed_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Date"
          },
          "receive_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Receive Players",
            "type": "array"
          },
          "seen_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seen At"
          },
          "send_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Send Players",
            "type": "array"
          },
          "status": {
            "enum": [
              "open",
              "unparsed",
              "responding",
              "accepted_pending_processing",
              "accepted",
              "declined",
              "countered",
              "vetoed",
              "expired",
              "withdrawn",
              "closed_unknown"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "espn_transaction_id",
          "status",
          "send_players",
          "receive_players"
        ],
        "title": "OurCounter",
        "type": "object"
      },
      "PauseInfo": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "paused_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paused Until"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "set_at": {
            "format": "date-time",
            "title": "Set At",
            "type": "string"
          },
          "set_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Set By"
          }
        },
        "required": [
          "name",
          "paused_until",
          "set_at"
        ],
        "title": "PauseInfo",
        "type": "object"
      },
      "PauseRequest": {
        "additionalProperties": false,
        "properties": {
          "reason": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Until"
          }
        },
        "required": [
          "reason"
        ],
        "title": "PauseRequest",
        "type": "object"
      },
      "PauseResponse": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "paused_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paused Until"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "name",
          "paused_until",
          "reason"
        ],
        "title": "PauseResponse",
        "type": "object"
      },
      "PitchEvidence": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "id",
          "path",
          "text"
        ],
        "title": "PitchEvidence",
        "type": "object"
      },
      "PlayerLine": {
        "properties": {
          "bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bye Week"
          },
          "deficit_flag": {
            "title": "Deficit Flag",
            "type": "boolean"
          },
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "headshot_url": {
            "title": "Headshot Url",
            "type": "string"
          },
          "jersey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jersey"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Points"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected Points"
          },
          "slot": {
            "title": "Slot",
            "type": "string"
          },
          "suggested_swap": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Swap"
          }
        },
        "required": [
          "player_id",
          "espn_id",
          "name",
          "position",
          "slot",
          "points",
          "projected_points",
          "headshot_url",
          "deficit_flag"
        ],
        "title": "PlayerLine",
        "type": "object"
      },
      "PlayerSearchResult": {
        "properties": {
          "espn_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Id"
          },
          "injury_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Injury Status"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected Points"
          },
          "team": {
            "title": "Team",
            "type": "string"
          },
          "vorp_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp Score"
          }
        },
        "required": [
          "player_id",
          "name",
          "position",
          "team"
        ],
        "title": "PlayerSearchResult",
        "type": "object"
      },
      "PlayerSummaryResponse": {
        "properties": {
          "espn_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Id"
          },
          "injury_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Injury Status"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "recent_news": {
            "items": {
              "$ref": "#/components/schemas/RecentNewsItem"
            },
            "title": "Recent News",
            "type": "array"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "team": {
            "title": "Team",
            "type": "string"
          }
        },
        "required": [
          "player_id",
          "name",
          "position",
          "team",
          "status",
          "recent_news"
        ],
        "title": "PlayerSummaryResponse",
        "type": "object"
      },
      "PlayerWeekMetrics": {
        "properties": {
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected Points"
          },
          "vorp_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp Score"
          }
        },
        "required": [
          "vorp_score",
          "projected_points"
        ],
        "title": "PlayerWeekMetrics",
        "type": "object"
      },
      "PracticeSyncJobRequest": {
        "properties": {
          "room_url": {
            "description": "ESPN mock/practice draft room URL, obtained by manually joining the room in a real browser first (auto-join is blocked by ESPN's reCAPTCHA)",
            "title": "Room Url",
            "type": "string"
          }
        },
        "required": [
          "room_url"
        ],
        "title": "PracticeSyncJobRequest",
        "type": "object"
      },
      "ProposalEvaluation": {
        "description": "Score evidence the worker stored with a generated proposal. `score` is the verbatim\nPOST /v1/trade/score response, and each pitch evidence `path` is a JSON Pointer into it.",
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "pitch": {
            "$ref": "#/components/schemas/ProposalPitch"
          },
          "ranking": {
            "$ref": "#/components/schemas/ProposalRanking"
          },
          "request": {
            "$ref": "#/components/schemas/TradeScoreRequest"
          },
          "score": {
            "$ref": "#/components/schemas/TradeScore"
          },
          "target": {
            "$ref": "#/components/schemas/ProposalTarget"
          },
          "version": {
            "const": "proposal-evaluation-v1",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "version",
          "evaluated_at",
          "request",
          "score",
          "target",
          "ranking",
          "pitch"
        ],
        "title": "ProposalEvaluation",
        "type": "object"
      },
      "ProposalPitch": {
        "properties": {
          "cited_evidence_ids": {
            "items": {
              "type": "string"
            },
            "title": "Cited Evidence Ids",
            "type": "array"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/PitchEvidence"
            },
            "title": "Evidence",
            "type": "array"
          },
          "message": {
            "title": "Message",
            "type": "string"
          }
        },
        "required": [
          "message",
          "evidence",
          "cited_evidence_ids"
        ],
        "title": "ProposalPitch",
        "type": "object"
      },
      "ProposalRanking": {
        "properties": {
          "basis": {
            "enum": [
              "final_score",
              "our_lineup_gain"
            ],
            "title": "Basis",
            "type": "string"
          },
          "packages_eligible": {
            "title": "Packages Eligible",
            "type": "integer"
          },
          "packages_proposed": {
            "title": "Packages Proposed",
            "type": "integer"
          },
          "packages_scored": {
            "title": "Packages Scored",
            "type": "integer"
          },
          "rank": {
            "title": "Rank",
            "type": "integer"
          },
          "value_per_scored_week": {
            "title": "Value Per Scored Week",
            "type": "number"
          }
        },
        "required": [
          "basis",
          "value_per_scored_week",
          "rank",
          "packages_proposed",
          "packages_scored",
          "packages_eligible"
        ],
        "title": "ProposalRanking",
        "type": "object"
      },
      "ProposalTarget": {
        "properties": {
          "deficit": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deficit"
          },
          "position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Position"
          },
          "severity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Severity"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id"
        ],
        "title": "ProposalTarget",
        "type": "object"
      },
      "PublicationReceipt": {
        "properties": {
          "action": {
            "anyOf": [
              {
                "enum": [
                  "accept",
                  "decline"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Action"
          },
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "title": "Approved By",
            "type": "string"
          },
          "decision_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision Key"
          },
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "espn_transaction_id": {
            "title": "Espn Transaction Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "decision",
              "counter"
            ],
            "title": "Kind",
            "type": "string"
          },
          "retry_of": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retry Of"
          },
          "status": {
            "const": "queued",
            "title": "Status",
            "type": "string"
          },
          "tracking_id": {
            "title": "Tracking Id",
            "type": "string"
          }
        },
        "required": [
          "espn_transaction_id",
          "status",
          "kind",
          "tracking_id",
          "approved_by",
          "approved_at"
        ],
        "title": "PublicationReceipt",
        "type": "object"
      },
      "RawVorp": {
        "properties": {
          "delta_vorp": {
            "title": "Delta Vorp",
            "type": "number"
          },
          "incoming_total": {
            "title": "Incoming Total",
            "type": "number"
          },
          "missing_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Missing Player Ids",
            "type": "array"
          },
          "outgoing_total": {
            "title": "Outgoing Total",
            "type": "number"
          },
          "unmapped_espn_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unmapped Espn Ids",
            "type": "array"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week",
          "incoming_total",
          "outgoing_total",
          "delta_vorp",
          "missing_player_ids",
          "unmapped_espn_ids"
        ],
        "title": "RawVorp",
        "type": "object"
      },
      "RecentNewsItem": {
        "properties": {
          "published_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "raw_text": {
            "title": "Raw Text",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "required": [
          "source",
          "raw_text"
        ],
        "title": "RecentNewsItem",
        "type": "object"
      },
      "RetryRequest": {
        "additionalProperties": false,
        "properties": {
          "approved_by": {
            "description": "Required human approver audit label; the API key authenticates the caller, not this identity.",
            "maxLength": 200,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "of_claim_id": {
            "description": "The worker trade_response row to retry, from `response.id`.",
            "minimum": 1.0,
            "title": "Of Claim Id",
            "type": "integer"
          },
          "review_token": {
            "description": "`review_token` from the GET /v1/trade/incoming row the human reviewed.",
            "pattern": "^[0-9a-f]{64}$",
            "title": "Review Token",
            "type": "string"
          },
          "verified_not_answered": {
            "default": false,
            "description": "Required for an unknown outcome: a human checked ESPN and the offer wasn't answered.",
            "title": "Verified Not Answered",
            "type": "boolean"
          }
        },
        "required": [
          "approved_by",
          "review_token",
          "of_claim_id"
        ],
        "title": "RetryRequest",
        "type": "object"
      },
      "RosterDeficitsResponse": {
        "properties": {
          "roster_snapshot": {
            "title": "Roster Snapshot",
            "type": "string"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "teams": {
            "additionalProperties": {
              "additionalProperties": {
                "$ref": "#/components/schemas/RosterPositionDeficit"
              },
              "type": "object"
            },
            "title": "Teams",
            "type": "object"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "season",
          "week",
          "roster_snapshot",
          "teams"
        ],
        "title": "RosterDeficitsResponse",
        "type": "object"
      },
      "RosterImpact": {
        "properties": {
          "counterparty": {
            "$ref": "#/components/schemas/TeamRosterImpact"
          },
          "us": {
            "$ref": "#/components/schemas/TeamRosterImpact"
          }
        },
        "required": [
          "us",
          "counterparty"
        ],
        "title": "RosterImpact",
        "type": "object"
      },
      "RosterPositionDeficit": {
        "properties": {
          "deficit": {
            "title": "Deficit",
            "type": "integer"
          },
          "net_vorp": {
            "title": "Net Vorp",
            "type": "number"
          },
          "rostered": {
            "title": "Rostered",
            "type": "integer"
          },
          "starters_required": {
            "title": "Starters Required",
            "type": "integer"
          }
        },
        "required": [
          "rostered",
          "starters_required",
          "deficit",
          "net_vorp"
        ],
        "title": "RosterPositionDeficit",
        "type": "object"
      },
      "RosterResponse": {
        "properties": {
          "bench": {
            "items": {
              "$ref": "#/components/schemas/LineupPlayerLine"
            },
            "title": "Bench",
            "type": "array"
          },
          "ir_blocking_transactions": {
            "default": false,
            "title": "Ir Blocking Transactions",
            "type": "boolean"
          },
          "lineup_slot_counts": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lineup Slot Counts"
          },
          "starters": {
            "items": {
              "$ref": "#/components/schemas/LineupPlayerLine"
            },
            "title": "Starters",
            "type": "array"
          }
        },
        "required": [
          "starters",
          "bench"
        ],
        "title": "RosterResponse",
        "type": "object"
      },
      "RosterSnapshot": {
        "properties": {
          "fetched_at": {
            "title": "Fetched At",
            "type": "string"
          },
          "kind": {
            "const": "current",
            "title": "Kind",
            "type": "string"
          },
          "matches_as_of_week": {
            "title": "Matches As Of Week",
            "type": "boolean"
          },
          "observed_week": {
            "title": "Observed Week",
            "type": "integer"
          },
          "source": {
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "source",
          "fetched_at",
          "observed_week",
          "matches_as_of_week"
        ],
        "title": "RosterSnapshot",
        "type": "object"
      },
      "RumorActionTriggerRequest": {
        "properties": {
          "season": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Season"
          },
          "team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Id"
          },
          "week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Week"
          }
        },
        "title": "RumorActionTriggerRequest",
        "type": "object"
      },
      "RumorActionTriggerResponse": {
        "properties": {
          "considered": {
            "title": "Considered",
            "type": "integer"
          },
          "lineup_swaps_published": {
            "items": {},
            "title": "Lineup Swaps Published",
            "type": "array"
          },
          "waiver_claims_published": {
            "items": {},
            "title": "Waiver Claims Published",
            "type": "array"
          },
          "watermark": {
            "title": "Watermark",
            "type": "integer"
          }
        },
        "required": [
          "considered",
          "waiver_claims_published",
          "lineup_swaps_published",
          "watermark"
        ],
        "title": "RumorActionTriggerResponse",
        "type": "object"
      },
      "Run": {
        "properties": {
          "attempt": {
            "default": 1,
            "title": "Attempt",
            "type": "integer"
          },
          "chain_root_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Root Id"
          },
          "dedupe_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dedupe Key"
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Reason"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Id"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "input_count": {
            "default": 0,
            "title": "Input Count",
            "type": "integer"
          },
          "job_name": {
            "title": "Job Name",
            "type": "string"
          },
          "llm_count": {
            "default": 0,
            "title": "Llm Count",
            "type": "integer"
          },
          "output_count": {
            "default": 0,
            "title": "Output Count",
            "type": "integer"
          },
          "parent_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Run Id"
          },
          "requested_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested By"
          },
          "scheduled_for": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled For"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "additionalProperties": true,
            "default": {},
            "title": "Summary",
            "type": "object"
          },
          "trace_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trace Id"
          },
          "trigger": {
            "additionalProperties": true,
            "default": {},
            "title": "Trigger",
            "type": "object"
          },
          "trigger_type": {
            "title": "Trigger Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "job_name",
          "trigger_type",
          "status",
          "started_at"
        ],
        "title": "Run",
        "type": "object"
      },
      "RunDetail": {
        "properties": {
          "attempt": {
            "default": 1,
            "title": "Attempt",
            "type": "integer"
          },
          "chain_root_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Root Id"
          },
          "children": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RunSummary"
            },
            "title": "Children",
            "type": "array"
          },
          "dedupe_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dedupe Key"
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Reason"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Id"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "input_count": {
            "default": 0,
            "title": "Input Count",
            "type": "integer"
          },
          "job_name": {
            "title": "Job Name",
            "type": "string"
          },
          "links": {
            "additionalProperties": {
              "additionalProperties": {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              "type": "object"
            },
            "default": {},
            "title": "Links",
            "type": "object"
          },
          "llm_count": {
            "default": 0,
            "title": "Llm Count",
            "type": "integer"
          },
          "output_count": {
            "default": 0,
            "title": "Output Count",
            "type": "integer"
          },
          "parent": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent"
          },
          "parent_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Run Id"
          },
          "requested_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested By"
          },
          "scheduled_for": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled For"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "additionalProperties": true,
            "default": {},
            "title": "Summary",
            "type": "object"
          },
          "trace_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trace Id"
          },
          "trigger": {
            "additionalProperties": true,
            "default": {},
            "title": "Trigger",
            "type": "object"
          },
          "trigger_type": {
            "title": "Trigger Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "job_name",
          "trigger_type",
          "status",
          "started_at"
        ],
        "title": "RunDetail",
        "type": "object"
      },
      "RunList": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Run"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "RunList",
        "type": "object"
      },
      "RunStartResponse": {
        "properties": {
          "chain_root_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Root Id"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "status"
        ],
        "title": "RunStartResponse",
        "type": "object"
      },
      "RunSummary": {
        "properties": {
          "attempt": {
            "default": 1,
            "title": "Attempt",
            "type": "integer"
          },
          "chain_root_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Root Id"
          },
          "dedupe_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dedupe Key"
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Reason"
          },
          "event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Id"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "job_name": {
            "title": "Job Name",
            "type": "string"
          },
          "requested_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested By"
          },
          "scheduled_for": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled For"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "trigger_type": {
            "title": "Trigger Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "job_name",
          "trigger_type",
          "status",
          "started_at"
        ],
        "title": "RunSummary",
        "type": "object"
      },
      "ScheduleCoverage": {
        "properties": {
          "bye_weeks": {
            "title": "Bye Weeks",
            "type": "integer"
          },
          "scheduled_weeks": {
            "title": "Scheduled Weeks",
            "type": "integer"
          },
          "strength_known_weeks": {
            "title": "Strength Known Weeks",
            "type": "integer"
          },
          "unavailable_weeks": {
            "title": "Unavailable Weeks",
            "type": "integer"
          }
        },
        "required": [
          "scheduled_weeks",
          "bye_weeks",
          "unavailable_weeks",
          "strength_known_weeks"
        ],
        "title": "ScheduleCoverage",
        "type": "object"
      },
      "ScheduleTerms": {
        "properties": {
          "weeks": {
            "items": {
              "$ref": "#/components/schemas/ScheduleWeek"
            },
            "title": "Weeks",
            "type": "array"
          }
        },
        "required": [
          "weeks"
        ],
        "title": "ScheduleTerms",
        "type": "object"
      },
      "ScheduleWeek": {
        "properties": {
          "counterparty_opponent_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterparty Opponent Team Id"
          },
          "counterparty_opponent_z": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterparty Opponent Z"
          },
          "counterparty_status": {
            "title": "Counterparty Status",
            "type": "string"
          },
          "counterparty_weight": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterparty Weight"
          },
          "head_to_head": {
            "title": "Head To Head",
            "type": "boolean"
          },
          "matchup_period": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matchup Period"
          },
          "our_multiplier": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Multiplier"
          },
          "our_opponent_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Opponent Team Id"
          },
          "our_opponent_z": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Opponent Z"
          },
          "our_status": {
            "title": "Our Status",
            "type": "string"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week",
          "matchup_period",
          "head_to_head",
          "our_status",
          "our_opponent_team_id",
          "our_opponent_z",
          "our_multiplier",
          "counterparty_status",
          "counterparty_opponent_team_id",
          "counterparty_opponent_z",
          "counterparty_weight"
        ],
        "title": "ScheduleWeek",
        "type": "object"
      },
      "ScoreCoverage": {
        "properties": {
          "nfl_schedule_unavailable_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Nfl Schedule Unavailable Weeks",
            "type": "array"
          },
          "partial_roster_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Partial Roster Weeks",
            "type": "array"
          },
          "unmapped_traded_espn_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unmapped Traded Espn Ids",
            "type": "array"
          }
        },
        "required": [
          "unmapped_traded_espn_ids",
          "partial_roster_weeks",
          "nfl_schedule_unavailable_weeks"
        ],
        "title": "ScoreCoverage",
        "type": "object"
      },
      "ScoreHorizon": {
        "properties": {
          "complete_horizon": {
            "title": "Complete Horizon",
            "type": "boolean"
          },
          "end_week": {
            "title": "End Week",
            "type": "integer"
          },
          "scored_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Scored Weeks",
            "type": "array"
          },
          "start_week": {
            "title": "Start Week",
            "type": "integer"
          },
          "unscored_weeks": {
            "items": {
              "$ref": "#/components/schemas/UnscoredWeek"
            },
            "title": "Unscored Weeks",
            "type": "array"
          }
        },
        "required": [
          "start_week",
          "end_week",
          "scored_weeks",
          "unscored_weeks",
          "complete_horizon"
        ],
        "title": "ScoreHorizon",
        "type": "object"
      },
      "ScoreTeam": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id",
          "name"
        ],
        "title": "ScoreTeam",
        "type": "object"
      },
      "ScoreTerms": {
        "properties": {
          "counterparty_lineup_change": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterparty Lineup Change"
          },
          "counterparty_weighted_benefit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterparty Weighted Benefit"
          },
          "final_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Final Score"
          },
          "final_score_unavailable_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Final Score Unavailable Reasons",
            "type": "array"
          },
          "our_lineup_gain": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Lineup Gain"
          },
          "our_schedule_adjustment": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Schedule Adjustment"
          },
          "our_weighted_gain": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Weighted Gain"
          }
        },
        "required": [
          "our_lineup_gain",
          "counterparty_lineup_change",
          "our_weighted_gain",
          "our_schedule_adjustment",
          "counterparty_weighted_benefit",
          "final_score",
          "final_score_unavailable_reasons"
        ],
        "title": "ScoreTerms",
        "type": "object"
      },
      "ScoreWeights": {
        "properties": {
          "indirect_factor": {
            "title": "Indirect Factor",
            "type": "number"
          },
          "strength_weight": {
            "title": "Strength Weight",
            "type": "number"
          },
          "z_clamp": {
            "title": "Z Clamp",
            "type": "number"
          }
        },
        "required": [
          "strength_weight",
          "z_clamp",
          "indirect_factor"
        ],
        "title": "ScoreWeights",
        "type": "object"
      },
      "ScoreboardMatchup": {
        "properties": {
          "away": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScoreboardTeamInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "home": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScoreboardTeamInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "ScoreboardMatchup",
        "type": "object"
      },
      "ScoreboardResponse": {
        "properties": {
          "matchups": {
            "items": {
              "$ref": "#/components/schemas/ScoreboardMatchup"
            },
            "title": "Matchups",
            "type": "array"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "season",
          "week",
          "matchups"
        ],
        "title": "ScoreboardResponse",
        "type": "object"
      },
      "ScoreboardTeamInfo": {
        "properties": {
          "logo_url": {
            "title": "Logo Url",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "projected": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected"
          },
          "score": {
            "title": "Score",
            "type": "number"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id",
          "name",
          "logo_url",
          "score",
          "projected"
        ],
        "title": "ScoreboardTeamInfo",
        "type": "object"
      },
      "ShadowPolicy": {
        "properties": {
          "policy_version": {
            "const": "shadow-v1",
            "title": "Policy Version",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "thresholds": {
            "$ref": "#/components/schemas/ShadowThresholds"
          },
          "would": {
            "enum": [
              "accept",
              "decline",
              "none"
            ],
            "title": "Would",
            "type": "string"
          }
        },
        "required": [
          "would",
          "reason",
          "thresholds",
          "policy_version"
        ],
        "title": "ShadowPolicy",
        "type": "object"
      },
      "ShadowThresholds": {
        "properties": {
          "accept_min": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accept Min"
          },
          "decline_max": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decline Max"
          }
        },
        "required": [
          "accept_min",
          "decline_max"
        ],
        "title": "ShadowThresholds",
        "type": "object"
      },
      "SlotMoveInstruction": {
        "properties": {
          "decision_inputs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Why this move was proposed. Recorded to bot_decisions; never forwarded to the click bot.",
            "title": "Decision Inputs"
          },
          "kind": {
            "const": "move",
            "description": "Moves player_id to slot, benching nobody. Used to re-slot a starter who is staying in the lineup so another player's swap has room: a kept WR leaving FLEX for a WR slot so an RB can start in FLEX.",
            "title": "Kind",
            "type": "string"
          },
          "player_id": {
            "description": "ESPN player id of the player to move. Must be ESPN's, not the internal Sleeper players.player_id - same id-namespace trap as SwapInstruction's ids",
            "title": "Player Id",
            "type": "string"
          },
          "player_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Display name of the player, for the gateway's id-namespace cross-check.",
            "title": "Player Name"
          },
          "slot": {
            "description": "Target lineup slot (e.g., RB1, WR2, FLEX). Not IR: that is the 'ir' kind's job",
            "title": "Slot",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "player_id",
          "slot"
        ],
        "title": "SlotMoveInstruction",
        "type": "object"
      },
      "StartRunRequest": {
        "additionalProperties": false,
        "properties": {
          "downstream": {
            "default": false,
            "title": "Downstream",
            "type": "boolean"
          },
          "params": {
            "additionalProperties": true,
            "title": "Params",
            "type": "object"
          }
        },
        "title": "StartRunRequest",
        "type": "object"
      },
      "Starter": {
        "properties": {
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "vorp_score": {
            "title": "Vorp Score",
            "type": "number"
          }
        },
        "required": [
          "espn_id",
          "player_id",
          "name",
          "position",
          "vorp_score"
        ],
        "title": "Starter",
        "type": "object"
      },
      "StrengthMetric": {
        "properties": {
          "league_mean": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "League Mean"
          },
          "league_stddev": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "League Stddev"
          },
          "name": {
            "const": "completed_fantasy_points_per_week_z",
            "title": "Name",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "teams_with_strength": {
            "title": "Teams With Strength",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "source",
          "league_mean",
          "league_stddev",
          "teams_with_strength"
        ],
        "title": "StrengthMetric",
        "type": "object"
      },
      "SwapInstruction": {
        "properties": {
          "add_player_id": {
            "description": "ESPN player id of the player to elevate to the active lineup. Must be ESPN's, not the internal Sleeper players.player_id - same id-namespace trap as drop_player_id",
            "title": "Add Player Id",
            "type": "string"
          },
          "add_player_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Display name of the add player, for the same id-namespace cross-check as drop_player_name.",
            "title": "Add Player Name"
          },
          "decision_inputs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "CORE-17 (#35): the VORP numbers that justified this specific swap (add/drop player vorp_score, matchup_multiplier). Lives on the swap, not the request, because one request carries a list of swaps and this must stay 1:1 with each one. Recorded to bot_decisions; never forwarded to the click bot.",
            "title": "Decision Inputs"
          },
          "drop_player_id": {
            "description": "ESPN player id of the starter to bench. Must be ESPN's, not the internal Sleeper players.player_id - the two id spaces overlap numerically, so the wrong namespace can silently swap a different player (#187)",
            "title": "Drop Player Id",
            "type": "string"
          },
          "drop_player_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Display name of the drop player. Optional, but lets the gateway's id-namespace guard reject an id that is both some player's espn_id and this player's internal player_id - without it only a purely internal id can be caught.",
            "title": "Drop Player Name"
          },
          "kind": {
            "const": "swap",
            "default": "swap",
            "description": "Optional. Omitted or 'swap' means bench drop_player_id and promote add_player_id into slot.",
            "title": "Kind",
            "type": "string"
          },
          "matchup_multiplier": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Opponent-defense-strength multiplier applied to the added player's VORP for this week (#93), in [0.9, 1.1]. 1.0 (neutral) when MATCHUP_WEIGHTING_ENABLED is off, the week isn't Week 1, or no defense-strength proxy row was available - lineup_solver.py's optimizer always sends a concrete value, never omits the field; None is only possible from a non-optimizer caller. Lets the UI explain a nudge.",
            "title": "Matchup Multiplier"
          },
          "slot": {
            "description": "Target lineup position frame (e.g., RB1, WR2, FLEX)",
            "title": "Slot",
            "type": "string"
          }
        },
        "required": [
          "drop_player_id",
          "add_player_id",
          "slot"
        ],
        "title": "SwapInstruction",
        "type": "object"
      },
      "TeamAggregate": {
        "properties": {
          "most_recent_pick_expected_round": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "ceil(most_recent_pick_vorp_rank / team_count) - the round a player at this VORP rank would be expected to go in a straight VORP-order draft. Null if vorp_rank or team_count is unavailable.",
            "title": "Most Recent Pick Expected Round"
          },
          "most_recent_pick_value_alert": {
            "default": false,
            "description": "True if this team's single most recent pick landed VALUE_ROUND_THRESHOLD or more rounds later than its overall-VORP-rank would predict (see most_recent_pick_expected_round) - a 'great value' signal, not a claim the pick was objectively good.",
            "title": "Most Recent Pick Value Alert",
            "type": "boolean"
          },
          "most_recent_pick_vorp_rank": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Overall vorp_score rank (1 = highest) of this team's most recent pick, across every player with a weekly_stats row - drafted or not. Null if that player has no vorp_score.",
            "title": "Most Recent Pick Vorp Rank"
          },
          "position_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "description": "Drafted player count per position (e.g. {'RB': 3, 'WR': 4}). Players with no players-table match (K/D-ST with no crosswalk entry) are omitted, not bucketed under a synthetic key.",
            "title": "Position Counts",
            "type": "object"
          },
          "total_projected_points": {
            "description": "Sum of projected_points across this team's drafted players, same current-snapshot caveat as total_vorp.",
            "title": "Total Projected Points",
            "type": "number"
          },
          "total_vorp": {
            "description": "Sum of vorp_score across this team's drafted players with a weekly_stats row, using each player's most recent row - a CURRENT snapshot recomputed on every /status call, not a running total frozen pick-by-pick.",
            "title": "Total Vorp",
            "type": "number"
          }
        },
        "required": [
          "total_vorp",
          "total_projected_points"
        ],
        "title": "TeamAggregate",
        "type": "object"
      },
      "TeamByeCoverage": {
        "properties": {
          "created": {
            "items": {
              "type": "integer"
            },
            "title": "Created",
            "type": "array"
          },
          "crunch_weeks_after": {
            "items": {
              "type": "integer"
            },
            "title": "Crunch Weeks After",
            "type": "array"
          },
          "crunch_weeks_before": {
            "items": {
              "type": "integer"
            },
            "title": "Crunch Weeks Before",
            "type": "array"
          },
          "fixed": {
            "items": {
              "type": "integer"
            },
            "title": "Fixed",
            "type": "array"
          }
        },
        "required": [
          "crunch_weeks_before",
          "crunch_weeks_after",
          "fixed",
          "created"
        ],
        "title": "TeamByeCoverage",
        "type": "object"
      },
      "TeamByeOutlook": {
        "properties": {
          "crunch_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Crunch Weeks",
            "type": "array"
          },
          "end_week": {
            "title": "End Week",
            "type": "integer"
          },
          "median_lineup_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Median Lineup Value"
          },
          "players": {
            "items": {
              "$ref": "#/components/schemas/ByeOutlookPlayer"
            },
            "title": "Players",
            "type": "array"
          },
          "schedule_known": {
            "title": "Schedule Known",
            "type": "boolean"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "start_week": {
            "title": "Start Week",
            "type": "integer"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          },
          "team_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team Name"
          },
          "weeks": {
            "items": {
              "$ref": "#/components/schemas/ByeOutlookWeek"
            },
            "title": "Weeks",
            "type": "array"
          }
        },
        "required": [
          "team_id",
          "team_name",
          "season",
          "start_week",
          "end_week",
          "schedule_known",
          "median_lineup_value",
          "crunch_weeks",
          "weeks",
          "players"
        ],
        "title": "TeamByeOutlook",
        "type": "object"
      },
      "TeamCandidateCounts": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "needs_drop": {
            "title": "Needs Drop",
            "type": "integer"
          },
          "one_sided": {
            "title": "One Sided",
            "type": "integer"
          },
          "proposable": {
            "title": "Proposable",
            "type": "integer"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id",
          "name",
          "proposable",
          "needs_drop",
          "one_sided"
        ],
        "title": "TeamCandidateCounts",
        "type": "object"
      },
      "TeamInfo": {
        "properties": {
          "logo_url": {
            "title": "Logo Url",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "projected": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected"
          },
          "score": {
            "title": "Score",
            "type": "number"
          }
        },
        "required": [
          "name",
          "logo_url",
          "score",
          "projected"
        ],
        "title": "TeamInfo",
        "type": "object"
      },
      "TeamRosterImpact": {
        "properties": {
          "exceeds_roster_limit": {
            "title": "Exceeds Roster Limit",
            "type": "boolean"
          },
          "roster_limit": {
            "title": "Roster Limit",
            "type": "integer"
          },
          "roster_size_after": {
            "title": "Roster Size After",
            "type": "integer"
          },
          "roster_size_before": {
            "title": "Roster Size Before",
            "type": "integer"
          },
          "total_delta": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total Delta"
          },
          "weeks": {
            "items": {
              "$ref": "#/components/schemas/LineupWeek"
            },
            "title": "Weeks",
            "type": "array"
          }
        },
        "required": [
          "total_delta",
          "roster_size_before",
          "roster_size_after",
          "roster_limit",
          "exceeds_roster_limit",
          "weeks"
        ],
        "title": "TeamRosterImpact",
        "type": "object"
      },
      "TeamSide": {
        "properties": {
          "bench": {
            "items": {
              "$ref": "#/components/schemas/PlayerLine"
            },
            "title": "Bench",
            "type": "array"
          },
          "starters": {
            "items": {
              "$ref": "#/components/schemas/PlayerLine"
            },
            "title": "Starters",
            "type": "array"
          },
          "team": {
            "$ref": "#/components/schemas/TeamInfo"
          }
        },
        "required": [
          "team",
          "starters",
          "bench"
        ],
        "title": "TeamSide",
        "type": "object"
      },
      "TeamStrength": {
        "properties": {
          "completed_matchups": {
            "title": "Completed Matchups",
            "type": "integer"
          },
          "completed_scoring_weeks": {
            "title": "Completed Scoring Weeks",
            "type": "integer"
          },
          "points_per_week": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Points Per Week"
          },
          "unavailable_history_periods": {
            "title": "Unavailable History Periods",
            "type": "integer"
          },
          "z_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Z Score"
          }
        },
        "required": [
          "points_per_week",
          "completed_matchups",
          "completed_scoring_weeks",
          "unavailable_history_periods",
          "z_score"
        ],
        "title": "TeamStrength",
        "type": "object"
      },
      "ThreadTurn": {
        "properties": {
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "counters": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "On our turns, the offer this counter answered.",
            "title": "Counters"
          },
          "espn_transaction_id": {
            "title": "Espn Transaction Id",
            "type": "string"
          },
          "exit_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit Reason"
          },
          "expiration_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiration Date"
          },
          "proposed_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Date"
          },
          "proposing_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposing Team Id"
          },
          "receive_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Receive Players",
            "type": "array"
          },
          "send_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Send Players",
            "type": "array"
          },
          "side": {
            "enum": [
              "theirs",
              "ours"
            ],
            "title": "Side",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "side",
          "espn_transaction_id",
          "status",
          "send_players",
          "receive_players"
        ],
        "title": "ThreadTurn",
        "type": "object"
      },
      "Trace": {
        "properties": {
          "root": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Root",
            "type": "object"
          },
          "stages": {
            "items": {
              "$ref": "#/components/schemas/TraceStage"
            },
            "title": "Stages",
            "type": "array"
          }
        },
        "required": [
          "root",
          "stages"
        ],
        "title": "Trace",
        "type": "object"
      },
      "TraceStage": {
        "properties": {
          "items": {
            "default": [],
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Items",
            "type": "array"
          },
          "key": {
            "title": "Key",
            "type": "string"
          },
          "runs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RunSummary"
            },
            "title": "Runs",
            "type": "array"
          },
          "sessions": {
            "default": [],
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Sessions",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "key",
          "title"
        ],
        "title": "TraceStage",
        "type": "object"
      },
      "TradeApprovalRequest": {
        "additionalProperties": false,
        "properties": {
          "approved_by": {
            "description": "Self-reported approver; trade routes have no application-layer authentication.",
            "maxLength": 200,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Exact message text; changed messages are limited to 1000 characters.",
            "title": "Message"
          }
        },
        "required": [
          "approved_by"
        ],
        "title": "TradeApprovalRequest",
        "type": "object"
      },
      "TradeApprovalResponse": {
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "title": "Approved By",
            "type": "string"
          },
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "offer_key": {
            "title": "Offer Key",
            "type": "string"
          },
          "status": {
            "const": "approved",
            "title": "Status",
            "type": "string"
          },
          "tracking_id": {
            "title": "Tracking Id",
            "type": "string"
          }
        },
        "required": [
          "offer_key",
          "status",
          "tracking_id",
          "approved_by",
          "approved_at"
        ],
        "title": "TradeApprovalResponse",
        "type": "object"
      },
      "TradeCandidate": {
        "properties": {
          "bye_coverage": {
            "$ref": "#/components/schemas/ByeCoverage"
          },
          "candidate_key": {
            "title": "Candidate Key",
            "type": "string"
          },
          "complete_horizon": {
            "title": "Complete Horizon",
            "type": "boolean"
          },
          "counterparty": {
            "$ref": "#/components/schemas/ScoreTeam"
          },
          "counterparty_lineup_change": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterparty Lineup Change"
          },
          "counterparty_weighted_benefit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterparty Weighted Benefit"
          },
          "final_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Final Score"
          },
          "horizon_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Horizon Weeks",
            "type": "array"
          },
          "our_lineup_gain": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Lineup Gain"
          },
          "our_schedule_adjustment": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Schedule Adjustment"
          },
          "our_weighted_gain": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Our Weighted Gain"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "receive": {
            "items": {
              "$ref": "#/components/schemas/CandidatePlayer"
            },
            "title": "Receive",
            "type": "array"
          },
          "scored_weeks": {
            "items": {
              "type": "integer"
            },
            "title": "Scored Weeks",
            "type": "array"
          },
          "send": {
            "items": {
              "$ref": "#/components/schemas/CandidatePlayer"
            },
            "title": "Send",
            "type": "array"
          },
          "shape": {
            "enum": [
              "1for1",
              "2for1",
              "1for2"
            ],
            "title": "Shape",
            "type": "string"
          },
          "status": {
            "enum": [
              "proposable",
              "needs_drop",
              "one_sided"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "candidate_key",
          "counterparty",
          "shape",
          "receive",
          "send",
          "final_score",
          "our_lineup_gain",
          "our_weighted_gain",
          "counterparty_lineup_change",
          "counterparty_weighted_benefit",
          "our_schedule_adjustment",
          "scored_weeks",
          "horizon_weeks",
          "complete_horizon",
          "bye_coverage",
          "status",
          "reasons"
        ],
        "title": "TradeCandidate",
        "type": "object"
      },
      "TradeCandidateList": {
        "properties": {
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "horizon": {
            "title": "Horizon",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/TradeCandidate"
            },
            "title": "Items",
            "type": "array"
          },
          "league_id": {
            "title": "League Id",
            "type": "string"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "team_counts": {
            "items": {
              "$ref": "#/components/schemas/TeamCandidateCounts"
            },
            "title": "Team Counts",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "league_id",
          "season",
          "week",
          "horizon",
          "run_id",
          "computed_at",
          "total",
          "team_counts",
          "items"
        ],
        "title": "TradeCandidateList",
        "type": "object"
      },
      "TradeContextPlayer": {
        "properties": {
          "eligible_slots": {
            "items": {
              "type": "string"
            },
            "title": "Eligible Slots",
            "type": "array"
          },
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "injury_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Injury Status"
          },
          "metrics": {
            "additionalProperties": {
              "$ref": "#/components/schemas/PlayerWeekMetrics"
            },
            "title": "Metrics",
            "type": "object"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "nfl_bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nfl Bye Week"
          },
          "nfl_team": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nfl Team"
          },
          "player_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Player Id"
          },
          "position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Position"
          },
          "slot": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slot"
          }
        },
        "required": [
          "espn_id",
          "player_id",
          "name",
          "position",
          "nfl_team",
          "slot",
          "eligible_slots",
          "injury_status",
          "metrics"
        ],
        "title": "TradeContextPlayer",
        "type": "object"
      },
      "TradeContextTeam": {
        "properties": {
          "bye_outlook": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ByeOutlook"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "roster": {
            "items": {
              "$ref": "#/components/schemas/TradeContextPlayer"
            },
            "title": "Roster",
            "type": "array"
          },
          "schedule": {
            "items": {
              "$ref": "#/components/schemas/FantasyScheduleWeek"
            },
            "title": "Schedule",
            "type": "array"
          },
          "schedule_coverage": {
            "$ref": "#/components/schemas/ScheduleCoverage"
          },
          "schedule_strength_z": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schedule Strength Z"
          },
          "strength": {
            "$ref": "#/components/schemas/TeamStrength"
          },
          "team_id": {
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id",
          "name",
          "roster",
          "strength",
          "schedule",
          "schedule_coverage",
          "schedule_strength_z"
        ],
        "title": "TradeContextTeam",
        "type": "object"
      },
      "TradeEvaluationRequest": {
        "properties": {
          "incoming_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Incoming Player Ids",
            "type": "array"
          },
          "outgoing_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Outgoing Player Ids",
            "type": "array"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "incoming_player_ids",
          "outgoing_player_ids",
          "season",
          "week"
        ],
        "title": "TradeEvaluationRequest",
        "type": "object"
      },
      "TradeEvaluationResponse": {
        "properties": {
          "delta_vorp": {
            "title": "Delta Vorp",
            "type": "number"
          },
          "incoming_total": {
            "title": "Incoming Total",
            "type": "number"
          },
          "missing_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Missing Player Ids",
            "type": "array"
          },
          "outgoing_total": {
            "title": "Outgoing Total",
            "type": "number"
          }
        },
        "required": [
          "incoming_total",
          "outgoing_total",
          "delta_vorp",
          "missing_player_ids"
        ],
        "title": "TradeEvaluationResponse",
        "type": "object"
      },
      "TradeOffer": {
        "properties": {
          "approval": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approval"
          },
          "drafted_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Drafted Message"
          },
          "edited_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited By"
          },
          "evaluation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ProposalEvaluation"
              },
              {
                "type": "null"
              }
            ]
          },
          "executed_at": {
            "format": "date-time",
            "title": "Executed At",
            "type": "string"
          },
          "from_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "From Team Id"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "incoming_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Incoming Player Ids",
            "type": "array"
          },
          "incoming_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Incoming Players",
            "type": "array"
          },
          "league_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "League Id"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "message_edited": {
            "default": false,
            "title": "Message Edited",
            "type": "boolean"
          },
          "offer_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Offer Key"
          },
          "outgoing_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Outgoing Player Ids",
            "type": "array"
          },
          "outgoing_players": {
            "items": {
              "$ref": "#/components/schemas/OfferPlayer"
            },
            "title": "Outgoing Players",
            "type": "array"
          },
          "related_transaction_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Related Transaction Id"
          },
          "resolution": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OfferResolution"
              },
              {
                "type": "null"
              }
            ]
          },
          "season": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Season"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "thread_root_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thread Root Id"
          },
          "to_team_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "To Team Id"
          }
        },
        "required": [
          "id",
          "status",
          "league_id",
          "season",
          "executed_at",
          "incoming_players",
          "outgoing_players"
        ],
        "title": "TradeOffer",
        "type": "object"
      },
      "TradeOfferList": {
        "properties": {
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offers": {
            "items": {
              "$ref": "#/components/schemas/TradeOffer"
            },
            "title": "Offers",
            "type": "array"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          }
        },
        "required": [
          "offers",
          "limit",
          "offset"
        ],
        "title": "TradeOfferList",
        "type": "object"
      },
      "TradeProposal": {
        "properties": {
          "incoming_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Incoming Player Ids",
            "type": "array"
          },
          "outgoing_player_ids": {
            "items": {
              "type": "string"
            },
            "title": "Outgoing Player Ids",
            "type": "array"
          }
        },
        "required": [
          "incoming_player_ids",
          "outgoing_player_ids"
        ],
        "title": "TradeProposal",
        "type": "object"
      },
      "TradeScore": {
        "properties": {
          "as_of_week": {
            "title": "As Of Week",
            "type": "integer"
          },
          "bye_coverage": {
            "$ref": "#/components/schemas/ByeCoverage"
          },
          "counterparty_team": {
            "$ref": "#/components/schemas/ScoreTeam"
          },
          "coverage": {
            "$ref": "#/components/schemas/ScoreCoverage"
          },
          "horizon": {
            "$ref": "#/components/schemas/ScoreHorizon"
          },
          "league_id": {
            "title": "League Id",
            "type": "string"
          },
          "our_team": {
            "$ref": "#/components/schemas/ScoreTeam"
          },
          "raw_vorp": {
            "$ref": "#/components/schemas/RawVorp"
          },
          "receive": {
            "items": {
              "$ref": "#/components/schemas/TradedPlayer"
            },
            "title": "Receive",
            "type": "array"
          },
          "roster_impact": {
            "$ref": "#/components/schemas/RosterImpact"
          },
          "roster_snapshot": {
            "$ref": "#/components/schemas/RosterSnapshot"
          },
          "schedule": {
            "$ref": "#/components/schemas/ScheduleTerms"
          },
          "score": {
            "$ref": "#/components/schemas/ScoreTerms"
          },
          "scoring_version": {
            "const": "trade-score-v1",
            "title": "Scoring Version",
            "type": "string"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "send": {
            "items": {
              "$ref": "#/components/schemas/TradedPlayer"
            },
            "title": "Send",
            "type": "array"
          },
          "strength_metric": {
            "$ref": "#/components/schemas/StrengthMetric"
          },
          "weights": {
            "$ref": "#/components/schemas/ScoreWeights"
          }
        },
        "required": [
          "scoring_version",
          "league_id",
          "season",
          "as_of_week",
          "our_team",
          "counterparty_team",
          "send",
          "receive",
          "raw_vorp",
          "horizon",
          "weights",
          "roster_impact",
          "bye_coverage",
          "schedule",
          "score",
          "coverage",
          "roster_snapshot",
          "strength_metric"
        ],
        "title": "TradeScore",
        "type": "object"
      },
      "TradeScoreRequest": {
        "additionalProperties": false,
        "properties": {
          "counterparty_team_id": {
            "pattern": "^[1-9]\\d*$",
            "title": "Counterparty Team Id",
            "type": "string"
          },
          "horizon": {
            "default": 4,
            "maximum": 18.0,
            "minimum": 1.0,
            "title": "Horizon",
            "type": "integer"
          },
          "league_id": {
            "pattern": "^[1-9]\\d*$",
            "title": "League Id",
            "type": "string"
          },
          "our_team_id": {
            "pattern": "^[1-9]\\d*$",
            "title": "Our Team Id",
            "type": "string"
          },
          "receive_espn_ids": {
            "items": {
              "pattern": "^-?[1-9]\\d*$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Receive Espn Ids",
            "type": "array"
          },
          "season": {
            "maximum": 2100.0,
            "minimum": 2000.0,
            "title": "Season",
            "type": "integer"
          },
          "send_espn_ids": {
            "items": {
              "pattern": "^-?[1-9]\\d*$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Send Espn Ids",
            "type": "array"
          },
          "week": {
            "maximum": 18.0,
            "minimum": 1.0,
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "league_id",
          "season",
          "week",
          "our_team_id",
          "counterparty_team_id",
          "send_espn_ids",
          "receive_espn_ids"
        ],
        "title": "TradeScoreRequest",
        "type": "object"
      },
      "TradedPlayer": {
        "properties": {
          "espn_id": {
            "title": "Espn Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "nfl_team": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nfl Team"
          },
          "player_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Player Id"
          },
          "position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Position"
          }
        },
        "required": [
          "espn_id",
          "player_id",
          "name",
          "position",
          "nfl_team"
        ],
        "title": "TradedPlayer",
        "type": "object"
      },
      "TriageRequest": {
        "additionalProperties": false,
        "properties": {
          "by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "By",
            "type": "string"
          },
          "snooze_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snooze Until"
          },
          "state": {
            "enum": [
              "new",
              "seen",
              "snoozed",
              "dismissed"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "by"
        ],
        "title": "TriageRequest",
        "type": "object"
      },
      "UnpauseResponse": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "name",
          "status"
        ],
        "title": "UnpauseResponse",
        "type": "object"
      },
      "UnscoredWeek": {
        "properties": {
          "reasons": {
            "items": {
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week",
          "reasons"
        ],
        "title": "UnscoredWeek",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "VorpSort": {
        "enum": [
          "vorp",
          "projected_points",
          "actual_points",
          "week"
        ],
        "title": "VorpSort",
        "type": "string"
      },
      "VorpStat": {
        "properties": {
          "actual_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actual Points"
          },
          "adjusted_projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Adjusted Projected Points"
          },
          "defense_matchup_multiplier": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Defense Matchup Multiplier"
          },
          "matchup_coefficient": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matchup Coefficient"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "player_id": {
            "title": "Player Id",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "projected_points": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected Points"
          },
          "scarcity_multiplier": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scarcity Multiplier"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "team": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Team"
          },
          "vorp_base": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp Base"
          },
          "vorp_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vorp Score"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "player_id",
          "name",
          "position",
          "season",
          "week"
        ],
        "title": "VorpStat",
        "type": "object"
      },
      "WaiverByeFill": {
        "properties": {
          "lineup_gain": {
            "title": "Lineup Gain",
            "type": "number"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week",
          "lineup_gain"
        ],
        "title": "WaiverByeFill",
        "type": "object"
      },
      "WaiverIrMove": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "player": {
            "$ref": "#/components/schemas/WaiverPlayerSummary"
          },
          "position": {
            "title": "Position",
            "type": "string"
          }
        },
        "required": [
          "action",
          "position",
          "player"
        ],
        "title": "WaiverIrMove",
        "type": "object"
      },
      "WaiverLineupGain": {
        "properties": {
          "delta": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delta"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "week"
        ],
        "title": "WaiverLineupGain",
        "type": "object"
      },
      "WaiverPlayerSummary": {
        "properties": {
          "bye_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bye Week"
          },
          "espn_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Espn Id"
          },
          "injury_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Injury Status"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "net_vorp": {
            "title": "Net Vorp",
            "type": "number"
          },
          "position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Position"
          },
          "pro_team": {
            "title": "Pro Team",
            "type": "string"
          }
        },
        "required": [
          "name",
          "pro_team",
          "net_vorp"
        ],
        "title": "WaiverPlayerSummary",
        "type": "object"
      },
      "WaiverRecommendation": {
        "properties": {
          "bench_player": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WaiverPlayerSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "bye_fill": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WaiverByeFill"
              },
              {
                "type": "null"
              }
            ]
          },
          "free_agent": {
            "$ref": "#/components/schemas/WaiverPlayerSummary"
          },
          "horizon_lineup_gain": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Horizon Lineup Gain"
          },
          "ir_player": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WaiverPlayerSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "default": "swap",
            "title": "Kind",
            "type": "string"
          },
          "position": {
            "title": "Position",
            "type": "string"
          },
          "rumor_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rumor Confidence"
          },
          "rumor_sentiment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rumor Sentiment"
          },
          "rumor_suggested_action": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rumor Suggested Action"
          },
          "vorp_delta": {
            "title": "Vorp Delta",
            "type": "number"
          },
          "weekly_lineup_gains": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/WaiverLineupGain"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weekly Lineup Gains"
          }
        },
        "required": [
          "position",
          "vorp_delta",
          "free_agent"
        ],
        "title": "WaiverRecommendation",
        "type": "object"
      },
      "WaiverRecommendationsResponse": {
        "properties": {
          "bye_crunch_weeks": {
            "default": [],
            "items": {
              "type": "integer"
            },
            "title": "Bye Crunch Weeks",
            "type": "array"
          },
          "horizon_weeks": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Horizon Weeks"
          },
          "ir_moves": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/WaiverIrMove"
            },
            "title": "Ir Moves",
            "type": "array"
          },
          "open_ir_slots": {
            "default": 0,
            "title": "Open Ir Slots",
            "type": "integer"
          },
          "open_roster_slots": {
            "default": 0,
            "title": "Open Roster Slots",
            "type": "integer"
          },
          "recommendations": {
            "items": {
              "$ref": "#/components/schemas/WaiverRecommendation"
            },
            "title": "Recommendations",
            "type": "array"
          },
          "season": {
            "title": "Season",
            "type": "integer"
          },
          "source_mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Mode"
          },
          "source_weeks": {
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Weeks"
          },
          "week": {
            "title": "Week",
            "type": "integer"
          }
        },
        "required": [
          "season",
          "week",
          "recommendations"
        ],
        "title": "WaiverRecommendationsResponse",
        "type": "object"
      },
      "WaiverTriggerPayload": {
        "properties": {
          "after_tracking_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tracking id of an IR move (a /trigger/lineup action with a kind 'ir' entry) that makes room for this add-only claim. The claim is held, not delivered, until that move is verified on ESPN's roster, and cancelled if it fails or isn't verified in time. Requires drop_player_id to be omitted.",
            "title": "After Tracking Id"
          },
          "decision_inputs": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "CORE-17 (#35): the VORP numbers (and season/week) that justified this claim. Recorded to bot_decisions; never forwarded to the click bot.",
            "title": "Decision Inputs"
          },
          "drop_player_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ESPN player id of the roster player to drop to open a slot. Optional: an add-only claim into an already-open bench slot omits this.",
            "title": "Drop Player Id"
          },
          "dry_run": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Per-request override of the worker's DRY_RUN setting. The web UI sends an explicit value; omitted (automated triggers) keeps the worker's default.",
            "title": "Dry Run"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          },
          "name": {
            "description": "Display name of the player to claim, as expected by the click bot",
            "title": "Name",
            "type": "string"
          },
          "player_id": {
            "description": "ESPN player id of the free agent to claim. Must be ESPN's, not the internal Sleeper players.player_id - same id-namespace trap DraftPickTriggerPayload guards against",
            "title": "Player Id",
            "type": "string"
          },
          "team": {
            "description": "NFL team abbreviation of the player to claim, for a name+team match against ESPN's own player pool",
            "title": "Team",
            "type": "string"
          },
          "team_id": {
            "description": "Target local league team identification number",
            "title": "Team Id",
            "type": "string"
          }
        },
        "required": [
          "team_id",
          "player_id",
          "name",
          "team"
        ],
        "title": "WaiverTriggerPayload",
        "type": "object"
      }
    }
  },
  "info": {
    "description": "Central control plane and asymmetric message translator",
    "title": "Fantasy Automation API Gateway",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/v1/activity/actions": {
      "get": {
        "operationId": "actions_v1_activity_actions_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "attention",
            "required": false,
            "schema": {
              "default": false,
              "title": "Attention",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Actions"
      }
    },
    "/v1/activity/actions/{identity}": {
      "get": {
        "operationId": "action_v1_activity_actions__identity__get",
        "parameters": [
          {
            "in": "path",
            "name": "identity",
            "required": true,
            "schema": {
              "title": "Identity",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Action"
      }
    },
    "/v1/activity/actions/{identity}/check": {
      "post": {
        "operationId": "check_v1_activity_actions__identity__check_post",
        "parameters": [
          {
            "in": "path",
            "name": "identity",
            "required": true,
            "schema": {
              "title": "Identity",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Check"
      }
    },
    "/v1/activity/bots": {
      "get": {
        "operationId": "bots_v1_activity_bots_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Bots"
      }
    },
    "/v1/activity/jobs": {
      "get": {
        "operationId": "jobs_v1_activity_jobs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobHealthList"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Jobs"
      }
    },
    "/v1/activity/read/{identity}": {
      "post": {
        "operationId": "read_v1_activity_read__identity__post",
        "parameters": [
          {
            "in": "path",
            "name": "identity",
            "required": true,
            "schema": {
              "title": "Identity",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read"
      }
    },
    "/v1/activity/runs": {
      "get": {
        "operationId": "runs_v1_activity_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "job",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Job"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^(running|success|failure)$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "trigger",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^(schedule|queue|http|manual)$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Trigger"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunList"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Runs"
      }
    },
    "/v1/activity/runs/{identity}": {
      "get": {
        "operationId": "run_v1_activity_runs__identity__get",
        "parameters": [
          {
            "in": "path",
            "name": "identity",
            "required": true,
            "schema": {
              "title": "Identity",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run"
      }
    },
    "/v1/activity/sessions": {
      "get": {
        "operationId": "sessions_v1_activity_sessions_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Sessions"
      }
    },
    "/v1/activity/sessions/{identity}": {
      "get": {
        "operationId": "session_v1_activity_sessions__identity__get",
        "parameters": [
          {
            "in": "path",
            "name": "identity",
            "required": true,
            "schema": {
              "title": "Identity",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Session"
      }
    },
    "/v1/activity/trace": {
      "get": {
        "operationId": "trace_v1_activity_trace_get",
        "parameters": [
          {
            "in": "query",
            "name": "ref_type",
            "required": true,
            "schema": {
              "pattern": "^(raw_signal|rumor_signal|activity_action)$",
              "title": "Ref Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ref_id",
            "required": true,
            "schema": {
              "minLength": 1,
              "title": "Ref Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Trace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trace"
      }
    },
    "/v1/backtest/results": {
      "get": {
        "operationId": "list_backtest_results_endpoint_v1_backtest_results_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Season"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BacktestResultSummary"
                  },
                  "title": "Response List Backtest Results Endpoint V1 Backtest Results Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Backtest Results Endpoint"
      }
    },
    "/v1/backtest/results/{season}": {
      "get": {
        "operationId": "get_backtest_result_endpoint_v1_backtest_results__season__get",
        "parameters": [
          {
            "in": "path",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BacktestResultDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Backtest Result Endpoint"
      }
    },
    "/v1/chat/query": {
      "post": {
        "operationId": "query_endpoint_v1_chat_query_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatQueryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChatQueryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Query Endpoint"
      }
    },
    "/v1/draft/auto-publish": {
      "post": {
        "description": "Manual kill switch (#108/#109): flips draft_config.auto_publish_enabled so\nhold_and_publish abandons a scheduled auto-publish instead of sending it, without\ntouching the pause/resume mechanism above (a paused pick can still be resumed manually\neven while auto-publish is globally off for the league).\n\nDelegates the actual write to _set_auto_publish_enabled in draft_matrix.py rather than\nrunning its own SQL - the same shared helper (in a later task) a circuit breaker will\ncall with disabled_by='circuit_breaker'. This endpoint is the only caller allowed to\npass disabled_by='manual', since it is the one path an actual human clicked.",
        "operationId": "set_auto_publish_v1_draft_auto_publish_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DraftAutoPublishRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Auto Publish"
      }
    },
    "/v1/draft/config": {
      "get": {
        "description": "Returns the most recently stored live config, so the web UI's league/team settings\nfollow the operator across browsers/devices instead of living only in localStorage.\nPractice rows are excluded - they're mock-room configs, never the real league.",
        "operationId": "get_draft_config_v1_draft_config_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Draft Config"
      },
      "post": {
        "description": "Stores league_id/team_id/season/mode so /start's draft-sync Job can read it at launch.",
        "operationId": "set_draft_config_v1_draft_config_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DraftConfigPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set Draft Config"
      }
    },
    "/v1/draft/logs": {
      "get": {
        "description": "Tail of the spawned Job's pod log, for diagnosing a crash without cluster access.\n\nResolves the pod via the same label selectors /status and /practice/sync-job/status\nalready use, then reads its log directly - this works even after the pod has\nterminated (both Jobs run with backoff_limit=0/restart_policy=Never, so there is no\nlive-vs-previous-container ambiguity), as long as the pod object itself hasn't been\ngarbage-collected. The listener Job sets no ttl_seconds_after_finished, so its pod (and\nlog) sticks around indefinitely; the room-sync Job sets ttl_seconds_after_finished=3600\n(see PracticeSyncJobRequest handling below), so its log becomes unavailable an hour\nafter it finishes - an infra-level tradeoff, not something this endpoint can work around.\n\njob=\"room-sync\" intentionally ignores league_id when resolving the pod: the room-sync\nJob only carries a league-id label when the practice room URL happened to include a\nleagueId query param, and every other room-sync query in this file (job state, delete)\nalready treats it as a global singleton instead - _practice_sync_job_state() is checked\nbefore /practice/sync-job creates a new one, forbidding more than one Active room-sync\nJob at a time. league_id stays a required query param for\nconsistency with job=\"listener\", where it's the only way to find the right pod.",
        "operationId": "get_draft_logs_v1_draft_logs_get",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": true,
            "schema": {
              "title": "League Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "job",
            "required": true,
            "schema": {
              "enum": [
                "listener",
                "room-sync"
              ],
              "title": "Job",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tail",
            "required": false,
            "schema": {
              "default": 200,
              "title": "Tail",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Draft Logs"
      }
    },
    "/v1/draft/pause": {
      "post": {
        "description": "SETs draft:{league_id}:pause:{pick_number} - draft_matrix.py's wait_for_pause_or_timeout\npolls this exact key to hold off an auto-publish for that pick.",
        "operationId": "pause_draft_v1_draft_pause_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DraftPauseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pause Draft"
      }
    },
    "/v1/draft/practice/sync-job": {
      "delete": {
        "description": "Tears down the practice draft-sync Job so leftover Job/Redis state can't interfere\nwith a later run - the cleanup concern the issue explicitly calls out.",
        "operationId": "end_practice_sync_job_v1_draft_practice_sync_job_delete",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "End Practice Sync Job"
      },
      "post": {
        "description": "Creates fantasy-browser-worker's draft_sync.js Job pointed at a manually-joined\nESPN mock/practice draft room - replacing the manual `kubectl apply` of\nk8s/test-draft-sync-job.yaml. Distinct from /start's own draft-sync Job; see module\ndocstring.\n\nforce=true retires whatever practice run is already there instead of refusing. Without it\na wedged run - a Job stuck Terminating, or one stranded by a control plane that stopped\nanswering - is a dead end: the 409 tells the user to end the run first, and ending it is\nexactly what is failing. This is the escape hatch.",
        "operationId": "start_practice_sync_job_v1_draft_practice_sync_job_post",
        "parameters": [
          {
            "in": "query",
            "name": "force",
            "required": false,
            "schema": {
              "default": false,
              "title": "Force",
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PracticeSyncJobRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start Practice Sync Job"
      }
    },
    "/v1/draft/practice/sync-job/status": {
      "get": {
        "operationId": "get_practice_sync_job_status_v1_draft_practice_sync_job_status_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Practice Sync Job Status"
      }
    },
    "/v1/draft/resume": {
      "post": {
        "description": "Clearing the pause key alone does not resume anything: draft_matrix.py's\nwait_for_pause_or_timeout returns False as soon as it observes the key set, at which\npoint hold_and_publish has already exited with nothing left to notice a later deletion\n- draft_matrix.py runs in a separate Job Pod this API process has no other channel into.\nSo /resume recomputes a fresh recommendation and republishes it immediately - the human\nalready decided to proceed, so there's no cancellable delay window to wait through this\ntime, unlike the normal auto-draft path.\n\nPasses the league's stored draft_config.mode explicitly to publish_draft_target: this\nhandler runs in the FastAPI gateway process, which (unlike the per-league draft-sync\nJob) never has DRAFT_MODE set in its own env, so publish_draft_target's env-var default\nwould otherwise always resolve to \"live\" here - silently defaulting a practice-league\nresume to DRY_RUN in draft_clicker.js with no error surfaced anywhere.",
        "operationId": "resume_draft_v1_draft_resume_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DraftPauseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resume Draft"
      }
    },
    "/v1/draft/start": {
      "post": {
        "description": "Creates the draft-sync Job (a wrapper around draft_matrix.py's listener) from a\nstored /config, replacing the manual `kubectl apply` step. If `league_id` is omitted,\nfalls back to the most recently stored config (today's behavior, unchanged) - pass it\nexplicitly to pick a specific stored config, e.g. to launch a practice room without\ndisturbing whichever config was updated last.\n\nwith_publisher=True additionally launches fantasy-browser-worker's draft_sync.js as a\nLIVE_SYNC_APP_LABEL-labeled connector Job alongside the listener (issue #66) - only valid\nfor a live config, since practice already has its own dedicated launch path\n(/practice/sync-job) for the room URL a human has to join by hand first. Without this,\na live league's connector has no discoverable Job, and /stop has no lifecycle signal to\nkey an automatic pick-ledger/Stream clear off of.",
        "operationId": "start_draft_sync_v1_draft_start_post",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "League Id"
            }
          },
          {
            "in": "query",
            "name": "with_publisher",
            "required": false,
            "schema": {
              "default": false,
              "title": "With Publisher",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start Draft Sync"
      }
    },
    "/v1/draft/status": {
      "get": {
        "operationId": "get_draft_status_v1_draft_status_get",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": true,
            "schema": {
              "title": "League Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 10,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DraftStatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Draft Status"
      }
    },
    "/v1/draft/stop": {
      "post": {
        "description": "Tears down a draft-sync Job and its Redis state for one league - mode-agnostic\n(works for both live and practice). Does NOT delete the draft_config row: /status and\na later /start re-launch both still need it, and there is no other stored copy of\nteam_id/season/mode for that league once it's gone.\n\nScoped to app=draft-sync (not just league-id) so this can never delete some other\nworkload that happens to share the league-id label. Waits for the Job's Pods to fully\nterminate (Foreground propagation + polling) before clearing Redis - a still-running\nlistener could otherwise recreate the recommendation board or publish a target after\nthis endpoint has already reported \"stopped\".\n\nThat wait proves *this repo's own* listener Job is gone, and - since issue #66 - the same\nwait now also covers a live league's connector (fantasy-browser-worker's draft_sync.js), if\nit was launched via /start?with_publisher=true and so carries the LIVE_SYNC_APP_LABEL this\nendpoint can discover. A connector started out-of-band instead (a manual `kubectl apply` of\nfantasy-browser-worker/k8s/test-draft-sync-job.yaml) carries no such label and is invisible\nhere, exactly like before #66. So draft:{league}:picks/health and draft_picks:{league} are\nonly cleared automatically when this call itself found and confirmed the connector's death;\notherwise clearing them while an unknown connector might still be running risks losing a\nlive pick or letting it recreate the keys right after this endpoint clears them.\nconfirm_publisher_stopped=True remains the fallback for that out-of-band case: the caller\nmanually asserting - by whatever means they verified it outside this API - that the\npublisher is truly stopped. Without one or the other, restarting a listener against a\nreused live league id replays the previous draft's picks and silently drops the new ones\nas duplicates.",
        "operationId": "stop_draft_v1_draft_stop_post",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": true,
            "schema": {
              "title": "League Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "confirm_publisher_stopped",
            "required": false,
            "schema": {
              "default": false,
              "title": "Confirm Publisher Stopped",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Stop Draft"
      }
    },
    "/v1/draft/stream": {
      "get": {
        "description": "SSE polling loop: no pub/sub exists for this data today, so this just re-runs the\nsame aggregation GET /status uses on an interval and only emits when it actually\nchanges, rather than spamming a client with identical events every 2 seconds.",
        "operationId": "stream_draft_status_v1_draft_stream_get",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": true,
            "schema": {
              "title": "League Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 10,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Stream Draft Status"
      }
    },
    "/v1/health": {
      "get": {
        "description": "Lightweight health probe verifying cluster connection liveness to internal datastores.\nUsed natively by Kubernetes liveness and readiness tracking monitors.",
        "operationId": "health_check_v1_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Health Check"
      }
    },
    "/v1/jobs": {
      "get": {
        "operationId": "get_jobs_v1_jobs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobsResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Jobs"
      }
    },
    "/v1/jobs/{name}/pause": {
      "delete": {
        "operationId": "unpause_job_v1_jobs__name__pause_delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnpauseResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Unpause Job"
      },
      "put": {
        "operationId": "pause_job_v1_jobs__name__pause_put",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PauseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PauseResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pause Job"
      }
    },
    "/v1/jobs/{name}/runs": {
      "post": {
        "operationId": "start_job_v1_jobs__name__runs_post",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "title": "Name",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunStartResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Start Job"
      }
    },
    "/v1/launcher/health": {
      "get": {
        "operationId": "get_launcher_health_v1_launcher_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LauncherHealthResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get Launcher Health"
      }
    },
    "/v1/league/current-week": {
      "get": {
        "operationId": "get_current_week_v1_league_current_week_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Season"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Current Week"
      }
    },
    "/v1/league/player-leaders": {
      "get": {
        "operationId": "leaders_v1_league_player_leaders_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "maximum": 18,
              "minimum": 1,
              "title": "Week",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "default": "",
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "position",
            "required": false,
            "schema": {
              "default": "",
              "title": "Position",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "owner",
            "required": false,
            "schema": {
              "default": "",
              "title": "Owner",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "totals",
            "required": false,
            "schema": {
              "default": false,
              "title": "Totals",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Leaders"
      }
    },
    "/v1/league/standings": {
      "get": {
        "operationId": "standings_v1_league_standings_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Standings"
      }
    },
    "/v1/league/teams": {
      "get": {
        "operationId": "get_teams_v1_league_teams_get",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": false,
            "schema": {
              "title": "League Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Teams"
      }
    },
    "/v1/livez": {
      "get": {
        "description": "Kubernetes liveness probe: answers as long as the event loop is serving requests.\nIt never checks Postgres or RabbitMQ, so a dependency outage takes the pod out of\nrotation through /v1/health (readiness) instead of restarting it.",
        "operationId": "liveness_check_v1_livez_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Liveness Check"
      }
    },
    "/v1/matchup": {
      "get": {
        "operationId": "get_matchup_v1_matchup_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "title": "Week",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatchupResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Matchup"
      }
    },
    "/v1/matchup/roster": {
      "get": {
        "operationId": "get_lineup_roster_v1_matchup_roster_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Week"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Lineup Roster"
      }
    },
    "/v1/matchup/scoreboard": {
      "get": {
        "operationId": "get_scoreboard_v1_matchup_scoreboard_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "title": "Week",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScoreboardResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Scoreboard"
      }
    },
    "/v1/players/search": {
      "get": {
        "description": "Name lookup for the web UI's manual-pick picker, so a draft-day override can be typed\nas a player name instead of a raw id. See src.services.players_service.search_players\nfor why both player_id and espn_id are returned.",
        "operationId": "search_players_endpoint_v1_players_search_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PlayerSearchResult"
                  },
                  "title": "Response Search Players Endpoint V1 Players Search Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Search Players Endpoint"
      }
    },
    "/v1/players/{player_id}/summary": {
      "get": {
        "operationId": "get_player_summary_endpoint_v1_players__player_id__summary_get",
        "parameters": [
          {
            "in": "path",
            "name": "player_id",
            "required": true,
            "schema": {
              "title": "Player Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerSummaryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Player Summary Endpoint"
      }
    },
    "/v1/roster/bye-outlook": {
      "get": {
        "description": "Which upcoming weeks NFL byes leave the lineup short. Defaults to our own league\nand team.",
        "operationId": "get_roster_bye_outlook_v1_roster_bye_outlook_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "maximum": 2100,
              "minimum": 2000,
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "maximum": 18,
              "minimum": 1,
              "title": "Week",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "horizon",
            "required": false,
            "schema": {
              "default": 4,
              "maximum": 18,
              "minimum": 1,
              "title": "Horizon",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "league_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^[1-9]\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "League Id"
            }
          },
          {
            "in": "query",
            "name": "team_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^[1-9]\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Team Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamByeOutlook"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Roster Bye Outlook"
      }
    },
    "/v1/roster/deficits": {
      "get": {
        "operationId": "get_roster_deficits_v1_roster_deficits_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "title": "Week",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RosterDeficitsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Roster Deficits"
      }
    },
    "/v1/roster/move-preview": {
      "post": {
        "operationId": "preview_v1_roster_move_preview_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Preview"
      }
    },
    "/v1/runs/{identity}": {
      "get": {
        "operationId": "get_run_v1_runs__identity__get",
        "parameters": [
          {
            "in": "path",
            "name": "identity",
            "required": true,
            "schema": {
              "title": "Identity",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Run"
      }
    },
    "/v1/runs/{identity}/cancel": {
      "post": {
        "description": "The watcher deletes the k8s Job or stops the inline process for a cancelled row.",
        "operationId": "cancel_run_v1_runs__identity__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "identity",
            "required": true,
            "schema": {
              "title": "Identity",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Cancel Run"
      }
    },
    "/v1/scoreboard": {
      "get": {
        "operationId": "get_scoreboard_v1_scoreboard_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "title": "Week",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScoreboardResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Scoreboard"
      }
    },
    "/v1/stats/vorp": {
      "get": {
        "operationId": "browse_vorp_endpoint_v1_stats_vorp_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Season"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Week"
            }
          },
          {
            "in": "query",
            "name": "position",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Position"
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/VorpSort",
              "default": "vorp"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/VorpStat"
                  },
                  "title": "Response Browse Vorp Endpoint V1 Stats Vorp Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Browse Vorp Endpoint"
      }
    },
    "/v1/trade/candidates": {
      "get": {
        "operationId": "list_trade_candidates_endpoint_v1_trade_candidates_get",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": true,
            "schema": {
              "pattern": "^[1-9]\\d*$",
              "title": "League Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "maximum": 2100,
              "minimum": 2000,
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "maximum": 18,
              "minimum": 1,
              "title": "Week",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "counterparty_team_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^[1-9]\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Counterparty Team Id"
            }
          },
          {
            "in": "query",
            "name": "receive_position",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 10,
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Receive Position"
            }
          },
          {
            "in": "query",
            "name": "send_position",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 10,
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Send Position"
            }
          },
          {
            "in": "query",
            "name": "shape",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "1for1",
                    "2for1",
                    "1for2"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Shape"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "proposable",
              "enum": [
                "proposable",
                "needs_drop",
                "one_sided",
                "all"
              ],
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "default": "final_score",
              "enum": [
                "final_score",
                "our_gain",
                "their_benefit"
              ],
              "title": "Sort",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TradeCandidateList"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Trade Candidates Endpoint"
      }
    },
    "/v1/trade/context": {
      "get": {
        "operationId": "league_trade_context_v1_trade_context_get",
        "parameters": [
          {
            "in": "query",
            "name": "league_id",
            "required": true,
            "schema": {
              "pattern": "^[1-9]\\d*$",
              "title": "League Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "maximum": 2100,
              "minimum": 2000,
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "maximum": 18,
              "minimum": 1,
              "title": "Week",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "horizon",
            "required": false,
            "schema": {
              "default": 4,
              "maximum": 18,
              "minimum": 1,
              "title": "Horizon",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeagueTradeContext"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "League Trade Context"
      }
    },
    "/v1/trade/evaluate": {
      "post": {
        "operationId": "evaluate_trade_endpoint_v1_trade_evaluate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TradeEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TradeEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Evaluate Trade Endpoint"
      }
    },
    "/v1/trade/incoming": {
      "get": {
        "operationId": "list_incoming_trades_v1_trade_incoming_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "live",
              "enum": [
                "live",
                "all",
                "open",
                "unparsed",
                "responding",
                "accepted_pending_processing",
                "accepted",
                "declined",
                "countered",
                "vetoed",
                "expired",
                "withdrawn",
                "closed_unknown"
              ],
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "visibility",
            "required": false,
            "schema": {
              "default": "visible",
              "enum": [
                "visible",
                "hidden",
                "all"
              ],
              "title": "Visibility",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "league_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^[1-9]\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "League Id"
            }
          },
          {
            "in": "query",
            "name": "season",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maximum": 2100,
                  "minimum": 2000,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Season"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncomingTradeList"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Incoming Trades"
      }
    },
    "/v1/trade/incoming/{espn_transaction_id}/counter": {
      "post": {
        "operationId": "counter_incoming_trade_v1_trade_incoming__espn_transaction_id__counter_post",
        "parameters": [
          {
            "in": "path",
            "name": "espn_transaction_id",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 1,
              "title": "Espn Transaction Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CounterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicationReceipt"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Counter Incoming Trade"
      }
    },
    "/v1/trade/incoming/{espn_transaction_id}/decision": {
      "post": {
        "operationId": "decide_incoming_trade_v1_trade_incoming__espn_transaction_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "espn_transaction_id",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 1,
              "title": "Espn Transaction Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicationReceipt"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Decide Incoming Trade"
      }
    },
    "/v1/trade/incoming/{espn_transaction_id}/decision/retry": {
      "post": {
        "operationId": "retry_incoming_trade_decision_v1_trade_incoming__espn_transaction_id__decision_retry_post",
        "parameters": [
          {
            "in": "path",
            "name": "espn_transaction_id",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 1,
              "title": "Espn Transaction Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicationReceipt"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retry Incoming Trade Decision"
      }
    },
    "/v1/trade/incoming/{espn_transaction_id}/thread": {
      "get": {
        "operationId": "get_incoming_thread_v1_trade_incoming__espn_transaction_id__thread_get",
        "parameters": [
          {
            "in": "path",
            "name": "espn_transaction_id",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 1,
              "title": "Espn Transaction Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "league_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "pattern": "^[1-9]\\d*$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "League Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NegotiationThread"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Incoming Thread"
      }
    },
    "/v1/trade/incoming/{espn_transaction_id}/triage": {
      "post": {
        "operationId": "triage_incoming_trade_v1_trade_incoming__espn_transaction_id__triage_post",
        "parameters": [
          {
            "in": "path",
            "name": "espn_transaction_id",
            "required": true,
            "schema": {
              "maxLength": 200,
              "minLength": 1,
              "title": "Espn Transaction Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncomingTrade"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Triage Incoming Trade"
      }
    },
    "/v1/trade/offers": {
      "get": {
        "operationId": "list_trade_offers_v1_trade_offers_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "awaiting_approval",
              "enum": [
                "awaiting_approval",
                "approval_pending",
                "approved",
                "superseded",
                "submit_blocked",
                "dry_run_filled",
                "submitting",
                "submitted",
                "failure"
              ],
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "league_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "League Id"
            }
          },
          {
            "in": "query",
            "name": "season",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Season"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TradeOfferList"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Trade Offers"
      }
    },
    "/v1/trade/offers/{offer_key}/approve": {
      "post": {
        "operationId": "approve_trade_offer_v1_trade_offers__offer_key__approve_post",
        "parameters": [
          {
            "in": "path",
            "name": "offer_key",
            "required": true,
            "schema": {
              "pattern": "^[0-9a-f]{64}$",
              "title": "Offer Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TradeApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TradeApprovalResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Approve Trade Offer"
      }
    },
    "/v1/trade/offers/{offer_key}/resolution": {
      "post": {
        "operationId": "resolve_trade_offer_v1_trade_offers__offer_key__resolution_post",
        "parameters": [
          {
            "in": "path",
            "name": "offer_key",
            "required": true,
            "schema": {
              "pattern": "^[0-9a-f]{64}$",
              "title": "Offer Key",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OfferResolutionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfferResolutionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolve Trade Offer"
      }
    },
    "/v1/trade/score": {
      "post": {
        "operationId": "score_trade_endpoint_v1_trade_score_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TradeScoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TradeScore"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Score Trade Endpoint"
      }
    },
    "/v1/trigger/draft-pick": {
      "post": {
        "description": "Draft-day counterpart to /trigger/lineup (CORE-08): publishes the live optimizer's\nrecommended draft target to the click-bot queue. Same asymmetric gateway shape -\nHTTP in, durable AMQP message out - the optimizer module never touches pika directly.",
        "operationId": "trigger_draft_pick_v1_trigger_draft_pick_post",
        "parameters": [
          {
            "description": "Run audit log id of the calling job, if any.",
            "in": "header",
            "name": "x-run-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Run audit log id of the calling job, if any.",
              "title": "X-Run-Id"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DraftPickTriggerPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Draft Pick"
      }
    },
    "/v1/trigger/lineup": {
      "post": {
        "description": "Asymmetric API gateway: Translates incoming high-level HTTP payloads into structured\npersistent queue messages inside RabbitMQ to activate automated browser worker scripts.",
        "operationId": "trigger_lineup_swap_v1_trigger_lineup_post",
        "parameters": [
          {
            "description": "Run audit log id of the calling job, if any.",
            "in": "header",
            "name": "x-run-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Run audit log id of the calling job, if any.",
              "title": "X-Run-Id"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LineupTriggerPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Lineup Swap"
      }
    },
    "/v1/trigger/rumor-action": {
      "post": {
        "operationId": "trigger_rumor_action_v1_trigger_rumor_action_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RumorActionTriggerRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Payload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RumorActionTriggerResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Rumor Action"
      }
    },
    "/v1/trigger/waiver": {
      "post": {
        "description": "Waiver-claim counterpart to /trigger/lineup (CORE-15/#117): publishes a live waiver\nevaluation's recommended add/drop to the click-bot queue. Same asymmetric gateway shape\nas /trigger/lineup - HTTP in, durable AMQP message out. No deadline handling (no pick\nclock), but the same idempotency claim protocol, week-scoped: see\nWAIVER_TRIGGER_IDEMPOTENCY_TTL_SECONDS.",
        "operationId": "trigger_waiver_claim_v1_trigger_waiver_post",
        "parameters": [
          {
            "description": "Run audit log id of the calling job, if any.",
            "in": "header",
            "name": "x-run-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Run audit log id of the calling job, if any.",
              "title": "X-Run-Id"
            }
          },
          {
            "in": "header",
            "name": "x-api-key",
            "required": true,
            "schema": {
              "title": "X-Api-Key",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WaiverTriggerPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Waiver Claim"
      }
    },
    "/v1/waiver/free-agents": {
      "get": {
        "operationId": "get_free_agents_v1_waiver_free_agents_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "maximum": 18,
              "minimum": 1,
              "title": "Week",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "position",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Position"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Q"
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "default": "vorp",
              "enum": [
                "vorp",
                "projected"
              ],
              "title": "Sort",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FreeAgentsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Free Agents"
      }
    },
    "/v1/waiver/recommendations": {
      "get": {
        "operationId": "get_waiver_recommendations_v1_waiver_recommendations_get",
        "parameters": [
          {
            "in": "query",
            "name": "season",
            "required": true,
            "schema": {
              "title": "Season",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "week",
            "required": true,
            "schema": {
              "title": "Week",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "horizon",
            "required": false,
            "schema": {
              "default": 4,
              "maximum": 18,
              "minimum": 1,
              "title": "Horizon",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WaiverRecommendationsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Waiver Recommendations"
      }
    }
  }
}
