{"service":{"name":"Bloodline Bowl Fantasy Football Intelligence Bridge","purpose":"A read-only JSON bridge that turns multiple Sleeper (and, once authorized, Yahoo) fantasy football leagues into self-describing documents an AI assistant can fetch and reason about: rosters, scoring, projections, draft help, and a weekly decision engine (lineup / start-sit / matchup / waivers).","production_base_url":"https://bloodline-bowl-sleeper-bridge.vercel.app","github_repository":"https://github.com/supyo29/bloodline-bowl","read_only":true,"ai_instructions":["Start at /api/ai. This is the canonical DISCOVERY CONTRACT. Every URL you need is listed here or reachable by following links in the responses it points to.","Follow the links and route_templates returned by the API verbatim. Do not guess, hand-construct, or normalize URLs. Route structure is NOT uniform: valid paths live under several namespaces (/api/leagues/..., /api/league/..., /api/context/..., /api/intelligence/..., /api/lineup/..., /api/matchup/..., /api/waivers/..., /api/transactions/..., /api/history/...). 'canonical' here means 'the advertised route to use', not 'all under one prefix'.","Resolve identity in two steps: first the league slug, then the manager slug WITHIN that league. They are different namespaces.","If you are given only a manager username, look it up in registered_managers below (or call /api/leagues/{leagueSlug}/managers) to find its league, then use the advertised manager URL.","A manager who is not a member of the league you name returns an explicit 4xx error — never a different manager. Do not retry with a different league to 'make it work'.","Weekly routes need a {week}. Get the current NFL week from /api/league/{leagueSlug}/state (`state.current_week`).","HTTP 200 means only that the route RESOLVED. It does NOT mean the answer is actionable. Always inspect the endpoint-level `status` / `warnings` / `data_quality` / `snake_engine_status` / `live_provider_status` / `history_persistence_status` (or equivalent) fields in the body.","A capability can resolve with HTTP 200 and still legitimately be BLOCKED, DEGRADED, AUTH_REQUIRED, PERSISTENCE_NOT_CONFIGURED, NOT_CONFIGURED, or UNSUPPORTED_MODE. Do not report 'recommendations are available' or 'the lineup is set' on the basis of the HTTP status alone.","GitHub is optional. It is for inspecting methodology only; the live bridge is fully usable without it."]},"identity_model":{"league_identity_is_not_manager_identity":true,"instructions":["League slug (e.g. bloodline-bowl) selects WHICH league. Manager slug (e.g. bijimac) selects WHICH team owner inside it.","Canonical league route: /api/leagues/{leagueSlug}. Canonical manager route: /api/leagues/{leagueSlug}/managers/{managerSlug}.","Membership is validated live on every request. bloodline-bowl + darthmarker does not resolve; devoted-to-the-game + bijimac does not resolve.","There is no cross-league fallback. An unknown or non-member manager is a 4xx, never a silent substitution.","Given only a manager username: find its league via registered_managers or /api/leagues/{leagueSlug}/managers, then descend league → manager → capability."]},"endpoint_status_semantics":{"http_200_means":"the route resolved — nothing more","you_must_also_check":["status","warnings","data_quality","snake_engine_status","live_provider_status","history_persistence_status"],"non_actionable_states_that_still_return_200":["BLOCKED","DEGRADED","AUTH_REQUIRED","PERSISTENCE_NOT_CONFIGURED","NOT_CONFIGURED","UNSUPPORTED_MODE"],"rule":"Do not treat HTTP 200 alone as 'recommendations are currently available'."},"discovery_contract":{"canonical_entry_point":"/api/ai","note":"'Canonical' means: this is the discovery contract, and the URLs it advertises are the ones to call. It does NOT mean every route shares one /api/leagues/... prefix — routes span several namespaces (/api/league/..., /api/context/..., /api/intelligence/..., etc.). Follow advertised URLs; do not infer route structure."},"start_here":{"ai_discovery":"/api/ai","compact_index":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/ai/compact","mcp_server":{"url":"https://bloodline-bowl-sleeper-bridge.vercel.app/mcp","transport":"streamable-http","authentication":"none (public read-only data)","read_only":true,"docs":"https://github.com/supyo29/bloodline-bowl/blob/main/docs/MCP_CONNECTOR.md"},"league_discovery":"/api/leagues","manager_discovery_template":"/api/leagues/{leagueSlug}/managers","league_overview_template":"/api/leagues/{leagueSlug}","manager_home_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}","traversal":["/api/ai","/api/leagues","/api/leagues/{leagueSlug}","/api/leagues/{leagueSlug}/managers","/api/leagues/{leagueSlug}/managers/{managerSlug}","→ any capability route template below"]},"leagues":[{"league_slug":"bloodline-bowl","league_name":"Bloodline Bowl","provider":"sleeper","season":2026,"config_status":"READY","is_default":true,"known_manager_slugs":["supyo29","bijimac"],"canonical_urls":{"state":"/api/league/bloodline-bowl/state","transactions":"/api/transactions/bloodline-bowl","context_template":"/api/context/bloodline-bowl/{managerSlug}","history_template":"/api/history/bloodline-bowl/week/{week}"},"sleeper_only_urls":{"overview":"/api/leagues/bloodline-bowl","managers":"/api/leagues/bloodline-bowl/managers","scoring":"/api/leagues/bloodline-bowl/scoring","projections":"/api/leagues/bloodline-bowl/projections","draft":"/api/leagues/bloodline-bowl/draft","snapshot":"/api/leagues/bloodline-bowl/snapshot"}},{"league_slug":"devoted-to-the-game","league_name":"Devoted to the Game","provider":"sleeper","season":2026,"config_status":"READY","is_default":false,"known_manager_slugs":["darthmarker"],"canonical_urls":{"state":"/api/league/devoted-to-the-game/state","transactions":"/api/transactions/devoted-to-the-game","context_template":"/api/context/devoted-to-the-game/{managerSlug}","history_template":"/api/history/devoted-to-the-game/week/{week}"},"sleeper_only_urls":{"overview":"/api/leagues/devoted-to-the-game","managers":"/api/leagues/devoted-to-the-game/managers","scoring":"/api/leagues/devoted-to-the-game/scoring","projections":"/api/leagues/devoted-to-the-game/projections","draft":"/api/leagues/devoted-to-the-game/draft","snapshot":"/api/leagues/devoted-to-the-game/snapshot"}},{"league_slug":"sportys-alumni","league_name":"Sporty's Alumni","provider":"sleeper","season":2026,"config_status":"READY","is_default":false,"known_manager_slugs":[],"canonical_urls":{"state":"/api/league/sportys-alumni/state","transactions":"/api/transactions/sportys-alumni","context_template":"/api/context/sportys-alumni/{managerSlug}","history_template":"/api/history/sportys-alumni/week/{week}"},"sleeper_only_urls":{"overview":"/api/leagues/sportys-alumni","managers":"/api/leagues/sportys-alumni/managers","scoring":"/api/leagues/sportys-alumni/scoring","projections":"/api/leagues/sportys-alumni/projections","draft":"/api/leagues/sportys-alumni/draft","snapshot":"/api/leagues/sportys-alumni/snapshot"}},{"league_slug":"maclin-on-chicks-xvi","league_name":"Maclin on Chick's XVI","provider":"yahoo","season":2026,"config_status":"LIVE_VALIDATION_REQUIRED","is_default":false,"known_manager_slugs":[],"canonical_urls":{"state":"/api/league/maclin-on-chicks-xvi/state","transactions":"/api/transactions/maclin-on-chicks-xvi","context_template":"/api/context/maclin-on-chicks-xvi/{managerSlug}","history_template":"/api/history/maclin-on-chicks-xvi/week/{week}"},"sleeper_only_urls":null},{"league_slug":"rogers-park","league_name":"Rogers Park","provider":"yahoo","season":2026,"config_status":"LIVE_VALIDATION_REQUIRED","is_default":false,"known_manager_slugs":[],"canonical_urls":{"state":"/api/league/rogers-park/state","transactions":"/api/transactions/rogers-park","context_template":"/api/context/rogers-park/{managerSlug}","history_template":"/api/history/rogers-park/week/{week}"},"sleeper_only_urls":null}],"registered_managers":[{"manager_slug":"supyo29","sleeper_username":"Supyo29","league_slug":"bloodline-bowl","canonical_url":"/api/leagues/bloodline-bowl/managers/supyo29","aliases":["supyo29","Supyo29"]},{"manager_slug":"bijimac","sleeper_username":"BijiMac","league_slug":"bloodline-bowl","canonical_url":"/api/leagues/bloodline-bowl/managers/bijimac","aliases":["bijimac","BijiMac"]},{"manager_slug":"darthmarker","sleeper_username":"DarthMarker","league_slug":"devoted-to-the-game","canonical_url":"/api/leagues/devoted-to-the-game/managers/darthmarker","aliases":["darthmarker","DarthMarker"]}],"capabilities":[{"id":"league_discovery","title":"League discovery","description":"Every configured league with its canonical slug, provider, readiness, and the URLs to descend into it.","scope":"service","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/leagues","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues"},{"id":"league_overview","title":"League overview","description":"One league: settings, teams, managers, standings, draft status, plus a live-verified roster_id → canonical manager URL table.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}"},{"id":"manager_directory","title":"Manager directory","description":"Every manager in one league (live from the provider) with canonical manager, draft, and snapshot URLs.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers"},{"id":"manager_home","title":"Manager home + roster","description":"One manager's verified identity, full roster (starters / bench / taxi / reserve), roster composition, slot coverage, and links to every manager-specific capability.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}"},{"id":"manager_context","title":"Manager analytical context","description":"Provider-independent canonical context for one manager: canonical ids, team, roster, record. The generic spine the weekly engine consumes.","scope":"manager","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/context/{leagueSlug}/{managerSlug}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/context/{leagueSlug}/{managerSlug}"},{"id":"league_state","title":"Canonical league state","description":"Provider-independent current-state snapshot for one league (the same shape the nightly capture job persists), with explicit live + persistence status.","scope":"league","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/league/{leagueSlug}/state","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/league/{leagueSlug}/state"},{"id":"scoring","title":"Scoring rules + analysis","description":"League scoring settings, derived metrics, archetype examples, and sensitivity diagnostics.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/scoring","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/scoring"},{"id":"league_projections","title":"League projections","description":"Season projections translated through this league's actual scoring, with value-over-replacement, tiers, and positional scarcity. Identical for every manager in the league.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/projections","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/projections","query_params":["position","limit"]},{"id":"player_projection","title":"Single-player projection","description":"One player's projection detail under this league's scoring.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/projections/{playerId}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/projections/{playerId}"},{"id":"manager_projections","title":"Need-weighted manager projections","description":"League projections re-weighted for ONE manager's roster: contextual_value, roster_fit, need_multiplier, and an RI-vs-Sleeper projection edge.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}/projections","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}/projections","query_params":["limit"]},{"id":"league_draft","title":"League draft state","description":"Shared draft board: picks made, budgets / max bids (auction) or board order (snake), and available players.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/draft","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/draft"},{"id":"manager_draft","title":"Personalized draft context","description":"Shared draft state composed with one manager's roster, slot, picks, positional needs, and best-available candidates.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}/draft","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}/draft","query_params":["available_limit","recommendations"]},{"id":"manager_recommendations","title":"Snake-draft recommendation engine","description":"Who THIS manager should draft now — turn geometry, tier cliffs, ADP survival, reach cost, roster-construction risk, two-pick optimisation. Snake drafts only.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}/recommendations","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}/recommendations"},{"id":"league_snapshot","title":"League snapshot","description":"Compact, AI-friendly current-state view of the whole league in one document.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/snapshot","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/snapshot"},{"id":"manager_snapshot","title":"Personalized snapshot","description":"Shared league snapshot composed with one manager's roster, slot, picks, needs, and recommendations — a single paste-once hand-off URL.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}/snapshot","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}/snapshot"},{"id":"weekly_intelligence","title":"Weekly intelligence (combined decision layer)","description":"Lineup + start/sit + matchup + leverage + waivers for one manager and week, plus top_actions and a manager-facing summary. Missing projections degrade explicitly, never to 0. Waiver actionability alone is gated on the canonical free_agent_pool capability: when it is unavailable there is no WAIVER top_action and summary.waiver_priority states the pool is not materialized, while lineup / start-sit / matchup / Football-Intelligence / positional-needs are unaffected.","scope":"manager-week","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/intelligence/{leagueSlug}/{managerSlug}/week/{week}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/intelligence/{leagueSlug}/{managerSlug}/week/{week}"},{"id":"weekly_lineup","title":"Optimal lineup + start/sit","description":"Optimal legal starting lineup (slot assignment, not a points sort) for one manager and week, plus explicit start/sit comparisons for close calls.","scope":"manager-week","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/lineup/{leagueSlug}/{managerSlug}/week/{week}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/lineup/{leagueSlug}/{managerSlug}/week/{week}"},{"id":"weekly_matchup","title":"Matchup analysis","description":"Both teams on their best legal projected lineup: totals, margin, positional edges, leverage / swing players, bench depth, and (when coverage supports it) a seeded Monte-Carlo win probability.","scope":"manager-week","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/matchup/{leagueSlug}/{managerSlug}/week/{week}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/matchup/{leagueSlug}/{managerSlug}/week/{week}"},{"id":"weekly_waivers","title":"Waiver / add-drop engine","description":"League-aware acquisition engine: every candidate paired with the drop it requires, DO_NOT_ADD when the wire is not worth it. Free agency is canonical, this-league availability only. Gated on the canonical free_agent_pool capability: until the provider free-agent pool is materialized/certified the response is status NOT_READY (HTTP 200, reason_code FREE_AGENT_POOL_UNAVAILABLE) with empty recommendations — UNROSTERED != CERTIFIED_FREE_AGENT, HTTP_200 != ACTIONABLE_DATA.","scope":"manager-week","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/waivers/{leagueSlug}/{managerSlug}/week/{week}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/waivers/{leagueSlug}/{managerSlug}/week/{week}","query_params":["limit"]},{"id":"transactions","title":"Transaction ledger","description":"Normalized canonical transactions for one league from the durable ledger (falls back to a live provider read before the first sync; `source` says which).","scope":"league","temporality":"live+historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/transactions/{leagueSlug}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/transactions/{leagueSlug}","query_params":["season","week","type","team","limit"]},{"id":"history","title":"Historical weekly snapshots","description":"Retained weekly captures from the durable snapshot store (earlier versions are never destroyed). Explicit PERSISTENCE_NOT_CONFIGURED state when history is not wired up.","scope":"league","temporality":"historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/history/{leagueSlug}/week/{week}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/history/{leagueSlug}/week/{week}","query_params":["capture_type","season","versions"]},{"id":"providers","title":"Provider + persistence readiness","description":"Live health of every fantasy provider and the persistence subsystem, from real probes.","scope":"service","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/providers","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/providers"},{"id":"receiver_progression","title":"Receiver target progression","description":"Raw FTN read_thrown codes on actual receiver targets by NFL week: numeric codes RAW_0/RAW_1/RAW_2 (meaning UNVERIFIED — the source dictionary conflicts with observed data, so they are NOT labelled first/second/third read) plus CHECKDOWN, DESIGNED and SCRAMBLE_DRILL. DESCRIPTIVE_ONLY; contains only the thrown target's code, not the full or unthrown QB progression, so do not use it to answer 'was he the first read'.","scope":"service","temporality":"live+historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/football-intel/players/{playerId}/progression","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/football-intel/players/{playerId}/progression","query_params":["season","week"]},{"id":"player_scheme_index","title":"Player-Scheme index + manifest","description":"Phase 9 Player-Scheme Intelligence. SHARED_DESCRIPTIVE only: it never adjusts a projection or recommendation (fantasy_adjustment_enabled=false). Tier data is PRIOR_ONLY through the 2025 season (no live 2026 signal); the FTN read_thrown progression is exposed as raw RAW_0/RAW_1/RAW_2 codes with UNVERIFIED semantics. Index of the namespace with the served manifest and per-tier content identity.","scope":"service","temporality":"historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/player-scheme","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/player-scheme"},{"id":"player_scheme_player","title":"Player-Scheme player profile","description":"Phase 9 Player-Scheme Intelligence. SHARED_DESCRIPTIVE only: it never adjusts a projection or recommendation (fantasy_adjustment_enabled=false). Tier data is PRIOR_ONLY through the 2025 season (no live 2026 signal); the FTN read_thrown progression is exposed as raw RAW_0/RAW_1/RAW_2 codes with UNVERIFIED semantics. One player's spatial / charting / tendency profile.","scope":"service","temporality":"historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/player-scheme/players/{playerId}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/player-scheme/players/{playerId}","query_params":["view"]},{"id":"player_scheme_matchup","title":"Player-Scheme player-vs-defense descriptors","description":"Phase 9 Player-Scheme Intelligence. SHARED_DESCRIPTIVE only: it never adjusts a projection or recommendation (fantasy_adjustment_enabled=false). Tier data is PRIOR_ONLY through the 2025 season (no live 2026 signal); the FTN read_thrown progression is exposed as raw RAW_0/RAW_1/RAW_2 codes with UNVERIFIED semantics. Descriptive player-by-opponent scheme overlap; Tier D interaction research is SHADOW_ONLY with a zero numeric adjustment.","scope":"service","temporality":"historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/player-scheme/matchups/{playerId}/{opponent}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/player-scheme/matchups/{playerId}/{opponent}","query_params":["window"]},{"id":"player_scheme_team_offense","title":"Player-Scheme team offense profile","description":"Phase 9 Player-Scheme Intelligence. SHARED_DESCRIPTIVE only: it never adjusts a projection or recommendation (fantasy_adjustment_enabled=false). Tier data is PRIOR_ONLY through the 2025 season (no live 2026 signal); the FTN read_thrown progression is exposed as raw RAW_0/RAW_1/RAW_2 codes with UNVERIFIED semantics. Team offensive tendency profile.","scope":"service","temporality":"historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/player-scheme/teams/{team}/offense","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/player-scheme/teams/{team}/offense"},{"id":"player_scheme_team_defense","title":"Player-Scheme team defense profile","description":"Phase 9 Player-Scheme Intelligence. SHARED_DESCRIPTIVE only: it never adjusts a projection or recommendation (fantasy_adjustment_enabled=false). Tier data is PRIOR_ONLY through the 2025 season (no live 2026 signal); the FTN read_thrown progression is exposed as raw RAW_0/RAW_1/RAW_2 codes with UNVERIFIED semantics. Team defensive scheme profile.","scope":"service","temporality":"historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/player-scheme/teams/{team}/defense","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/player-scheme/teams/{team}/defense"},{"id":"league_market_state","title":"League market state (who is actually acquirable)","description":"READ-ONLY, provider-independent Market State: the verified free-agent / waiver pool with the evidence behind every answer. Yahoo availability is stated per player by Yahoo (FA = addable now, W = claim-only with a clear DATE); Sleeper availability is inferred from rosters + the transaction feed. UNKNOWN is never reduced to available. Readiness is reported as separate AXES (availability / valuation / transaction / recommendation) so a verified pool is usable while exact claim timing is only PARTIAL. ?view=summary (default) returns readiness, counts, acquisition rules, FAAB/priority per team, pending-claim visibility, game-lock semantics, pool pagination evidence and freshness; ?view=pool adds the verified players (filter with position=QB|RB|WR|TE|K|DEF and status=FA|W|UNKNOWN). Advisory only: Bloodline never adds, drops, claims or trades.","scope":"league","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/league/{league}/market?week={week}&view={summary|pool}","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/league/{league}/market?week={week}&view={summary|pool}"},{"id":"league_roster_health","title":"Roster health (league)","description":"SHARED_CONTEXT roster fragility, depth and contingency conditions for every team in the league. Conditions inform; this is not a recommendation and never fabricates a remedy.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/roster-health","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/roster-health"},{"id":"manager_roster_health","title":"Roster health (manager)","description":"SHARED_CONTEXT roster fragility, depth and contingency conditions for one manager. Conditions inform; this is not a recommendation and never fabricates a remedy.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}/roster-health","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}/roster-health"},{"id":"league_schedule_planning","title":"Schedule planning (league)","description":"SHARED_CONTEXT schedule / opponent-difficulty / playoff-window planning conditions for the league. Conditions inform; not a recommendation.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/schedule-planning","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/schedule-planning"},{"id":"manager_schedule_planning","title":"Schedule planning (manager)","description":"SHARED_CONTEXT schedule / opponent-difficulty / playoff-window planning conditions for one manager. Conditions inform; not a recommendation.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}/schedule-planning","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}/schedule-planning"},{"id":"league_orchestrate","title":"Team-management orchestrator (league)","description":"ADVISORY_ONLY composition of team-state, roster-health, schedule-planning and shadow layers over ONE canonical snapshot per request. Conditions inform and shadow layers never influence production numbers.","scope":"league","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/orchestrate","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/orchestrate"},{"id":"manager_orchestrate","title":"Team-management orchestrator (manager)","description":"ADVISORY_ONLY composition of team-state, roster-health, schedule-planning and shadow layers for one manager over ONE canonical snapshot. Conditions inform and shadow layers never influence production numbers.","scope":"manager","temporality":"live","canonical":true,"provider_support":"sleeper_only","method":"GET","route_template":"/api/leagues/{leagueSlug}/managers/{managerSlug}/orchestrate","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/leagues/{leagueSlug}/managers/{managerSlug}/orchestrate"},{"id":"startsit_evidence_diagnostics","title":"Start/Sit shadow evidence diagnostics","description":"READ-ONLY diagnostics for the SHADOW Start/Sit model (ri-startsit-2026.1, frozen, SHADOW_ONLY): evidence-gate state, capture-store durability/health and evidence counts by capture class (LIVE_CAPTURED / LIVE_POST_LOCK / LIVE_UNVERIFIED / HISTORICALLY_RECONSTRUCTED). Reports no outcome metrics and never changes deployment state.","scope":"service","temporality":"live","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/football-intel/startsit-evidence","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/football-intel/startsit-evidence"},{"id":"book_ready_evidence","title":"Book-Ready evidence retrieval","description":"READ-ONLY analytical retrieval of structured EvidenceBlocks (Phase 3.5C). ?capabilities=1 lists topics, required parameters and per-surface Book-Ready capability (current / history / comparison / decomposition / confidence / freshness / lineage / units / chart-readiness) and the refresh status of each artifact. ?topic=<fi.team_metric|fi.player_usage|role.player_profile|role.role_change|opp.scenario|scheme.qb_progression|scheme.qb_spatial|scheme.qb_formation|scheme.defense_coverage|startsit.shadow|matchup.shadow|waiver.status|waiver2.actions|waiver2.market|waiver2.replacement|roster_health.team|schedule_planning.team|trade.evaluation>. Source-native values are preserved next to a normalized analysis class; confidence, sample support, freshness, deployment and predictive status are INDEPENDENT axes; units/scale are explicit per metric (values above 1 can be legitimate); every comparison states its population; history comes only from immutable published snapshots and is labelled; Opportunity Propagation is CONDITIONAL, never an unconditional projection; SHADOW and DESCRIPTIVE evidence is never presented as production-predictive. history=1 and comparisons=1 are opt-in. Never writes prose or changes any production recommendation; SHADOW model outputs (Start/Sit, matchup, Waiver 2.0) are exposed as SHADOW evidence, never as production output.","scope":"service","temporality":"live+historical","canonical":true,"provider_support":"all","method":"GET","route_template":"/api/evidence","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/evidence","query_params":["topic","capabilities","history","comparisons","team","side","metrics","gsis_id","sleeper_id","dimensions","season","week","unavailable","window","league","manager"]},{"id":"competitive_trade","title":"Competitive trade intelligence","description":"POST endpoint. SEPARATE from legacy mutual-benefit trade discovery: this optimizes the requesting manager's championship equity subject to the deal staying plausibly acceptable to the counterparty — the other manager's improvement is a cost, not an objective. Modes: 'evaluate' (one explicit proposal via give_assets / receive_assets / counterparty), 'negotiate' (base deal plus value-extraction / negotiation envelope), 'discover' (search for analytically positive direct trade candidates for the requester), 'strategy_path' (direct vs hold vs buy-and-hold vs bounded two-step vs no-action). Every trade carries BOTH a competitive_classification (STRONG_COMPETITIVE_BUY … REJECT — is it analytically attractive) and a transaction_readiness (NOT_RECOMMENDED / REVIEW_REQUIRED / EXPLORATORY / NEGOTIATION_WORTH_EXPLORING / TRANSACTION_READY — should you act on it now); a positive classification with LOW confidence or LOW acceptance is NEVER TRANSACTION_READY. discover may return analytically positive candidates while still recommending NO_ACTION because none is transaction-ready — that is not a contradiction. status NO_ACTION is a SUCCESSFUL result (HTTP 200), not an error or a not-ready state; status REVIEW_REQUIRED is preserved and never softened into a recommendation; confidence (VERY_LOW/LOW/MEDIUM/HIGH) and readiness are passed through, never upgraded. Opponent-threat calculations use exactly the roster identities in the current snapshot (co-managed teams are one participant, not two); a participant-set mismatch fails the competitive recommendation closed. Every response carries the source snapshot lineage (league_snapshot_id, generated_at, scoring/roster fingerprints, player-data version). Acceptance likelihood is heuristic (one real league trade exists); opponent threat is heuristic; market appreciation potential is speculative; early-season dynamic market evidence is preseason-only; multi-step trade paths are bounded to a maximum of two completed trades. READ-ONLY analytics — it never submits, accepts, or modifies a trade and never sends a message.","scope":"league","temporality":"live","canonical":true,"provider_support":"all","method":"POST","route_template":"/api/trades/competitive","absolute_route_template":"https://bloodline-bowl-sleeper-bridge.vercel.app/api/trades/competitive","request_modes":["evaluate","negotiate","discover","strategy_path"],"required_body_fields":["league","manager","mode"]}],"route_templates":{"canonical":{"league_discovery":"/api/leagues","league_overview":"/api/leagues/{leagueSlug}","manager_directory":"/api/leagues/{leagueSlug}/managers","manager_home":"/api/leagues/{leagueSlug}/managers/{managerSlug}","manager_context":"/api/context/{leagueSlug}/{managerSlug}","league_state":"/api/league/{leagueSlug}/state","scoring":"/api/leagues/{leagueSlug}/scoring","league_projections":"/api/leagues/{leagueSlug}/projections","player_projection":"/api/leagues/{leagueSlug}/projections/{playerId}","manager_projections":"/api/leagues/{leagueSlug}/managers/{managerSlug}/projections","league_draft":"/api/leagues/{leagueSlug}/draft","manager_draft":"/api/leagues/{leagueSlug}/managers/{managerSlug}/draft","manager_recommendations":"/api/leagues/{leagueSlug}/managers/{managerSlug}/recommendations","league_snapshot":"/api/leagues/{leagueSlug}/snapshot","manager_snapshot":"/api/leagues/{leagueSlug}/managers/{managerSlug}/snapshot","weekly_intelligence":"/api/intelligence/{leagueSlug}/{managerSlug}/week/{week}","weekly_lineup":"/api/lineup/{leagueSlug}/{managerSlug}/week/{week}","weekly_matchup":"/api/matchup/{leagueSlug}/{managerSlug}/week/{week}","weekly_waivers":"/api/waivers/{leagueSlug}/{managerSlug}/week/{week}","transactions":"/api/transactions/{leagueSlug}","history":"/api/history/{leagueSlug}/week/{week}","providers":"/api/providers","receiver_progression":"/api/football-intel/players/{playerId}/progression","player_scheme_index":"/api/player-scheme","player_scheme_player":"/api/player-scheme/players/{playerId}","player_scheme_matchup":"/api/player-scheme/matchups/{playerId}/{opponent}","player_scheme_team_offense":"/api/player-scheme/teams/{team}/offense","player_scheme_team_defense":"/api/player-scheme/teams/{team}/defense","league_market_state":"/api/league/{league}/market?week={week}&view={summary|pool}","league_roster_health":"/api/leagues/{leagueSlug}/roster-health","manager_roster_health":"/api/leagues/{leagueSlug}/managers/{managerSlug}/roster-health","league_schedule_planning":"/api/leagues/{leagueSlug}/schedule-planning","manager_schedule_planning":"/api/leagues/{leagueSlug}/managers/{managerSlug}/schedule-planning","league_orchestrate":"/api/leagues/{leagueSlug}/orchestrate","manager_orchestrate":"/api/leagues/{leagueSlug}/managers/{managerSlug}/orchestrate","startsit_evidence_diagnostics":"/api/football-intel/startsit-evidence","book_ready_evidence":"/api/evidence","competitive_trade":"/api/trades/competitive"},"note":"Substitute {leagueSlug} and {managerSlug} with values from `leagues` / `registered_managers`. Substitute {playerId} with a supported GSIS or Sleeper player id for player-level service routes. Substitute {week} with the current NFL week from /api/league/{leagueSlug}/state (state.current_week). Scope 'manager-week' routes use the /api/{capability}/{leagueSlug}/{managerSlug}/week/{week} shape, NOT the /api/leagues/... prefix."},"legacy_routes":{"note":"`?league=` query-form routes remain supported for existing clients. Prefer the canonical path routes above. A few historical-analysis capabilities are currently only available in this legacy form (canonical_equivalent: null). sleeper_only: true means this route (and its canonical_equivalent, if any) 400s for a non-Sleeper league (e.g. a Yahoo league like rogers-park) — do not use it for one. Check `leagues[].provider` first.","routes":[{"id":"legacy_league","route_template":"/api/league?league={leagueSlug}","description":"Consolidated normalized league snapshot (original entry point).","canonical_equivalent":"/api/leagues/{leagueSlug}","sleeper_only":true},{"id":"legacy_draft","route_template":"/api/draft?league={leagueSlug}","description":"Live draft-night view.","canonical_equivalent":"/api/leagues/{leagueSlug}/draft","sleeper_only":true},{"id":"legacy_scoring","route_template":"/api/scoring?league={leagueSlug}","description":"Scoring rules + analysis. Already provider-independent (reads the canonical league state).","canonical_equivalent":"/api/league/{leagueSlug}/state","sleeper_only":false},{"id":"legacy_snapshot","route_template":"/api/snapshot?league={leagueSlug}","description":"Compact league snapshot.","canonical_equivalent":"/api/league/{leagueSlug}/state","sleeper_only":true},{"id":"legacy_transactions","route_template":"/api/transactions?league={leagueSlug}","description":"Sleeper-native transactions. Use the canonical path form for a non-Sleeper league.","canonical_equivalent":"/api/transactions/{leagueSlug}","sleeper_only":true},{"id":"legacy_context","route_template":"/api/context/{leagueSlug}/{managerSlug}","description":"Canonical manager context (path form; there is no `?league=` variant). Already provider-independent.","canonical_equivalent":"/api/context/{leagueSlug}/{managerSlug}","sleeper_only":false},{"id":"standings","route_template":"/api/standings?league={leagueSlug}&season={season}","description":"Factual standings + derived weekly score statistics. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"matchups_history","route_template":"/api/matchups?league={leagueSlug}&season={season}&week={week}","description":"Factual weekly matchup results with weekly score rank. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"roster_analysis","route_template":"/api/roster-analysis?league={leagueSlug}&season={season}","description":"Deterministic structural roster facts: composition, age, slot coverage, spend, pick ownership. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"player_weekly","route_template":"/api/player-weekly?league={leagueSlug}&season={season}&week={week}","description":"Historical weekly player fantasy scoring under the resolved season's own settings. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"weekly_stats","route_template":"/api/weekly-stats?league={leagueSlug}&season={season}&week={week}&position={position}","description":"Raw NFL weekly stats scored through this league's engine, with ranks. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"lineups_history","route_template":"/api/lineups?league={leagueSlug}&season={season}&week={week}","description":"Historical weekly roster ownership + starter snapshots, one row per roster-player-week. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"player_availability","route_template":"/api/player-availability?league={leagueSlug}&season={season}","description":"Weekly player availability evidence with confidence semantics. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"manager_availability","route_template":"/api/manager-availability?league={leagueSlug}&season={season}","description":"Per-manager factual availability counts. Descriptive only. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true},{"id":"value","route_template":"/api/value?league={leagueSlug}&player_id={playerId}","description":"Player values from named, timestamped sources. No fabricated consensus. No canonical path form yet.","canonical_equivalent":null,"sleeper_only":true}]},"methodology":{"note":"Optional. For inspecting how the numbers are produced. Not required to use the bridge.","github_repository":"https://github.com/supyo29/bloodline-bowl","docs":["https://github.com/supyo29/bloodline-bowl/blob/main/README.md","https://github.com/supyo29/bloodline-bowl/blob/main/docs/POST_DRAFT_FOUNDATION.md"],"llms_txt":"/llms.txt"},"meta":{"generated_at":"2026-10-30T02:39:58.163Z","production_base_url":"https://bloodline-bowl-sleeper-bridge.vercel.app","read_only":true,"contains_secrets":false}}