# auto (from_token_zero)
sequence
  tag `` text `</think>`
  triggered_tags [`<｜DSML｜ calls>`] excluding [`<think>`, `</think>`]
    tag `<｜DSML｜ calls>\n` .. `</｜DSML｜ calls>`
      tags_with_separator `` at_least_one
        tag `<｜DSML｜ invoke name="get_weather">\n` deepseek_v4_1_xml({ location: string }) `</｜DSML｜ invoke>\n`
        tag `<｜DSML｜ invoke name="add">\n` deepseek_v4_1_xml({ y: number, x: number, items: string[] }) `</｜DSML｜ invoke>\n`

# required (from_token_zero)
sequence
  tag `` text `</think>`
  sequence
    `\n\n<｜DSML｜ calls>\n`
    tags_with_separator `` at_least_one
      tag `<｜DSML｜ invoke name="get_weather">\n` deepseek_v4_1_xml({ location: string }) `</｜DSML｜ invoke>\n`
      tag `<｜DSML｜ invoke name="add">\n` deepseek_v4_1_xml({ y: number, x: number, items: string[] }) `</｜DSML｜ invoke>\n`
    `</｜DSML｜ calls>`

# named (from_token_zero)
sequence
  tag `` text `</think>`
  sequence
    `\n\n<｜DSML｜ calls>\n`
    tag `<｜DSML｜ invoke name="get_weather">\n` deepseek_v4_1_xml({ location: string }) `</｜DSML｜ invoke>\n`
    `</｜DSML｜ calls>`

# none_schema (from_token_zero)
sequence
  tag `` text `</think>`
  json({ answer: string })

# auto_schema_content, auto_schema_calls (from_token_zero)
sequence
  tag `` text `</think>`
  or
    sequence
      `\n\n<｜DSML｜ calls>\n`
      tags_with_separator `` at_least_one
        tag `<｜DSML｜ invoke name="get_weather">\n` deepseek_v4_1_xml({ location: string }) `</｜DSML｜ invoke>\n`
        tag `<｜DSML｜ invoke name="add">\n` deepseek_v4_1_xml({ y: number, x: number, items: string[] }) `</｜DSML｜ invoke>\n`
      `</｜DSML｜ calls>`
    json({ answer: string })
