Actually all methods that take arbitrary properties require them to be of "table" type. Example is content properties.headers
This means you can't pass in a plain js object, but actually have to type the values, e.g. turn it to a key value map where the value is {type: "$oneOfValueTypes", data: "$theValue"}
I guess putting it in one of the examples would help people understand (I thought this is not obvious)
Cheers,
Arne