{"ok":true,"site":{"host":"fieldcraft-coach.gcheema.chatgpt.site","url":"https://fieldcraft-coach.gcheema.chatgpt.site/","type":"live","desc":"Fieldcraft is a cinematic American football play designer for coaches.","tools":[{"name":"get_playbook","kind":"answer","impl":"imperative","description":"List Fieldcraft plays, selected play, revisions, and active coach-review status. Use before reading or changing a play.","title":"Get playbook","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_play","kind":"answer","impl":"imperative","description":"Read one bounded section of a current play or staged proposal. Use filters and cursor to inspect exact players or assignments.","title":"Get play section","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"playId":{"type":"string","description":"Play ID from get_playbook."},"section":{"enum":["summary","players","assignments"]},"source":{"enum":["current","proposal"],"default":"current"},"team":{"enum":["offense","defense"]},"playerIds":{"type":"array","maxItems":22,"items":{"type":"string"}},"cursor":{"type":"integer","minimum":0,"default":0},"limit":{"type":"integer","minimum":1,"maximum":4,"default":3}},"required":["playId","section"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"analyze_play","kind":"act","impl":"imperative","description":"Run deterministic spatial and timing checks for run, pass, protection, or all concepts. Results are risks, not outcome predictions.","title":"Analyze play","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"playId":{"type":"string","description":"Play ID from get_playbook."},"focus":{"enum":["all","run","pass","protection"],"default":"all"},"source":{"enum":["current","proposal"],"default":"current"},"limit":{"type":"integer","minimum":1,"maximum":8,"default":8}},"required":["playId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"focus_finding","kind":"act","impl":"imperative","description":"Recompute one finding, scrub to its worst moment, select the involved players, and show a temporary field overlay. Does not edit the play.","title":"Focus finding","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"playId":{"type":"string"},"findingId":{"type":"string"}},"required":["playId","findingId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_play_changes","kind":"act","impl":"imperative","description":"Validate up to 12 edits and open a reversible Before/After coach review. This never changes the saved playbook; variations preview a renamed duplicate.","title":"Stage play changes","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"basePlayId":{"type":"string","description":"Exact base play ID."},"baseUpdatedAt":{"type":"string","description":"Exact revision from get_playbook or get_play."},"mode":{"enum":["edit","variation"]},"name":{"type":"string","maxLength":60,"description":"Required new name for variation mode."},"rationale":{"type":"string","minLength":1,"maxLength":500},"targetFindingId":{"type":"string","description":"Optional finding this proposal repairs."},"changes":{"type":"array","minItems":1,"maxItems":12,"items":{"oneOf":[{"type":"object","properties":{"type":{"const":"move_player"},"playerId":{"type":"string","description":"Exact player ID from get_play players."},"to":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":40,"description":"Yards downfield in the 40-yard window."},"y":{"type":"number","minimum":0,"maximum":53.3,"description":"Yards across the 53.3-yard field."}},"required":["x","y"],"additionalProperties":false}},"required":["type","playerId","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"apply_preset"},"playerId":{"type":"string","description":"Exact player ID from get_play players."},"kind":{"enum":["route","run","block","motion","rush","drop","blitz","man"]},"preset":{"enum":["go","slant","post","corner","out","curl","flat","drag","wheel","block","rush","drop"],"description":"Fieldcraft route or movement preset."},"startTime":{"type":"number","minimum":0},"duration":{"type":"number","minimum":0.05},"depth":{"type":"number","minimum":-20,"maximum":25},"targetPlayerId":{"type":"string"},"technique":{"type":"string","maxLength":40},"color":{"enum":["orange","blue","yellow","coral","bone","olive"]}},"required":["type","playerId","preset","kind"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"set_assignment"},"playerId":{"type":"string","description":"Exact player ID from get_play players."},"kind":{"enum":["route","run","block","motion","rush","drop","blitz","man"]},"segments":{"type":"array","minItems":1,"maxItems":6,"items":{"oneOf":[{"type":"object","properties":{"type":{"const":"line"},"to":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":40,"description":"Yards downfield in the 40-yard window."},"y":{"type":"number","minimum":0,"maximum":53.3,"description":"Yards across the 53.3-yard field."}},"required":["x","y"],"additionalProperties":false}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"curve"},"control":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":40,"description":"Yards downfield in the 40-yard window."},"y":{"type":"number","minimum":0,"maximum":53.3,"description":"Yards across the 53.3-yard field."}},"required":["x","y"],"additionalProperties":false},"to":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":40,"description":"Yards downfield in the 40-yard window."},"y":{"type":"number","minimum":0,"maximum":53.3,"description":"Yards across the 53.3-yard field."}},"required":["x","y"],"additionalProperties":false}},"required":["type","control","to"],"additionalProperties":false}]}},"color":{"enum":["orange","blue","yellow","coral","bone","olive"]},"startTime":{"type":"number","minimum":0},"duration":{"type":"number","minimum":0.05},"targetPlayerId":{"type":"string"},"preset":{"type":"string","maxLength":30},"technique":{"type":"string","maxLength":40}},"required":["type","playerId","kind","segments","color","startTime","duration"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"retime_assignment"},"playerId":{"type":"string","description":"Exact player ID from get_play players."},"startTime":{"type":"number","minimum":0},"duration":{"type":"number","minimum":0.05}},"required":["type","playerId"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"remove_assignment"},"playerId":{"type":"string","description":"Exact player ID from get_play players."}},"required":["type","playerId"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"rename_play"},"name":{"type":"string","minLength":1,"maxLength":60}},"required":["type","name"],"additionalProperties":false}]}}},"required":["basePlayId","baseUpdatedAt","mode","rationale","changes"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"commit_play_changes","kind":"act","impl":"imperative","description":"Apply the active reviewed proposal atomically. Invoke only after the coach explicitly confirms the visible Before/After proposal; never infer confirmation.","title":"Commit play changes","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"proposalId":{"type":"string","description":"Active proposal ID returned by stage_play_changes."}},"required":["proposalId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"discard_play_changes","kind":"act","impl":"imperative","description":"Discard the active staged coach review without changing the saved playbook.","title":"Discard play changes","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"proposalId":{"type":"string","description":"Active proposal ID returned by stage_play_changes."}},"required":["proposalId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"favicon":"/favicons/fieldcraft-coach.gcheema.chatgpt.site.png","apiSurface":"spec","category":"AI & Agents","toolCount":7}}