- DocumentID: mxjson
  Title: >-
    mxjson
  CategoryID: types
  Summary: >-
    Murex-flavoured JSON (deprecated)
  Description: |-
    > This format has been deprecated in favour of `%{}` constructors.

    mxjson is an extension to JSON designed to integrate more seamlessly when
    use as a configuration file. Thus mxjson supports comments and Murex code
    blocks embedded into the JSON schema.

    > mxjson is a format that is pre-parsed into a valid JSON format.

    mxjson isn't a Murex data-type in that you cannot marshal
    and unmarshal mxjson files. Currently it is a format that is only supported
    by a small subset of Murex builtins (eg `config` and `autocomplete`) where
    config might embed Murex code blocks.

    **mxjson features the following enhancements:**

    ### Line Comments

    Line comments are prefixed with a 'hash', `#`, just like with regular Murex
    code.

    ### Block Quotation

    Code blocks are quoted with `(`, `)`. For example, below "ExampleFunction"
    uses the `({ block quote })` method.

    ```
    {
        "ExampleFunction": ({
            out: "This is an example Murex function"
            if { =1==2 } then {
                err: "The laws of the universe are broken"
            }
        })
    }
    ```

    Any block quoted by this method will be converted to the following valid JSON:

    ```
    {
        "ExampleFunction": "\n    out: \"This is an example Murex function\"\n    if { =1==2 } then {\n        err: \"The laws of the universe are broken\"\n    }"
    }
    ```
  Usage:
  Examples:
  Hooks:
  Detail:
  Associations:
  Related:
  - yaml
  - toml
  - hcl
  - json
  - jsonl
  - jsonc
  - commands/open
  - commands/index
  - commands/element
  - commands/cast
  - commands/format
  - commands/runtime
  - commands/pretty
  - commands/config
  - commands/autocomplete
  - apis/Marshal
  - apis/Unmarshal
  - parser/curly-brace
  - parser/brace-quote
  - parser/create-array
  - parser/create-objects
  - user-guide/code-block