Optimize team slots
optimize_teamFill open team slots by scoring Pokémon that cover missing types and answer specified threats, returning ranked recommendations with reasons for legal, regulation-valid teams.
Instructions
Pokémon Champions team building: fill open slots against constraints: "cover these types" and "answer these threats." The engine scores every legal species in the regulation against the constraint set — the types the current team never hits super-effectively (computed automatically, or supplied), and the threats named or defaulted to the meta’s top five by usage — by what its typing covers, resists and hits, with a small preference for species the meta actually plays. With two open slots it scores pairs on their combined coverage, not just the sum. Every recommendation carries the reasons, so the tradeoff is visible; unranked species are scored on typing alone because their movesets are unknown. The fills respect Species Clause and stay inside the roster, so the result passes check_legality — verify with it once the team is assembled. Read-only and offline.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | The team so far, in the canonical shape `parse_team` returns; the open slots are what this tool fills. | |
| slots | Yes | How many members to recommend: one species, or a pair whose combined coverage is scored together. | |
| detail | No | How much detail to return: "compact" (default) gives conclusions and the numbers needed to reason; "evidence" adds ranges, benchmarks and per-row detail; "debug" adds provenance and every intermediate. Ask for more only when the reasoning actually needs it — model context is the expensive resource. | |
| playstyle | No | Shorthand for the objective: "tailwind" or "trick-room" map to the corresponding required role; any other value is carried into the note verbatim. | |
| coverTypes | No | Types the finished team must hit super-effectively, e.g. ["Water", "Steel"]; omitted, the engine computes the types the current team cannot hit at all. | |
| regulation | No | Regulation id, e.g. "m-c"; omitted, the current set is used and its roster bounds the candidates. | |
| answerThreats | No | Species the finished team must answer, e.g. ["Sneasler", "Gholdengo"]; omitted, the regulation’s five most-used threats are used. | |
| requiredRoles | No | Competitive roles the filled slots must collectively provide, e.g. ["tailwind", "fake_out"]; candidates earn score for roles the team still lacks. | |
| excludedSpecies | No | Species to exclude from the search, e.g. ["Milotic"]; case- and punctuation-insensitive. |