Something I am not understanding about the Foundation Models framework: How does the LLM know what output to expect from a Tool, given that ToolOutput is not generic, and doesn't take a Generable type? You would think knowing what is returned before you call the tool would be essential. Or are we just supposed to describe the output in the description?