{
  "functions": [
    {
      "name": "INCLUDES",
      "minArgs": 2,
      "maxArgs": 2,
      "sqlLowering": "multipicklist_contains_all",
      "return": {
        "kind": "fixed",
        "type": "boolean"
      },
      "args": [
        {
          "type": "string",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        }
      ],
      "evaluator": {
        "kind": "formula_expr_v1",
        "params": [
          "field",
          "value"
        ],
        "body": "INCLUDES(field, value)"
      }
    },
    {
      "name": "ISPICKVAL",
      "minArgs": 2,
      "maxArgs": 2,
      "return": {
        "kind": "fixed",
        "type": "boolean"
      },
      "args": [
        {
          "type": "string",
          "nullable": true
        },
        {
          "type": "string",
          "nullable": true
        }
      ],
      "evaluator": {
        "kind": "formula_expr_v1",
        "params": [
          "field",
          "value"
        ],
        "body": "BLANKVALUE(field, \"\") == BLANKVALUE(value, \"\")"
      }
    },
    {
      "name": "HYPERLINK",
      "minArgs": 2,
      "maxArgs": 3,
      "return": {
        "kind": "fixed",
        "type": "string"
      },
      "evaluator": {
        "kind": "formula_expr_v1",
        "params": [
          "url",
          "friendlyName"
        ],
        "body": "friendlyName"
      }
    },
    {
      "name": "CASESAFEID",
      "minArgs": 1,
      "maxArgs": 1,
      "return": {
        "kind": "fixed",
        "type": "string"
      },
      "args": [
        {
          "type": "string",
          "nullable": true
        }
      ],
      "evaluator": {
        "kind": "formula_expr_v1",
        "params": [
          "arg0"
        ],
        "body": "IF(ISBLANK(arg0), arg0, IF(LEN(arg0) == 18, arg0, IF(LEN(arg0) == 15, arg0 & MID(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ012345\", 1 + (IF(FIND(MID(arg0,1,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,1,0) + IF(FIND(MID(arg0,2,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,2,0) + IF(FIND(MID(arg0,3,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,4,0) + IF(FIND(MID(arg0,4,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,8,0) + IF(FIND(MID(arg0,5,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,16,0)), 1) & MID(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ012345\", 1 + (IF(FIND(MID(arg0,6,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,1,0) + IF(FIND(MID(arg0,7,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,2,0) + IF(FIND(MID(arg0,8,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,4,0) + IF(FIND(MID(arg0,9,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,8,0) + IF(FIND(MID(arg0,10,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,16,0)), 1) & MID(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ012345\", 1 + (IF(FIND(MID(arg0,11,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,1,0) + IF(FIND(MID(arg0,12,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,2,0) + IF(FIND(MID(arg0,13,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,4,0) + IF(FIND(MID(arg0,14,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,8,0) + IF(FIND(MID(arg0,15,1),\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\")>0,16,0)), 1), arg0)))"
      }
    },
    {
      "name": "IMAGE",
      "minArgs": 2,
      "maxArgs": 4,
      "return": {
        "kind": "fixed",
        "type": "string"
      },
      "args": [
        {
          "type": "string",
          "nullable": true
        }
      ],
      "evaluator": {
        "kind": "formula_expr_v1",
        "params": [
          "arg0",
          "arg1"
        ],
        "body": "arg0"
      }
    },
    {
      "name": "ADDMONTHS",
      "minArgs": 2,
      "maxArgs": 2,
      "return": {
        "kind": "fixed",
        "type": "date"
      },
      "args": [
        {
          "dateLikeLiteral": true
        },
        {
          "type": "number"
        }
      ],
      "evaluator": {
        "kind": "formula_expr_v1",
        "params": [
          "arg0",
          "arg1"
        ],
        "body": "__DATE_ADD_MONTHS__(arg0, arg1)"
      }
    }
  ]
}
