The client half of DefaultSessionState's problem, and any for
the same reason: a tool result is the author's own return value
round-tripped through JSON — the client already knows its shape, and the
framework cannot. The strict default (unknown) made reading one field a
compile error in a client that runs correctly, which blocked publishing
once aai build type-checked.
Default type of a tool result observed on the client (
useToolResult) —any, so untyped reads compile. Pass the shape —useToolResult<Quote>("get_quote", …)— for real checking.