Skip to main content

NODE_TYPES

Constant NODE_TYPES 

Source
pub const NODE_TYPES: &str = "[\n  {\n    \"type\": \"actor_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"base\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"config\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"scheme_config\",\n            \"named\": true\n          }\n        ]\n      },\n      \"identity\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"scheme\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"scheme\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"adapter_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"qualified_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"actor_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"agent_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"binding_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"capability_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"consumes_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"event_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exports_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fn_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"messages_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"provider_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"service_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"uses_decl\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"agent_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"annotation\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"store_annotation\",\n            \"named\": true\n          }\n        ]\n      },\n      \"key\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"key_decl\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"call_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"invariant_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"store_field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"transition_decl\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"annotation_arg\",\n    \"named\": true,\n    \"fields\": {\n      \"label\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"applied_type_ref\",\n    \"named\": true,\n    \"fields\": {\n      \"arg\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"assign_stmt\",\n    \"named\": true,\n    \"fields\": {\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"base_type\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"binary_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binding_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"module\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binding_requirement\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binding_requirement\",\n    \"named\": true,\n    \"fields\": {\n      \"package\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"range\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"block\",\n    \"named\": true,\n    \"fields\": {\n      \"tail\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"assign_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_let_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_send_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let_stmt\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"boolean_literal\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"by_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"actor\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"binder\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"call\",\n    \"named\": true,\n    \"fields\": {\n      \"arg\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type_arg\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"call_handler\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"method\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"call_site_actor\",\n    \"named\": true,\n    \"fields\": {\n      \"actor\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"identity\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"capability_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"capability_op\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"capability_op\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type_param\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"case\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"tail\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"tier\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"integration\",\n            \"named\": false\n          },\n          {\n            \"type\": \"system\",\n            \"named\": false\n          },\n          {\n            \"type\": \"unit\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"assign_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_let_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_send_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stub_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"commons_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"qualified_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"actor_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"agent_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"capability_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"event_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fn_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"messages_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"provider_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"service_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"uses_decl\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"consumes_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"alias\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"capability\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"qualified_name\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"context_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"qualified_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"actor_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"agent_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"capability_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"consumes_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"event_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exports_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fn_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"messages_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"provider_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"service_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"uses_decl\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"cors_field\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"cors_policy\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"cors_field\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"cron_handler\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"schedule\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"do_stmt\",\n    \"named\": true,\n    \"fields\": {\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"effect_let_stmt\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wildcard\",\n            \"named\": true\n          }\n        ]\n      },\n      \"principal\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"call_site_actor\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"effect_pure_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"effect_send_stmt\",\n    \"named\": true,\n    \"fields\": {\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"ensures_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"enum_type\",\n    \"named\": true,\n    \"fields\": {\n      \"variant\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"constant_name\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"err_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"event_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"annotation\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"store_annotation\",\n            \"named\": true\n          }\n        ]\n      },\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"record_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"event_handler\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"event_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"field\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"event_pattern_field\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"event_pattern_field\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"event_pattern_value\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"event_pattern_value\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"variant\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"expect_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"cond\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"observation_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"exports_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"kind\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"capability\",\n            \"named\": false\n          },\n          {\n            \"type\": \"opaque\",\n            \"named\": false\n          },\n          {\n            \"type\": \"transparent\",\n            \"named\": false\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"field_access\",\n    \"named\": true,\n    \"fields\": {\n      \"field\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"receiver\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"field_init\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"shorthand\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"fn_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type_param\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"ensures_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"param\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requires_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"for_all\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"filter\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"for_all_binding\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"for_all_binding\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"function_type_ref\",\n    \"named\": true,\n    \"fields\": {\n      \"params\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"generic_type_ref\",\n    \"named\": true,\n    \"fields\": {\n      \"arg\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"builtin_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"given_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"capability\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"qualified_name\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"handler\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"call_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"cron_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"event_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"http_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"queue_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ws_close_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ws_open_handler\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"http_handler\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"method\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"http_method\",\n            \"named\": true\n          }\n        ]\n      },\n      \"path\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"http_method\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"if_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"cond\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"else\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"then\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"invariant_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"is_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"literal_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variant_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wildcard_pattern\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"key_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"lambda_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"lambda_param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"lambda_param\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"let_stmt\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wildcard\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"limits_field\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"limits_policy\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"limits_field\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"list_literal\",\n    \"named\": true,\n    \"fields\": {\n      \"element\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"literal_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"match_arm\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"guard\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"literal_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"refined_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variant_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wildcard_pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"match_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"disc\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"match_arm\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"message_entry\",\n    \"named\": true,\n    \"fields\": {\n      \"code\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"template\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"messages_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"annotation\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"store_annotation\",\n            \"named\": true\n          }\n        ]\n      },\n      \"tag\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"message_entry\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"method_call\",\n    \"named\": true,\n    \"fields\": {\n      \"arg\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"method\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"receiver\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type_arg\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"method_name\",\n    \"named\": true,\n    \"fields\": {\n      \"method\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"named_binding\",\n    \"named\": true,\n    \"fields\": {\n      \"field\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"literal_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"or_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"variant_pattern\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wildcard_pattern\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"none_expr\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"observation_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"cap\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"count\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"op\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"other_cap\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"other_op\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"ok_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"opaque_type\",\n    \"named\": true,\n    \"fields\": {\n      \"base\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"refinement\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"refinement\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"or_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"literal_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variant_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wildcard_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"param\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"paren_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"paren_pattern\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"literal_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variant_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wildcard_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pred_atom\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"predicate_name\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pred_call\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"predicate_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"predicate_name\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"property_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"forall\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"for_all\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"provider_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"capability\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"provider\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"provider_op\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"provider_op\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"qualified_name\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"question_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"queue_handler\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_construction\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"field_init\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_field\",\n    \"named\": true,\n    \"fields\": {\n      \"init\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"refinement\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"refinement\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"record_spread\",\n    \"named\": true,\n    \"fields\": {\n      \"base\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"field_init\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_type\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"record_field\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"refined_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"inner\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"wildcard_pattern\",\n            \"named\": true\n          }\n        ]\n      },\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"refinement\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"refined_type\",\n    \"named\": true,\n    \"fields\": {\n      \"base\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"refinement\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"refinement\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"refinement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"pred_atom\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pred_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"requires_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"schema_dispatch_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"version\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"-\",\n            \"named\": false\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"scheme\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"scheme_arg\",\n    \"named\": true,\n    \"fields\": {\n      \"key\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"scheme_config\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"scheme_arg\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"security_field\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"security_policy\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"security_field\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"self_expr\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"self_param\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"service_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"annotation\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"store_annotation\",\n            \"named\": true\n          }\n        ]\n      },\n      \"cors\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"cors_policy\",\n            \"named\": true\n          }\n        ]\n      },\n      \"default_by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"default_given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"limits\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"limits_policy\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"protocol\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"service_protocol\",\n            \"named\": true\n          }\n        ]\n      },\n      \"security\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"security_policy\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"handler\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"service_protocol\",\n    \"named\": true,\n    \"fields\": {\n      \"event_type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"in_frame\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      },\n      \"out_frame\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"pattern\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"event_pattern\",\n            \"named\": true\n          }\n        ]\n      },\n      \"schema_dispatch\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"schema_dispatch_clause\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"some_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"source_file\",\n    \"named\": true,\n    \"root\": true,\n    \"fields\": {\n      \"tail\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"actor_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"adapter_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"agent_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assign_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"capability_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"commons_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"consumes_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"context_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"do_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_let_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_send_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"event_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exports_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"fn_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"key_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"let_stmt\",\n          \"named\": true\n        },\n        {\n          \"type\": \"messages_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"provider_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"service_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"store_field\",\n          \"named\": true\n        },\n        {\n          \"type\": \"suite_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"type_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"uses_decl\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"store_annotation\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"annotation_arg\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"store_field\",\n    \"named\": true,\n    \"fields\": {\n      \"annotation\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"store_annotation\",\n            \"named\": true\n          }\n        ]\n      },\n      \"init\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"kind\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"store_kind\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"store_kind\",\n    \"named\": true,\n    \"fields\": {\n      \"head\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"applied_type_ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"base_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_type_ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_type_ref\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_type\",\n          \"named\": true\n        },\n        {\n          \"type\": \"validation_error_type\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string_interpolation\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"string_literal\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"string_interpolation\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"stub_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"arg\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wildcard\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"cap\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"op\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"outcome\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"fails\",\n            \"named\": false\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      },\n      \"value\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"suite_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"qualified_name\",\n            \"named\": true\n          }\n        ]\n      },\n      \"tier\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"integration\",\n            \"named\": false\n          },\n          {\n            \"type\": \"system\",\n            \"named\": false\n          },\n          {\n            \"type\": \"unit\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"case\",\n          \"named\": true\n        },\n        {\n          \"type\": \"consumes_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"property_decl\",\n          \"named\": true\n        },\n        {\n          \"type\": \"stub_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"uses_decl\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"sum_type\",\n    \"named\": true,\n    \"fields\": {\n      \"source\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"variant\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"constant_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"sum_variant\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"sum_variant\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"constant_name\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"variant_payload_field\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"trace_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"cap\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"op\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"transition_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"type_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"enum_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"opaque_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"refined_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"sum_type\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type_param\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"unary_expr\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block\",\n          \"named\": true\n        },\n        {\n          \"type\": \"boolean_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"effect_pure_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"err_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expect_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"field_access\",\n          \"named\": true\n        },\n        {\n          \"type\": \"float_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"is_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"lambda_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"list_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"match_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"method_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"none_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ok_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"question_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_construction\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_spread\",\n          \"named\": true\n        },\n        {\n          \"type\": \"self_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"some_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"trace_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unit_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"val_expr\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wire_expr\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unit_literal\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"unit_type\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"uses_decl\",\n    \"named\": true,\n    \"fields\": {\n      \"target\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"qualified_name\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"val_arg\",\n    \"named\": true,\n    \"fields\": {\n      \"pin\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"field_init\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"val_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"arg\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"val_arg\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"variant_pattern\",\n    \"named\": true,\n    \"fields\": {\n      \"type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"variant\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"literal_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"named_binding\",\n          \"named\": true\n        },\n        {\n          \"type\": \"or_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"paren_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variant_pattern\",\n          \"named\": true\n        },\n        {\n          \"type\": \"wildcard_pattern\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variant_payload_field\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"wildcard_pattern\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"wire_expr\",\n    \"named\": true,\n    \"fields\": {\n      \"input\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block\",\n            \"named\": true\n          },\n          {\n            \"type\": \"boolean_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"effect_pure_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"err_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expect_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"field_access\",\n            \"named\": true\n          },\n          {\n            \"type\": \"float_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"is_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"lambda_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"list_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"match_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"method_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"none_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"number_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"ok_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"paren_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"question_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_construction\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_spread\",\n            \"named\": true\n          },\n          {\n            \"type\": \"self_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"some_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"trace_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"val_expr\",\n            \"named\": true\n          },\n          {\n            \"type\": \"wire_expr\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"ws_close_handler\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ws_open_handler\",\n    \"named\": true,\n    \"fields\": {\n      \"body\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"block\",\n            \"named\": true\n          }\n        ]\n      },\n      \"by\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"by_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"given\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"given_clause\",\n            \"named\": true\n          }\n        ]\n      },\n      \"return_type\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"applied_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"base_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"generic_type_ref\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unit_type\",\n            \"named\": true\n          },\n          {\n            \"type\": \"validation_error_type\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"param\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"!\",\n    \"named\": false\n  },\n  {\n    \"type\": \"!=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\"\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"(\",\n    \"named\": false\n  },\n  {\n    \"type\": \")\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+\",\n    \"named\": false\n  },\n  {\n    \"type\": \",\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"->\",\n    \"named\": false\n  },\n  {\n    \"type\": \".\",\n    \"named\": false\n  },\n  {\n    \"type\": \"..\",\n    \"named\": false\n  },\n  {\n    \"type\": \"...\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/\",\n    \"named\": false\n  },\n  {\n    \"type\": \":\",\n    \"named\": false\n  },\n  {\n    \"type\": \":=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<-\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"==\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=>\",\n    \"named\": false\n  },\n  {\n    \"type\": \">\",\n    \"named\": false\n  },\n  {\n    \"type\": \">=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"?\",\n    \"named\": false\n  },\n  {\n    \"type\": \"@\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Bearer\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Bool\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Bytes\",\n    \"named\": false\n  },\n  {\n    \"type\": \"DELETE\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Duration\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Effect\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Err\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Events\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Float\",\n    \"named\": false\n  },\n  {\n    \"type\": \"GET\",\n    \"named\": false\n  },\n  {\n    \"type\": \"InRange\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Instant\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Int\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Internal\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Length\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Matches\",\n    \"named\": false\n  },\n  {\n    \"type\": \"MaxLength\",\n    \"named\": false\n  },\n  {\n    \"type\": \"MinLength\",\n    \"named\": false\n  },\n  {\n    \"type\": \"NonEmpty\",\n    \"named\": false\n  },\n  {\n    \"type\": \"NonNegative\",\n    \"named\": false\n  },\n  {\n    \"type\": \"None\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Oidc\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Ok\",\n    \"named\": false\n  },\n  {\n    \"type\": \"PATCH\",\n    \"named\": false\n  },\n  {\n    \"type\": \"POST\",\n    \"named\": false\n  },\n  {\n    \"type\": \"PUT\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Positive\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Signature\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Some\",\n    \"named\": false\n  },\n  {\n    \"type\": \"String\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Val\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Wire\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"\\\\(\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"_\",\n    \"named\": false\n  },\n  {\n    \"type\": \"actor\",\n    \"named\": false\n  },\n  {\n    \"type\": \"adapter\",\n    \"named\": false\n  },\n  {\n    \"type\": \"agent\",\n    \"named\": false\n  },\n  {\n    \"type\": \"all\",\n    \"named\": false\n  },\n  {\n    \"type\": \"as\",\n    \"named\": false\n  },\n  {\n    \"type\": \"auth\",\n    \"named\": false\n  },\n  {\n    \"type\": \"before\",\n    \"named\": false\n  },\n  {\n    \"type\": \"binding\",\n    \"named\": false\n  },\n  {\n    \"type\": \"builtin_type\",\n    \"named\": true\n  },\n  {\n    \"type\": \"by\",\n    \"named\": false\n  },\n  {\n    \"type\": \"call\",\n    \"named\": false\n  },\n  {\n    \"type\": \"called\",\n    \"named\": false\n  },\n  {\n    \"type\": \"capability\",\n    \"named\": false\n  },\n  {\n    \"type\": \"case\",\n    \"named\": false\n  },\n  {\n    \"type\": \"close\",\n    \"named\": false\n  },\n  {\n    \"type\": \"commons\",\n    \"named\": false\n  },\n  {\n    \"type\": \"constant_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"consumes\",\n    \"named\": false\n  },\n  {\n    \"type\": \"context\",\n    \"named\": false\n  },\n  {\n    \"type\": \"cors\",\n    \"named\": false\n  },\n  {\n    \"type\": \"cron\",\n    \"named\": false\n  },\n  {\n    \"type\": \"do\",\n    \"named\": false\n  },\n  {\n    \"type\": \"doc_block\",\n    \"named\": true,\n    \"extra\": true\n  },\n  {\n    \"type\": \"each\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"embeds\",\n    \"named\": false\n  },\n  {\n    \"type\": \"ensures\",\n    \"named\": false\n  },\n  {\n    \"type\": \"enum\",\n    \"named\": false\n  },\n  {\n    \"type\": \"event\",\n    \"named\": false\n  },\n  {\n    \"type\": \"expect\",\n    \"named\": false\n  },\n  {\n    \"type\": \"exports\",\n    \"named\": false\n  },\n  {\n    \"type\": \"fails\",\n    \"named\": false\n  },\n  {\n    \"type\": \"false\",\n    \"named\": false\n  },\n  {\n    \"type\": \"float_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"fn\",\n    \"named\": false\n  },\n  {\n    \"type\": \"for\",\n    \"named\": false\n  },\n  {\n    \"type\": \"from\",\n    \"named\": false\n  },\n  {\n    \"type\": \"given\",\n    \"named\": false\n  },\n  {\n    \"type\": \"http\",\n    \"named\": false\n  },\n  {\n    \"type\": \"identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"identity\",\n    \"named\": false\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"implies\",\n    \"named\": false\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"integration\",\n    \"named\": false\n  },\n  {\n    \"type\": \"invariant\",\n    \"named\": false\n  },\n  {\n    \"type\": \"is\",\n    \"named\": false\n  },\n  {\n    \"type\": \"key\",\n    \"named\": false\n  },\n  {\n    \"type\": \"let\",\n    \"named\": false\n  },\n  {\n    \"type\": \"limits\",\n    \"named\": false\n  },\n  {\n    \"type\": \"line_comment\",\n    \"named\": true,\n    \"extra\": true\n  },\n  {\n    \"type\": \"match\",\n    \"named\": false\n  },\n  {\n    \"type\": \"message\",\n    \"named\": false\n  },\n  {\n    \"type\": \"messages\",\n    \"named\": false\n  },\n  {\n    \"type\": \"never\",\n    \"named\": false\n  },\n  {\n    \"type\": \"number_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"on\",\n    \"named\": false\n  },\n  {\n    \"type\": \"once\",\n    \"named\": false\n  },\n  {\n    \"type\": \"opaque\",\n    \"named\": false\n  },\n  {\n    \"type\": \"open\",\n    \"named\": false\n  },\n  {\n    \"type\": \"out\",\n    \"named\": false\n  },\n  {\n    \"type\": \"property\",\n    \"named\": false\n  },\n  {\n    \"type\": \"provides\",\n    \"named\": false\n  },\n  {\n    \"type\": \"pure\",\n    \"named\": false\n  },\n  {\n    \"type\": \"queue\",\n    \"named\": false\n  },\n  {\n    \"type\": \"requires\",\n    \"named\": false\n  },\n  {\n    \"type\": \"returns\",\n    \"named\": false\n  },\n  {\n    \"type\": \"schedule\",\n    \"named\": false\n  },\n  {\n    \"type\": \"schema\",\n    \"named\": false\n  },\n  {\n    \"type\": \"security\",\n    \"named\": false\n  },\n  {\n    \"type\": \"self\",\n    \"named\": false\n  },\n  {\n    \"type\": \"service\",\n    \"named\": false\n  },\n  {\n    \"type\": \"store\",\n    \"named\": false\n  },\n  {\n    \"type\": \"stub\",\n    \"named\": false\n  },\n  {\n    \"type\": \"suite\",\n    \"named\": false\n  },\n  {\n    \"type\": \"system\",\n    \"named\": false\n  },\n  {\n    \"type\": \"times\",\n    \"named\": false\n  },\n  {\n    \"type\": \"trace\",\n    \"named\": false\n  },\n  {\n    \"type\": \"transition\",\n    \"named\": false\n  },\n  {\n    \"type\": \"transparent\",\n    \"named\": false\n  },\n  {\n    \"type\": \"true\",\n    \"named\": false\n  },\n  {\n    \"type\": \"type\",\n    \"named\": false\n  },\n  {\n    \"type\": \"unit\",\n    \"named\": false\n  },\n  {\n    \"type\": \"uses\",\n    \"named\": false\n  },\n  {\n    \"type\": \"validation_error_type\",\n    \"named\": true\n  },\n  {\n    \"type\": \"via\",\n    \"named\": false\n  },\n  {\n    \"type\": \"websocket\",\n    \"named\": false\n  },\n  {\n    \"type\": \"where\",\n    \"named\": false\n  },\n  {\n    \"type\": \"wildcard\",\n    \"named\": true\n  },\n  {\n    \"type\": \"with\",\n    \"named\": false\n  },\n  {\n    \"type\": \"{\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|\",\n    \"named\": false\n  },\n  {\n    \"type\": \"||\",\n    \"named\": false\n  },\n  {\n    \"type\": \"}\",\n    \"named\": false\n  },\n  {\n    \"type\": \"~>\",\n    \"named\": false\n  }\n]";
Expand description

The generated node-types.json for the grammar.