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.