Generates a tool type, parameter struct, and uppercase static from a function
returning Result<T, E>, implementing rig_core::tool::Tool. The function
may take the call’s &mut ToolContext. Imported context names need
#[rig(context)]; qualified Rig paths are recognized directly. The context
is excluded from model arguments.
Derives rig_core::tool::ContextValue with the type name as its default key.
#[context(key = "...")] overrides the key. The type must support serde
serialization and deserialization.