docs: def is_builtin_variable(id_node):  # type: (Dict[str, Any]) -> bool
      """ Whether the specified node is a builtin identifier. """
      # Builtin variables are always IDENTIFIER.
      if NodeType(id_node['type']) is not NodeType.IDENTIFIER:
          return False
  
      id_value = id_node['value']
  
      if id_value.startswith('v:'):
          # It is an explicit builtin variable such as: "v:count", "v:char"
          # TODO: Add unknown builtin flag
          return True
  
      if is_builtin_function(id_node):
          return True
  
      if id_value in ['key', 'val']:
          # These builtin variable names are available on only map() or filter().
          return is_on_lambda_string_context(id_node)
  
      # It is an implicit builtin variable such as: "count", "char"
      return id_value in BuiltinVariablesCanHaveImplicitScope