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

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

# named (from_token_zero)
sequence
  tag `` text `</think>`
  sequence
    `\n\n<｜DSML｜function_calls>\n`
    tag `<｜DSML｜invoke name="get_weather">\n` deepseek_xml({ location: string }) `</｜DSML｜invoke>\n`
    `</｜DSML｜function_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｜function_calls>\n`
      tags_with_separator `` at_least_one
        tag `<｜DSML｜invoke name="get_weather">\n` deepseek_xml({ location: string }) `</｜DSML｜invoke>\n`
        tag `<｜DSML｜invoke name="add">\n` deepseek_xml({ y: number, x: number, items: string[] }) `</｜DSML｜invoke>\n`
      `</｜DSML｜function_calls>`
    json({ answer: string })
