{
  "results": [
    {
      "expression": "analysed expression",
      "errors": [
        {
          "line": 1,
          "column": 4,
          "message": "!, -, typeof, (, IDENTIFIER, null, true, false, NUMBER, STRING, TEMPLATE_LITERAL, new, [ or { expected, > encountered.",
          "type": "syntax"
        },
        {
          "message": "Jira expression is too long (1040), limit: 1000 characters",
          "type": "other"
        },
        {
          "message": "Jira expression has too many nodes (150), limit: 100 leaves",
          "type": "other"
        }
      ],
      "valid": false
    },
    {
      "expression": "issues.map(i => {idAndKey: [i.id, i.key], summary: i.summary, comments: i.comments})",
      "valid": true,
      "type": "List<{idAndKey: [Number, String], summary: String, comments: List<Comment>}>",
      "complexity": {
        "expensiveOperations": "N",
        "variables": {
          "N": "issues"
        }
      }
    },
    {
      "expression": "issues.map(i => i.id > '0')",
      "errors": [
        {
          "expression": "i.id > 0",
          "message": "Can't compare Number to String.",
          "type": "type"
        }
      ],
      "valid": false,
      "type": "TypeError"
    }
  ]
}