{
  "name": "json-env",
  "container": "google.expr",
  "extensions": [
    {
      "name": "optional",
      "version": "2"
    },
    {
      "name": "math",
      "version": "latest"
    }
  ],
  "variables": [
    {
      "name": "msg",
      "type": "google.expr.proto3.test.TestAllTypes",
      "description": "msg represents all possible type permutation which CEL understands from a proto perspective"
    },
    {
      "name": "opt_msg",
      "type": "optional_type<google.expr.proto3.test.TestAllTypes>",
      "description": "opt_msg represents all possible type permutation which CEL understands from a proto perspective"
    }
  ],
  "functions": [
    {
      "name": "isEmpty",
      "description": "determines whether a list is empty,\nor a string has no characters",
      "overloads": [
        {
          "id": "wrapper_string_isEmpty",
          "examples": [
            "''.isEmpty() // true"
          ],
          "target": "wrapper_string",
          "return": "bool"
        },
        {
          "id": "list_isEmpty",
          "examples": [
            "[].isEmpty() // true",
            "[1].isEmpty() // false"
          ],
          "target": "list<~T>",
          "return": "bool"
        }
      ]
    },
    {
      "name": "getOrDefault",
      "description": "Returns the value of a key in a map or the provided\ndefault value.",
      "overloads": [
        {
          "id": "map_getOrDefault",
          "target": "map<~K, ~V>",
          "return": "~V",
          "args": [
            "~K",
            "~V"
          ]
        }
      ]
    }
  ],
  "validators": [
    {
      "name": "cel.validator.duration"
    },
    {
      "name": "cel.validator.matches"
    },
    {
      "name": "cel.validator.timestamp"
    },
    {
      "name": "cel.validator.comprehension_nesting_limit",
      "config": {
        "limit": 2
      }
    }
  ],
  "features": [
    {
      "name": "cel.feature.macro_call_tracking",
      "enabled": true
    }
  ],
  "limits": [
    {
      "name": "cel.limit.parse_recursion_depth",
      "value": 7
    }
  ]
}