Agent clients such as pi send store: false with every request. The server
never stores completions, so a boolean store is accepted and ignored instead
of failing the request as an unsupported parameter.
Requests may carry tools, tool_choice (auto or none) and parallel_tool_calls,
tool messages, assistant tool_calls with reasoning_content, and text-part
content. The prompt follows the official Bailing V3 chat_template.jinja byte
for byte; tests/chat_tools_golden.json holds transformers' own renderings.
Generated <tool_call> blocks are held back from the stream, parsed like
llama.cpp's ling3 parser (schema-typed arguments, declared tools only) and
returned as message/delta tool_calls with finish_reason tool_calls; output
that does not parse is released unchanged as content.