{"name":"analyze_trade","title":"Trade call","description":"Use this when the user describes a trade (what they give, what they get) and wants a verdict. Returns THE CALL as a Decision Card (TRADE / PASS / HOLD) on rest-of-season value, roster fit, and injury risk, with a decision_id to watch. Present the card's fields as returned. Read-only.","inputSchema":{"type":"object","properties":{"give":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":6,"description":"players the user gives"},"get":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":6,"description":"players the user gets"}},"required":["give","get"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","required":["ok","decision"],"properties":{"ok":{"type":"boolean"},"decision":{"oneOf":[{"type":"object","required":["schema_version","decision_id","kind","verdict","headline","subject","confidence","confidence_method","league","updated_at","updated_display","factors","reasoning","risk","sources","watchable","lock_at","watch_hint"],"properties":{"schema_version":{"type":"string","const":"1.0"},"decision_id":{"type":"string","pattern":"^d_[0-9a-f]{12}$"},"kind":{"type":"string","enum":["start_sit","trade","waiver","lineup"]},"verdict":{"type":"string","enum":["START","SIT","TRADE","PASS","ADD","HOLD","NO_CALL"]},"lean":{"type":"string","description":"on NO_CALL: the verdict the facts lean toward"},"headline":{"type":"string"},"subject":{"type":"array","items":{"type":"object","required":["name","role"],"properties":{"name":{"type":"string"},"pos":{"type":"string"},"team":{"type":"string"},"role":{"type":"string","enum":["pick","other","give","get","add","cover"]},"status":{"type":"string"},"projection":{"type":["number","null"]}}}},"confidence":{"type":"integer","minimum":0,"maximum":100},"confidence_method":{"type":"string"},"confidence_breakdown":{"type":"object"},"league":{"type":"object","properties":{"platform":{"type":"string"},"name":{"type":"string"},"teams":{"type":["integer","null"]},"scoring":{"type":"string"},"week":{"type":["integer","null"]},"format_line":{"type":"string"}}},"updated_at":{"type":"string"},"updated_display":{"type":"string"},"factors":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"object","required":["name","direction","note"],"properties":{"name":{"type":"string"},"direction":{"type":"string","enum":["↑","↓","→"]},"note":{"type":"string"}}}},"reasoning":{"type":"string"},"risk":{"type":"string"},"sources":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"as_of":{"type":"string"}}}},"watchable":{"type":"boolean"},"lock_at":{"type":["string","null"]},"watch_hint":{"type":"string"}}},{"type":"null"}],"description":"THE CALL — a Decision Card; null when no call could be made"},"call_line":{"type":"string","description":"the compact one-line rendering of the card"},"players":{"type":"array","items":{"type":"object"}},"code":{"type":"string"},"spoken":{"type":"string"}}},"_meta":{"openai/outputTemplate":"ui://sportscall/decision-card.html","sportscall/version":"1.0"},"scopes":["analysis.read"],"version":"1.0","surfaces":["claude","chatgpt","full"]}