Skip to content

v0.14.0 — character tool-surface parity

Choose a tag to compare

@brendanlefebvre brendanlefebvre released this 27 Jul 11:10
· 4 commits to main since this release
0dd88f3

Characters get first-class treatment on the tool surface. A client asking "which character suits an engineering build?" previously had to guess names one at a time — an observed 7 round-trips and 42 seconds. It's now one call.

Added

  • list_characters — survey characters by scaling_stat, wanted_tag, banned_item_group, special_effect, class_bonus_set or can_start_with. Returns full records, not summaries, so no follow-up get_character is needed; detail="summary" opts out.
  • Batch lookupsget_weapon, get_item and get_character now accept name as a string or a list of strings, returning {"results": [...]} in order. One bad name doesn't fail the batch.
  • starting_weapon_pool on every character record (schema v7 → v8).
  • Six character filter vocabularies in get_filter_options.

Notes for consumers

  • scaling_stat is a derived union — characters have no scaling-stat field. Matched records carry a scaling_match object naming which signal fired (positive gain modifier, positive flat bonus, or wanted_tag) so you can weigh matches yourself: Engineer {gain_pct: 25, flat: 10, wanted: true} is not the same as Technomage {wanted: true}. Characters penalised in a stat are excluded from matches.
  • starting_weapon_pool is the run-start selection pool, not a fixed starting weapon. Most characters offer a dozen or more; Beast Master and Bull offer none. Only 46 of 62 weapons can ever start a run.
  • Backward compatible — passing a plain string to the three get_* tools behaves exactly as in 0.13.0. Tool count 21 → 22.
  • Rebuild your dataset with build_dataset.py to pick up schema v8; the character tools need starting_weapon_pool for can_start_with.

Full changelog: v0.13.0...v0.14.0