using opencode as an example, i often see rejected tool calls because the type checker requested an integer for a range of read lines and the model provides 1.0; naively, sure, the program asked for an integer and was given a flow.
but if the float can easily be corrced to a integer, why fail the tool call?
we are essentially reopening the debate about typed or strict languages and LLMs are closer to how javascript was developed than rust.