Codec.InvokeSourceBuild an invoke codec member-by-member, like Json.Codec.Object.
A partially-built invoke codec for 'o, constructed by 'dec.
map name dec starts an invoke for tool name assembled by dec.
val param :
enc:('o -> 'a) ->
?description:string ->
string ->
'a value ->
('o, 'a -> 'b) map ->
('o, 'b) mapparam ~enc ?description name v m adds required parameter name of type v to the invoke under construction m. enc projects the value from 'o when encoding, and description documents the parameter in the derived schema.