Tool tree
gradeNot graded
get_play_stateAnswer
Read the current NextPlay basketball play, including its revision, clock, starting positions, actions, coach locks, and validation summary. Call this before adding or adapting actions.
View tool JSON
{
"name": "get_play_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current NextPlay basketball play, including its revision, clock, starting positions, actions, coach locks, and validation summary. Call this before adding or adapting actions.",
"inputSchema": {
"type": "object",
"properties": {
"includeActionDetails": {
"type": "boolean",
"description": "Include full timing, destination, target, and lock fields."
}
},
"additionalProperties": false
}
}add_play_actionsAction
Atomically add 1–12 timed move, dribble, screen, pass, or shot actions to the live play. Use the revision returned by get_play_state. Successful actions appear on the court and timeline.
View tool JSON
{
"name": "add_play_actions",
"kind": "act",
"impl": "imperative",
"description": "Atomically add 1–12 timed move, dribble, screen, pass, or shot actions to the live play. Use the revision returned by get_play_state. Successful actions appear on the court and timeline.",
"inputSchema": {
"type": "object",
"properties": {
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Revision returned by get_play_state."
},
"actions": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"move",
"dribble",
"screen",
"pass",
"shot"
]
},
"actorId": {
"type": "string",
"enum": [
"O1",
"O2",
"O3",
"O4",
"O5"
]
},
"targetPlayerId": {
"type": "string",
"enum": [
"O1",
"O2",
"O3",
"O4",
"O5"
]
},
"destinationZone": {
"type": "string",
"enum": [
"inbound_left",
"inbound_right",
"rim",
"left_block",
"right_block",
"left_short_corner",
"right_short_corner",
"left_corner",
"right_corner",
"left_elbow",
"right_elbow",
"nail",
"top",
"left_slot",
"right_slot",
"left_wing",
"right_wing",
"backcourt_center"
]
},
"destinationPosition": {
"type": "object",
"properties": {
"x": {
"type": "number",
"description": "Normalized court x coordinate."
},
"y": {
"type": "number",
"description": "Normalized court y coordinate."
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"startSecond": {
"type": "number",
"minimum": 0
},
"durationSecond": {
"type": "number",
"exclusiveMinimum": 0
},
"pathStyle": {
"type": "string",
"enum": [
"straight",
"curve_left",
"curve_right",
"curl",
"flare",
"backdoor",
"slip"
]
},
"screenType": {
"type": "string",
"enum": [
"pin_down",
"flare",
"back_screen",
"ball_screen",
"cross_screen"
]
},
"label": {
"type": "string",
"maxLength": 60,
"description": "A concise label of at most 60 characters."
}
},
"required": [
"type",
"actorId",
"startSecond",
"durationSecond"
],
"additionalProperties": false
}
}
},
"required": [
"actions"
],
"additionalProperties": false
}
}validate_playAction
Run deterministic execution checks on the current play for references, clock, same-player overlap, inbound pass, shot presence, and possession. Does not change saved play content.
View tool JSON
{
"name": "validate_play",
"kind": "act",
"impl": "imperative",
"description": "Run deterministic execution checks on the current play for references, clock, same-player overlap, inbound pass, shot presence, and possession. Does not change saved play content.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}animate_playAction
Animate the current structurally valid play on the visible court. Uses saved actions without changing play content.
View tool JSON
{
"name": "animate_play",
"kind": "act",
"impl": "imperative",
"description": "Animate the current structurally valid play on the visible court. Uses saved actions without changing play content.",
"inputSchema": {
"type": "object",
"properties": {
"speed": {
"type": "number",
"enum": [
0.5,
1,
1.5,
2
],
"description": "Playback speed."
},
"loop": {
"type": "boolean",
"description": "Repeat the animation until paused."
}
},
"additionalProperties": false
}
}update_play_actionAction
Update the timing, destination, or other accepted editable fields of one existing unlocked play action. Read the current play first and pass its current revision. Coach-locked actions cannot be changed.
View tool JSON
{
"name": "update_play_action",
"kind": "act",
"impl": "imperative",
"description": "Update the timing, destination, or other accepted editable fields of one existing unlocked play action. Read the current play first and pass its current revision. Coach-locked actions cannot be changed.",
"inputSchema": {
"type": "object",
"properties": {
"actionId": {
"type": "string",
"description": "ID of the existing action to update."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Current revision returned by get_play_state or the prior successful update."
},
"patch": {
"type": "object",
"properties": {
"destinationZone": {
"type": "string",
"enum": [
"inbound_left",
"inbound_right",
"rim",
"left_block",
"right_block",
"left_short_corner",
"right_short_corner",
"left_corner",
"right_corner",
"left_elbow",
"right_elbow",
"nail",
"top",
"left_slot",
"right_slot",
"left_wing",
"right_wing",
"backcourt_center"
]
},
"destinationPosition": {
"type": "object",
"properties": {
"x": {
"type": "number",
"description": "Normalized court x coordinate."
},
"y": {
"type": "number",
"description": "Normalized court y coordinate."
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"targetPlayerId": {
"type": "string",
"enum": [
"O1",
"O2",
"O3",
"O4",
"O5"
]
},
"startSecond": {
"type": "number",
"minimum": 0
},
"durationSecond": {
"type": "number",
"exclusiveMinimum": 0
},
"pathStyle": {
"type": "string",
"enum": [
"straight",
"curve_left",
"curve_right",
"curl",
"flare",
"backdoor",
"slip"
]
},
"screenType": {
"type": "string",
"enum": [
"pin_down",
"flare",
"back_screen",
"ball_screen",
"cross_screen"
]
},
"label": {
"type": "string",
"maxLength": 60
}
},
"additionalProperties": false
}
},
"required": [
"actionId",
"patch"
],
"additionalProperties": false
}
}