{
    "id": "cpp_api",
    "type": "application",
    "value": {
        "author": "Sander Mertens",
        "description": "Test project for flecs C++ API",
        "public": false,
        "coverage": false,
        "language": "c++",
        "use": [
            "flecs"
        ]
    },
    "test": {
        "testsuites": [{
            "id": "PrettyFunction",
            "testcases": [
                "component",
                "enum"
            ]
        }, {
            "id": "Entity",
            "testcases": [
                "new",
                "new_named",
                "new_named_from_scope",
                "new_nested_named_from_scope",
                "new_nested_named_from_nested_scope",
                "new_add",
                "new_add_2",
                "new_set",
                "new_set_2",
                "add",
                "add_2",
                "add_entity",
                "add_childof",
                "add_instanceof",
                "remove",
                "remove_2",
                "remove_entity",
                "remove_childof",
                "remove_instanceof",
                "set",
                "set_2",
                "emplace",
                "emplace_2",
                "emplace_after_add",
                "emplace_after_add_pair",
                "emplace_pair",
                "emplace_pair_w_entity",
                "emplace_pair_type",
                "emplace_pair_second",
                "get_generic",
                "get_mut_generic",
                "get_generic_w_id",
                "get_generic_w_id_t",
                "get_mut_generic_w_id",
                "get_mut_generic_w_id_t",
                "set_generic",
                "set_generic_w_id",
                "set_generic_w_id_t",
                "set_generic_no_size",
                "set_generic_no_size_w_id",
                "set_generic_no_size_w_id_t",
                "add_role",
                "remove_role",
                "has_role",
                "pair_role",
                "equals",
                "compare_0",
                "compare_id_t",
                "compare_id",
                "compare_literal",
                "greater_than",
                "less_than",
                "not_0_or_1",
                "not_true_or_false",
                "has_childof",
                "has_instanceof",
                "has_instanceof_indirect",
                "null_string",
                "set_name",
                "change_name",
                "delete",
                "clear",
                "foce_owned",
                "force_owned_2",
                "force_owned_nested",
                "tag_has_size_zero",
                "get_null_name",
                "get_target",
                "get_parent",
                "is_component_enabled",
                "is_enabled_component_enabled",
                "is_disabled_component_enabled",
                "is_pair_enabled",
                "is_enabled_pair_enabled",
                "is_disabled_pair_enabled",
                "is_pair_enabled_w_ids",
                "is_enabled_pair_enabled_w_ids",
                "is_disabled_pair_enabled_w_ids",
                "is_pair_enabled_w_tgt_id",
                "is_enabled_pair_enabled_w_tgt_id",
                "is_disabled_pair_enabled_w_tgt_id",
                "get_type",
                "get_nonempty_type",
                "set_no_copy",
                "set_copy",
                "set_deduced",
                "override",
                "override_id",
                "override_pair",
                "override_pair_w_tgt_id",
                "override_pair_w_ids",
                "set_override",
                "set_override_lvalue",
                "set_override_pair",
                "set_override_pair_w_tgt_id",
                "set_override_pair_w_rel_tag",
                "emplace_override",
                "emplace_override_pair",
                "path",
                "path_from",
                "path_from_type",
                "path_custom_sep",
                "path_from_custom_sep",
                "path_from_type_custom_sep",
                "implicit_name_to_char",
                "implicit_path_to_char",
                "implicit_type_str_to_char",
                "entity_to_entity_view",
                "entity_view_to_entity_world",
                "entity_view_to_entity_stage",
                "create_entity_view_from_stage",
                "set_template",
                "get_1_component_w_callback",
                "get_2_components_w_callback",
                "set_1_component_w_callback",
                "set_2_components_w_callback",
                "set_3_components_w_callback",
                "get_mut_1_component_w_callback",
                "get_mut_2_components_w_callback",
                "get_component_w_callback_nested",
                "get_mut_component_w_callback_nested",
                "defer_set_1_component",
                "defer_set_2_components",
                "defer_set_3_components",
                "set_2_w_on_set",
                "defer_set_2_w_on_set",
                "set_2_after_fluent",
                "set_2_before_fluent",
                "set_2_after_set_1",
                "set_2_after_set_2",
                "with_self",
                "with_relation_type_self",
                "with_relation_self",
                "with_self_w_name",
                "with_self_nested",
                "with_after_builder_method",
                "with_before_builder_method",
                "with_scope",
                "with_scope_nested",
                "with_scope_nested_same_name_as_parent",
                "scope_after_builder_method",
                "scope_before_builder_method",
                "no_recursive_lookup",
                "defer_new_w_name",
                "defer_new_w_nested_name",
                "defer_new_w_scope_name",
                "defer_new_w_scope_nested_name",
                "defer_new_w_deferred_scope_nested_name",
                "defer_new_w_scope",
                "defer_new_w_with",
                "defer_new_w_name_scope_with",
                "defer_w_with_implicit_component",
                "defer_suspend_resume",
                "entity_id_str",
                "pair_id_str",
                "role_id_str",
                "id_str_from_entity_view",
                "id_str_from_entity",
                "null_entity",
                "null_entity_w_world",
                "null_entity_w_0",
                "null_entity_w_world_w_0",
                "entity_view_null_entity",
                "entity_view_null_entity_w_world",
                "entity_view_null_entity_w_0",
                "entity_view_null_entity_w_world_w_0",
                "is_wildcard",
                "has_id_t",
                "has_pair_id_t",
                "has_pair_id_t_w_type",
                "has_id",
                "has_pair_id",
                "has_pair_id_w_type",
                "has_wildcard_id",
                "has_wildcard_pair_id",
                "owns_id_t",
                "owns_pair_id_t",
                "owns_pair_id_t_w_type",
                "owns_id",
                "owns_pair_id",
                "owns_pair_id_w_type",
                "owns_wildcard_id",
                "owns_wildcard_pair",
                "id_from_world",
                "id_pair_from_world",
                "id_default_from_world",
                "is_a",
                "is_a_w_type",
                "child_of",
                "child_of_w_type",
                "slot_of",
                "slot_of_w_type",
                "slot",
                "id_get_entity",
                "id_get_invalid_entity",
                "each_in_stage",
                "iter_recycled_parent",
                "get_lambda_from_stage",
                "default_ctor",
                "get_obj_by_template",
                "create_named_twice_deferred",
                "clone",
                "clone_w_value",
                "clone_to_existing",
                "clone_to_existing_overlap",
                "set_doc_name",
                "set_doc_brief",
                "set_doc_detail",
                "set_doc_link",
                "entity_w_root_name",
                "entity_w_root_name_from_scope",
                "entity_w_type",
                "entity_w_nested_type",
                "entity_w_type_defer",
                "prefab_hierarchy_w_types",
                "prefab_hierarchy_w_root_types",
                "prefab_hierarchy_w_child_override",
                "entity_array",
                "add_if_true_T",
                "add_if_false_T",
                "add_if_true_id",
                "add_if_false_id",
                "add_if_true_R_O",
                "add_if_false_R_O",
                "add_if_true_R_o",
                "add_if_false_R_o",
                "add_if_true_r_o",
                "add_if_exclusive_r_o",
                "add_if_exclusive_R_o",
                "add_if_exclusive_R_O",
                "add_if_pair_w_0_object",
                "children_w_custom_relation",
                "children_w_custom_relation_type",
                "children_w_this",
                "children_w_wildcard",
                "children_w_any",
                "children_from_root",
                "children_from_root_world",
                "get_depth",
                "get_depth_w_type",
                "to_view",
                "to_view_from_stage",
                "set_alias",
                "emplace_w_observer",
                "scoped_world",
                "entity_lookup_not_recursive",
                "world_lookup_not_recursive"
            ]
        }, {
            "id": "Pairs",
            "testcases": [
                "add_component_pair",
                "add_tag_pair",
                "add_tag_pair_to_tag",
                "remove_component_pair",
                "remove_tag_pair",
                "remove_tag_pair_to_tag",
                "set_component_pair",
                "set_tag_pair",
                "system_1_pair_instance",
                "system_2_pair_instances",
                "override_pair",
                "override_tag_pair",
                "get_mut_pair",
                "get_mut_pair_existing",
                "get_mut_pair_tag",
                "get_mut_pair_tag_existing",
                "get_mut_R_tag_O",
                "get_relation_from_id",
                "get_second_from_id",
                "get_recycled_relation_from_id",
                "get_recycled_object_from_id",
                "get_rel_obj",
                "get_rel_obj_id",
                "get_rel_obj_id_t",
                "get_R_obj",
                "get_R_obj_id",
                "get_R_obj_id_t",
                "get_R_O",
                "get_R_tag_O",
                "get_second",
                "get_second_id",
                "get_second_id_t",
                "each",
                "each_pair",
                "each_pair_by_type",
                "each_pair_w_isa",
                "each_pair_w_recycled_rel",
                "each_pair_w_recycled_obj",
                "match_pair",
                "match_pair_obj_wildcard",
                "match_pair_rel_wildcard",
                "match_pair_both_wildcard",
                "has_tag_w_object",
                "has_second_tag",
                "add_pair_type",
                "remove_pair_type",
                "set_pair_type",
                "has_pair_type",
                "get_1_pair_arg",
                "get_2_pair_arg",
                "set_1_pair_arg",
                "set_2_pair_arg",
                "get_inline_pair_type",
                "set_inline_pair_type",
                "get_pair_type_object",
                "set_pair_type_object",
                "set_get_second_variants",
                "get_object_for_type_self",
                "get_object_for_type_base",
                "get_object_for_id_self",
                "get_object_for_id_base",
                "get_object_for_id_not_found",
                "deref_pair",
                "deref_const_pair",
                "deref_pair_obj",
                "deref_const_pair_obj",
                "set_R_existing_value"
            ]
        }, {
            "id": "Enum",
            "testcases": [
                "standard_enum_reflection",
                "sparse_enum_reflection",
                "enum_class_reflection",
                "prefixed_enum_reflection",
                "constant_with_num_reflection",
                "get_constant_id",
                "add_enum_constant",
                "add_enum_class_constant",
                "replace_enum_constants",
                "has_enum",
                "has_enum_wildcard",
                "get_enum",
                "remove_enum",
                "remove_wildcard",
                "enum_as_component",
                "query_enum_wildcard",
                "query_enum_constant",
                "enum_type_from_stage",
                "add_enum_from_stage",
                "enum_w_2_worlds",
                "add_enum_constant_w_tag",
                "remove_enum_constant_w_tag",
                "set_enum_constant_w_tag",
                "enum_w_incorrect_size",
                "add_union_enum",
                "add_2_union_enums",
                "add_2_union_enums_reverse",
                "constant_from_entity",
                "add_if",
                "add_if_other",
                "query_union_enum",
                "query_union_enum_invalid_query_type",
                "component_registered_as_enum",
                "mixed_auto_manual_constants",
                "enum_class_mixed_auto_manual_constants",
                "enum_child_count"
            ]
        }, {
            "id": "Switch",
            "testcases": [
                "add_case",
                "get_case",
                "system_w_case",
                "system_w_case_builder",
                "system_w_sw_type_builder",
                "system_w_switch",
                "add_case_w_type",
                "add_switch_w_type",
                "add_remove_switch_w_type",
                "switch_enum_type"
            ]
        }, {
            "id": "Paths",
            "testcases": [
                "name",
                "path_depth_1",
                "path_depth_2",
                "entity_lookup_name",
                "entity_lookup_depth_1",
                "entity_lookup_depth_2",
                "entity_lookup_from_0",
                "entity_lookup_from_0_w_world",
                "alias_component",
                "alias_scoped_component",
                "alias_scoped_component_w_name",
                "alias_entity",
                "alias_entity_by_name",
                "alias_entity_by_scoped_name",
                "alias_entity_empty"
            ]
        }, {
            "id": "System",
            "testcases": [
                "iter",
                "iter_const",
                "iter_shared",
                "iter_optional",
                "each",
                "each_const",
                "each_shared",
                "each_optional",
                "signature",
                "signature_const",
                "signature_shared",
                "signature_optional",
                "copy_name_on_create",
                "nested_system",
                "empty_signature",
                "iter_tag",
                "each_tag",
                "set_interval",
                "order_by_type",
                "order_by_id",
                "order_by_type_after_create",
                "order_by_id_after_create",
                "get_query",
                "add_from_each",
                "delete_from_each",
                "add_from_each_world_handle",
                "new_from_each",
                "add_from_iter",
                "delete_from_iter",
                "add_from_iter_world_handle",
                "new_from_iter",
                "each_w_mut_children_it",
                "readonly_children_iter",
                "rate_filter",
                "update_rate_filter",
                "default_ctor",
                "test_auto_defer_each",
                "test_auto_defer_iter",
                "custom_pipeline",
                "custom_pipeline_w_kind",
                "instanced_query_w_singleton_each",
                "instanced_query_w_base_each",
                "un_instanced_query_w_singleton_each",
                "un_instanced_query_w_base_each",
                "instanced_query_w_singleton_iter",
                "instanced_query_w_base_iter",
                "un_instanced_query_w_singleton_iter",
                "un_instanced_query_w_base_iter",
                "create_w_no_template_args",
                "system_w_type_kind_type_pipeline",
                "default_ctor",
                "entity_ctor",
                "ensure_instanced_w_each",
                "multithread_system_w_query_each",
                "multithread_system_w_query_each_w_iter",
                "multithread_system_w_query_each_w_world",
                "multithread_system_w_query_iter",
                "multithread_system_w_query_iter_w_iter",
                "multithread_system_w_query_iter_w_world",
                "run_callback",
                "startup_system",
                "interval_tick_source",
                "rate_tick_source",
                "nested_rate_tick_source",
                "table_get",
                "range_get",
                "randomize_timers",
                "optional_pair_term"
            ]
        }, {
            "id": "Event",
            "testcases": [
                "evt_1_id_entity",
                "evt_2_ids_entity",
                "evt_1_id_table",
                "evt_2_ids_table",
                "evt_type",
                "evt_1_component",
                "evt_2_components",
                "evt_void_ctx",
                "evt_typed_ctx",
                "evt_implicit_typed_ctx",
                "evt_1_id_pair_rel_id_obj_id_entity",
                "evt_1_id_pair_rel_obj_id_entity",
                "evt_1_id_pair_rel_obj_entity",
                "emit_staged_from_world",
                "emit_staged_from_stage",
                "emit_custom_for_any",
                "entity_emit_event_id",
                "entity_emit_event_type",
                "entity_emit_event_w_payload",
                "entity_emit_event_id_no_src",
                "entity_emit_event_type_no_src",
                "entity_emit_event_w_payload_no_src",
                "entity_emit_event_w_payload_derived_event_type",
                "entity_emit_event_w_payload_derived_event_type_no_src"
            ]
        }, {
            "id": "Iterable",
            "testcases": [
                "page_each",
                "page_iter",
                "worker_each",
                "worker_iter"
            ]
        }, {
            "id": "Query",
            "testcases": [
                "action",
                "action_const",
                "action_shared",
                "action_optional",
                "each",
                "each_const",
                "each_shared",
                "each_optional",
                "signature",
                "signature_const",
                "signature_shared",
                "signature_optional",
                "subquery",
                "subquery_w_expr",
                "query_single_pair",
                "tag_w_each",
                "shared_tag_w_each",
                "sort_by",
                "changed",
                "orphaned",
                "default_ctor",
                "default_ctor_no_assign",
                "expr_w_template",
                "query_type_w_template",
                "compare_term_id",
                "test_no_defer_each",
                "test_no_defer_iter",
                "inspect_terms",
                "inspect_terms_w_each",
                "inspect_terms_w_expr",
                "comp_to_str",
                "pair_to_str",
                "oper_not_to_str",
                "oper_optional_to_str",
                "oper_or_to_str",
                "each_pair_type",
                "iter_pair_type",
                "term_pair_type",
                "each_no_entity_1_comp",
                "each_no_entity_2_comps",
                "iter_no_comps_1_comp",
                "iter_no_comps_2_comps",
                "iter_no_comps_no_comps",
                "each_pair_object",
                "iter_pair_object",
                "iter_query_in_system",
                "iter_type",
                "instanced_query_w_singleton_each",
                "instanced_query_w_base_each",
                "un_instanced_query_w_singleton_each",
                "un_instanced_query_w_base_each",
                "instanced_query_w_singleton_iter",
                "instanced_query_w_base_iter",
                "un_instanced_query_w_singleton_iter",
                "un_instanced_query_w_base_iter",
                "query_each_from_component",
                "query_iter_from_component",
                "query_each_w_func_ptr",
                "query_iter_w_func_ptr",
                "query_each_w_func_no_ptr",
                "query_iter_w_func_no_ptr",
                "query_each_w_iter",
                "change_tracking",
                "not_w_write",
                "get_first",
                "get_count_direct",
                "get_is_true_direct",
                "get_first_direct",
                "each_w_no_this",
                "each_w_iter_no_this",
                "invalid_each_w_no_this",
                "named_query",
                "named_scoped_query",
                "instanced_nested_query_w_iter",
                "instanced_nested_query_w_entity",
                "instanced_nested_query_w_world",
                "captured_query",
                "page_iter_captured_query",
                "worker_iter_captured_query",
                "iter_entities",
                "iter_get_pair_w_id",
                "find",
                "find_not_found",
                "find_w_entity",
                "optional_pair_term"
            ]
        }, {
            "id": "QueryBuilder",
            "testcases": [
                "builder_assign_same_type",
                "builder_assign_from_empty",
                "builder_assign_to_empty",
                "builder_build",
                "builder_build_to_auto",
                "builder_build_n_statements",
                "1_type",
                "add_1_type",
                "add_2_types",
                "add_1_type_w_1_type",
                "add_2_types_w_1_type",
                "add_pair",
                "add_not",
                "add_or",
                "add_optional",
                "ptr_type",
                "const_type",
                "string_term",
                "singleton_term",
                "isa_superset_term",
                "isa_self_superset_term",
                "childof_superset_term",
                "childof_self_superset_term",
                "isa_superset_term_w_each",
                "isa_self_superset_term_w_each",
                "childof_superset_term_w_each",
                "childof_self_superset_term_w_each",
                "isa_superset_shortcut",
                "isa_superset_shortcut_w_self",
                "childof_superset_shortcut",
                "childof_superset_shortcut_w_self",
                "relation",
                "relation_w_object_wildcard",
                "relation_w_predicate_wildcard",
                "add_pair_w_rel_type",
                "template_term",
                "explicit_subject_w_id",
                "explicit_subject_w_type",
                "explicit_object_w_id",
                "explicit_object_w_type",
                "explicit_term",
                "explicit_term_w_type",
                "explicit_term_w_pair_type",
                "explicit_term_w_id",
                "explicit_term_w_pair_id",
                "1_term_to_empty",
                "2_subsequent_args",
                "optional_tag_is_set",
                "10_terms",
                "20_terms",
                "group_by_raw",
                "group_by_template",
                "group_by_iter_one",
                "group_by_iter_one_template",
                "group_by_iter_one_all_groups",
                "group_by_default_func_w_id",
                "group_by_default_func_w_type",
                "group_by_callbacks",
                "create_w_no_template_args",
                "any_wildcard",
                "cascade",
                "cascade_w_relationship",
                "up_w_type",
                "cascade_w_type",
                "cascade_desc",
                "named_query",
                "term_w_write",
                "term_w_read",
                "iter_w_stage"
            ]
        }, {
            "id": "FilterBuilder",
            "testcases": [
                "builder_assign_same_type",
                "builder_assign_from_empty",
                "builder_assign_to_empty",
                "builder_build",
                "builder_build_to_auto",
                "builder_build_n_statements",
                "builder_force_assign_operator",
                "1_type",
                "add_1_type",
                "add_2_types",
                "add_1_type_w_1_type",
                "add_2_types_w_1_type",
                "add_pair",
                "add_not",
                "add_or",
                "add_optional",
                "ptr_type",
                "const_type",
                "string_term",
                "singleton_term",
                "isa_superset_term",
                "isa_self_superset_term",
                "childof_superset_term",
                "childof_self_superset_term",
                "isa_superset_term_w_each",
                "isa_self_superset_term_w_each",
                "childof_superset_term_w_each",
                "childof_self_superset_term_w_each",
                "isa_superset_shortcut",
                "isa_superset_shortcut_w_self",
                "childof_superset_shortcut",
                "childof_superset_shortcut_w_self",
                "relation",
                "relation_w_object_wildcard",
                "relation_w_predicate_wildcard",
                "add_pair_w_rel_type",
                "template_term",
                "explicit_subject_w_id",
                "explicit_subject_w_type",
                "explicit_object_w_id",
                "explicit_object_w_type",
                "explicit_term",
                "explicit_term_w_type",
                "explicit_term_w_pair_type",
                "explicit_term_w_id",
                "explicit_term_w_pair_id",
                "1_term_to_empty",
                "2_subsequent_args",
                "filter_as_arg",
                "filter_as_move_arg",
                "filter_as_return",
                "filter_copy",
                "world_each_filter_1_component",
                "world_each_filter_2_components",
                "world_each_filter_1_component_no_entity",
                "world_each_filter_2_components_no_entity",
                "10_terms",
                "20_terms",
                "term_after_arg",
                "name_arg",
                "const_in_term",
                "const_optional",
                "create_w_no_template_args",
                "2_terms_w_expr",
                "assert_on_uninitialized_term",
                "operator_shortcuts",
                "inout_shortcuts",
                "iter_column_w_const_as_array",
                "iter_column_w_const_as_ptr",
                "iter_column_w_const_deref",
                "with_id",
                "with_name",
                "with_component",
                "with_pair_id",
                "with_pair_name",
                "with_pair_components",
                "with_pair_component_id",
                "with_pair_component_name",
                "with_enum",
                "without_id",
                "without_name",
                "without_component",
                "without_pair_id",
                "without_pair_name",
                "without_pair_components",
                "without_pair_component_id",
                "without_pair_component_name",
                "without_enum",
                "write_id",
                "write_name",
                "write_component",
                "write_pair_id",
                "write_pair_name",
                "write_pair_components",
                "write_pair_component_id",
                "write_pair_component_name",
                "write_enum",
                "read_id",
                "read_name",
                "read_component",
                "read_pair_id",
                "read_pair_name",
                "read_pair_components",
                "read_pair_component_id",
                "read_pair_component_name",
                "read_enum",
                "assign_after_init",
                "iter_w_stage",
                "with_t_inout",
                "with_T_inout",
                "with_R_T_inout",
                "with_R_t_inout",
                "with_r_t_inout"
            ]
        }, {
            "id": "RuleBuilder",
            "testcases": [
                "1_type",
                "2_types",
                "id_term",
                "type_term",
                "id_pair_term",
                "id_pair_wildcard_term",
                "type_pair_term",
                "pair_term_w_var",
                "2_pair_terms_w_var",
                "set_var",
                "set_2_vars",
                "set_var_by_name",
                "set_2_vars_by_name",
                "expr_w_var",
                "get_first",
                "get_count_direct",
                "get_is_true_direct",
                "get_first_direct",
                "var_src_w_prefixed_name",
                "var_first_w_prefixed_name",
                "var_second_w_prefixed_name",
                "term_w_second_var_string",
                "term_type_w_second_var_string",
                "named_rule",
                "named_scoped_rule",
                "is_valid",
                "unresolved_by_name",
                "scope",
                "iter_w_stage",
                "inspect_terms_w_expr",
                "find",
                "find_not_found",
                "find_w_entity"
            ]
        }, {
            "id": "SystemBuilder",
            "testcases": [
                "builder_assign_same_type",
                "builder_build_to_auto",
                "builder_build_n_statements",
                "1_type",
                "add_1_type",
                "add_2_types",
                "add_1_type_w_1_type",
                "add_2_types_w_1_type",
                "add_pair",
                "add_not",
                "add_or",
                "add_optional",
                "ptr_type",
                "const_type",
                "string_term",
                "singleton_term",
                "10_terms",
                "20_terms",
                "name_arg",
                "create_w_no_template_args",
                "write_annotation",
                "name_from_root"
            ]
        }, {
            "id": "Observer",
            "testcases": [
                "2_terms_on_add",
                "2_terms_on_remove",
                "2_terms_on_set",
                "2_terms_un_set",
                "10_terms",
                "20_terms",
                "2_entities_iter",
                "2_entities_table_column",
                "2_entities_each",
                "create_w_no_template_args",
                "yield_existing",
                "yield_existing_2_terms",
                "default_ctor",
                "entity_ctor",
                "on_add",
                "on_remove",
                "on_add_tag_action",
                "on_add_tag_iter",
                "on_add_tag_each",
                "on_add_expr",
                "observer_w_filter_term",
                "run_callback",
                "get_query",
                "on_set_w_set",
                "on_set_w_defer_set",
                "on_add_singleton",
                "on_add_pair_singleton",
                "on_add_pair_wildcard_singleton",
                "on_add_with_pair_singleton",
                "add_in_yield_existing",
                "add_in_yield_existing_multi",
                "name_from_root"
            ]
        }, {
            "id": "Filter",
            "testcases": [
                "term_each_component",
                "term_each_tag",
                "term_each_id",
                "term_each_pair_type",
                "term_each_pair_id",
                "term_each_pair_relation_wildcard",
                "term_each_pair_object_wildcard",
                "default_ctor_no_assign",
                "term_get_id",
                "term_get_subj",
                "term_get_pred",
                "term_get_obj",
                "get_first",
                "get_count_direct",
                "get_is_true_direct",
                "get_first_direct",
                "each_w_no_this",
                "each_w_iter_no_this",
                "invalid_each_w_no_this",
                "named_filter",
                "named_scoped_filter",
                "set_this_var",
                "inspect_terms_w_expr",
                "find",
                "find_not_found",
                "find_w_entity",
                "optional_pair_term"
            ]
        }, {
            "id": "ComponentLifecycle",
            "testcases": [
                "ctor_on_add",
                "dtor_on_remove",
                "move_on_add",
                "move_on_remove",
                "copy_on_set",
                "copy_on_override",
                "struct_w_string_add",
                "struct_w_string_remove",
                "struct_w_string_set",
                "struct_w_string_override",
                "struct_w_string_add_2_remove",
                "struct_w_string_set_2_remove",
                "struct_w_string_add_2_remove_w_tag",
                "struct_w_string_set_2_remove_w_tag",
                "struct_w_vector_add",
                "struct_w_vector_remove",
                "struct_w_vector_set",
                "struct_w_vector_override",
                "struct_w_vector_add_2_remove",
                "struct_w_vector_set_2_remove",
                "struct_w_vector_add_2_remove_w_tag",
                "struct_w_vector_set_2_remove_w_tag",
                "get_mut_new",
                "get_mut_existing",
                "implicit_component",
                "implicit_after_query",
                "deleted_copy",
                "no_default_ctor_emplace",
                "default_init",
                "no_default_ctor_add",
                "no_default_ctor_add_relation",
                "no_default_ctor_add_second",
                "no_default_ctor_set",
                "no_copy_ctor",
                "no_move_ctor",
                "no_copy_assign",
                "no_move_assign",
                "no_copy",
                "no_move",
                "no_dtor",
                "default_ctor_w_value_ctor",
                "no_default_ctor_move_ctor_on_set",
                "emplace_w_ctor",
                "emplace_no_default_ctor",
                "emplace_defer_use_move_ctor",
                "emplace_existing",
                "emplace_singleton",
                "dtor_w_non_trivial_implicit_move",
                "dtor_w_non_trivial_explicit_move",
                "grow_no_default_ctor",
                "grow_no_default_ctor_move",
                "grow_no_default_ctor_move_w_component",
                "delete_no_default_ctor",
                "on_add_hook",
                "on_remove_hook",
                "on_set_hook",
                "on_add_hook_w_entity",
                "on_remove_hook_w_entity",
                "on_set_hook_w_entity",
                "chained_hooks",
                "ctor_w_2_worlds",
                "ctor_w_2_worlds_explicit_registration",
                "defer_emplace",
                "emplace_w_on_add",
                "emplace_w_on_add_existing",
                "set_pair_no_copy",
                "set_pair_w_entity_no_copy",
                "set_pair_second_no_copy",
                "set_override_no_copy",
                "set_override_pair_no_copy",
                "set_override_pair_w_entity_no_copy",
                "dtor_after_defer_set",
                "dtor_with_relation",
                "register_parent_after_child_w_hooks",
                "register_parent_after_child_w_hooks_implicit"
            ]
        }, {
            "id": "Refs",
            "testcases": [
                "get_ref_by_ptr",
                "get_ref_by_method",
                "ref_after_add",
                "ref_after_remove",
                "ref_after_set",
                "ref_before_set",
                "non_const_ref",
                "pair_ref",
                "pair_ref_w_entity",
                "pair_ref_second",
                "from_stage",
                "default_ctor",
                "try_get"
            ]
        }, {
            "id": "Module",
            "testcases": [
                "import",
                "lookup_from_scope",
                "nested_module",
                "nested_type_module",
                "component_redefinition_outside_module",
                "module_tag_on_namespace",
                "dtor_on_fini",
                "implicit_module",
                "module_in_namespace_w_root_name",
                "module_as_entity",
                "module_as_component",
                "module_with_core_name"
            ]
        }, {
            "id": "ImplicitComponents",
            "testcases": [
                "add",
                "remove",
                "has",
                "set",
                "get",
                "add_pair",
                "remove_pair",
                "module",
                "system",
                "system_optional",
                "system_const",
                "query",
                "implicit_name",
                "reinit",
                "reinit_scoped",
                "reinit_w_lifecycle",
                "first_use_in_system",
                "first_use_tag_in_system",
                "first_use_enum_in_system",
                "use_const",
                "use_const_w_stage",
                "use_const_w_threads",
                "implicit_base",
                "implicit_const",
                "implicit_ref",
                "implicit_ptr",
                "implicit_const_ref",
                "vector_elem_type"
            ]
        }, {
            "id": "Snapshot",
            "testcases": [
                "simple_snapshot"
            ]
        }, {
            "id": "WorldFactory",
            "testcases": [
                "entity",
                "entity_w_name",
                "entity_w_id",
                "prefab",
                "prefab_w_name",
                "system",
                "system_w_name",
                "system_w_expr",
                "query",
                "query_w_expr",
                "snapshot",
                "module"
            ]
        }, {
            "id": "World",
            "testcases": [
                "builtin_components",
                "multi_world_empty",
                "multi_world_component",
                "multi_world_component_namespace",
                "multi_world_module",
                "multi_world_recycled_component",
                "multi_world_recycled_component_different_generation",
                "type_id",
                "different_comp_same_name",
                "reregister_after_reset",
                "reregister_after_reset_w_namespace",
                "reregister_namespace",
                "implicit_reregister_after_reset",
                "reregister_after_reset_different_name",
                "register_short_template",
                "reimport",
                "reimport_module_after_reset",
                "reimport_module_new_world",
                "reimport_namespaced_module",
                "c_interop_module",
                "c_interop_after_reset",
                "implicit_register_w_new_world",
                "implicit_register_after_reset_register_w_custom_name",
                "register_after_reset_register_w_custom_name",
                "register_builtin_after_reset",
                "register_meta_after_reset",
                "reregister_after_reset_w_hooks_and_in_use",
                "reregister_after_reset_w_hooks_and_in_use_implicit",
                "register_component_w_reset_in_multithreaded",
                "register_component_w_core_name",
                "count",
                "count_id",
                "count_pair",
                "count_pair_type_id",
                "count_pair_id",
                "staged_count",
                "async_stage_add",
                "with_tag",
                "with_tag_type",
                "with_relation",
                "with_relation_type",
                "with_relation_object_type",
                "with_tag_nested",
                "with_scope",
                "with_scope_nested",
                "with_scope_type",
                "with_scope_type_staged",
                "with_scope_no_lambda",
                "with_scope_type_no_lambda",
                "recursive_lookup",
                "type_w_tag_name",
                "entity_w_tag_name",
                "template_component_name",
                "template_component_w_namespace_name",
                "template_component_w_same_namespace_name",
                "template_component_w_namespace_name_and_namespaced_arg",
                "template_component_w_same_namespace_name_and_namespaced_arg",
                "template_component_from_module_2_args",
                "entity_as_tag",
                "entity_w_name_as_tag",
                "entity_as_component",
                "entity_w_name_as_component",
                "entity_as_component_2_worlds",
                "entity_as_namespaced_component_2_worlds",
                "entity_as_component_2_worlds_implicit_namespaced",
                "delete_with_id",
                "delete_with_type",
                "delete_with_pair",
                "delete_with_pair_type",
                "delete_with_implicit",
                "delete_with_pair_implicit",
                "remove_all_id",
                "remove_all_type",
                "remove_all_pair",
                "remove_all_pair_type",
                "remove_all_implicit",
                "remove_all_pair_implicit",
                "get_scope",
                "get_scope_type",
                "register_namespace_after_component",
                "is_alive",
                "is_valid",
                "exists",
                "get_alive",
                "ensure",
                "reset_all",
                "get_tick",
                "register_from_scope",
                "register_nested_from_scope",
                "register_w_root_name",
                "register_nested_w_root_name",
                "set_lookup_path",
                "run_post_frame",
                "component_w_low_id",
                "get_set_log_level",
                "reset_world",
                "id_from_pair_type",
                "scope_w_name",
                "set_get_context",
                "set_get_binding_context",
                "set_get_context_w_free",
                "set_get_binding_context_w_free",
                "make_pair",
                "make_pair_of_pair_id",
                "make_pair_of_pair_id_tgt",
                "make_pair_of_pair_type",
                "delta_time"
            ]
        }, {
            "id": "Singleton",
            "testcases": [
                "set_get_singleton",
                "get_mut_singleton",
                "emplace_singleton",
                "modified_singleton",
                "add_singleton",
                "remove_singleton",
                "has_singleton",
                "singleton_system",
                "get_singleton",
                "type_id_from_world",
                "set_lambda",
                "get_lambda",
                "get_write_lambda",
                "get_set_singleton_pair_R_T",
                "get_set_singleton_pair_R_t",
                "add_remove_singleton_pair_R_T",
                "add_remove_singleton_pair_R_t",
                "add_remove_singleton_pair_r_t",
                "get_target"
            ]
        }, {
            "id": "Misc",
            "setup": true,
            "testcases": [
                "string_compare_w_char_ptr",
                "string_compare_w_char_ptr_length_diff",
                "string_compare_w_string",
                "string_view_compare_w_char_ptr",
                "string_view_compare_w_string",
                "string_compare_nullptr",
                "nullptr_string_compare",
                "nullptr_string_compare_nullptr",
                "c_macros",
                "app_run",
                "app_run_target_fps",
                "app_run_set_frames",
                "app_on_remove_on_fini",
                "member_gauge_metric",
                "id_gauge_metric",
                "oneof_gauge_metric",
                "id_counter_metric",
                "oneof_counter_metric",
                "component_mixin_member_metric",
                "component_mixin_member_metric_custom_parent_entity",
                "metric_description",
                "component_mixin_member_metric_description",
                "member_metric_w_value_name",
                "member_metric_w_value_name_camel_case_type",
                "member_metric_w_custom_name",
                "dotmember_metric",
                "counter_id_metric",
                "counter_target_metric",
                "member_metric_w_pair_R_T",
                "member_metric_w_pair_R_t",
                "member_metric_w_pair_r_t",
                "member_metric_w_pair_r_T",
                "alert",
                "alert_w_message",
                "alert_w_brief",
                "alert_doc_name",
                "alert_severity_info",
                "alert_severity_warning",
                "alert_severity_error",
                "alert_severity_implicit",
                "alert_w_retain_period",
                "alert_w_severity_filter",
                "alert_w_severity_filter_severity_type",
                "alert_w_severity_filter_severity_type_id_type",
                "alert_w_severity_filter_severity_type_enum_constant",
                "alert_w_severity_filter_w_var",
                "alert_w_severity_filter_severity_type_w_var",
                "alert_w_severity_filter_severity_type_id_type_w_var",
                "alert_w_severity_filter_severity_type_enum_constant_w_var",
                "alert_for_member_range",
                "alert_w_member_range_from_var",
                "map_api"
            ]
        }, {
            "id": "Meta",
            "testcases": [
                "struct",
                "nested_struct",
                "struct_w_portable_type",
                "partial_struct",
                "partial_struct_custom_offset",
                "units",
                "unit_w_quantity",
                "unit_w_prefix",
                "unit_w_over",
                "bitmask",
                "custom_i32_to_json",
                "custom_std_string_to_json",
                "custom_std_vector_i32_to_json",
                "custom_std_vector_std_string_to_json",
                "type_w_std_vector",
                "type_w_std_string",
                "type_w_std_vector_std_string",
                "type_w_std_string_std_vector",
                "type_w_std_string_std_string",
                "type_w_std_vector_std_vector",
                "type_w_std_vector_std_string_std_vector",
                "type_w_std_vector_std_vector_std_string",
                "primitive_type",
                "array_type",
                "vector_type",
                "i32_from_json",
                "struct_from_json",
                "void_from_json",
                "entity_from_json_empty",
                "entity_from_json_w_path",
                "entity_from_json_w_ids",
                "entity_from_json_w_values",
                "set_type_json",
                "set_pair_R_T_json",
                "set_pair_R_t_json",
                "set_pair_r_T_json",
                "set_pair_r_t_json",
                "set_id_json",
                "ser_deser_std_string",
                "ser_deser_std_vector_int",
                "ser_deser_std_vector_std_string",
                "ser_deser_type_w_std_string_std_vector_std_string",
                "ser_deser_flecs_entity",
                "world_ser_deser_flecs_entity",
                "new_world_ser_deser_flecs_entity",
                "new_world_ser_deser_empty_flecs_entity",
                "opaque_vector_w_builder",
                "deser_entity_w_path",
                "enum_w_bits",
                "value_range",
                "warning_range",
                "error_range",
                "struct_member_ptr",
                "struct_member_ptr_packed_struct",
                "component_as_array"
            ]
        }, {
            "id": "Table",
            "testcases": [
                "each",
                "each_locked",
                "each_without_entity",
                "each_without_entity_locked",
                "iter",
                "iter_locked",
                "iter_without_components",
                "iter_without_components_locked",
                "multi_get",
                "multi_get_locked",
                "multi_set",
                "multi_set_locked",
                "count",
                "has_id",
                "has_T",
                "has_pair_r_t",
                "has_pair_R_t",
                "has_pair_R_T",
                "get_id",
                "get_T",
                "get_T_enum",
                "get_pair_r_t",
                "get_pair_R_t",
                "get_pair_R_T",
                "range_get_id",
                "range_get_T",
                "range_get_pair_r_t",
                "range_get_pair_R_t",
                "range_get_pair_R_T",
                "get_depth",
                "get_depth_w_type",
                "iter_type"
            ]
        }, {
            "id": "Doc",
            "testcases": [
                "set_brief",
                "set_name",
                "set_link",
                "set_color",
                "get_name_no_doc_name"
            ]
        }]
    }
}
