Makes it difficult to implement the protocol in anything but node.js (and potentially version specific, if node.js ever decides to tweak json serialization stuff)
Objects in JSON are per the spec unordered, while the signature scheme here most likely relies on the order of the object's key-value pairs.
Other data formats that are ordered, and serialize somewhat more deterministically, are CBOR, Protobufs, or s-exp.