Hi all,
Just one question.  The documentation page related to the json module states:

Signatures json:serialize($input as node()) as xs:string
json:serialize($input as node(), $options as map(xs:string, xs:string)) as xs:string
Summary Serializes the node specified by $input as JSON, and returns the result as xs:string instance. The node is expected to conform to the output created by the json:parse() function. All other items will be serialized as specified for the json output method of the official specification.
Items can also be serialized as JSON if the Serialization Parameter method is set to json.
The $options argument can be used to control the way the input is serialized.

But I think the signature should be for item()? for the first parameter (since it allows also for maps) isn't it?

In effect

inspect:function(json:serialize#2)

returns

<function name="json:serialize" uri="http://basex.org/modules/json">
  <argument type="item()" occurrence="?"/>
  <argument type="item()" occurrence="?"/>
  <return type="xs:string"/>
</function>

If it's confirmed I could proceed with fixing it.
Regards,
Marco.