$content

The dollar sign indicates that the content is stored in the property named $. This is json+content[“$”]. Applied to XML and the PSVI, this changes the disposition of content.

JSON+$XML

element = “element-name” : { attributes…, “$” : [ content ] }
attributes… = “attribute-name” : value , …
content = ( text | element | PI | comment ) , …
document = {“$”: [ declarations, (PI|comments)*, root element, (PI|comments)* ] }

JSON+$PSVI

element = “element-name” : { element-PSVI, attributes…, “$” : [ content ] }
attributes… = “attribute-name” : { attribute-PSVI, “$” : value } ,…
content = ( text | element | PI | comment ) , …
PSVI … = “PSVI-attribute-name”:PSVI-value,…

Note that in both cases the order of content is preserved as it is in a JSON array.
JSON processors may change the order of attributes.

The advantages of this approach is simple access to metadata (attributes & values),
and consistent access to content (compared to other approaches).

The disadvantage is that to access element content requires dereferencing the “$” property and then the array position. It’s likely that json applications accessing leaf nodes will frequent;y use the pattern  [“leaf-node-name“][“$”][0].