## SanderMertens/flecs — v4.1.1…v4.1.2

_69 commits._

### Features
- **#1849 Add Singleton trait to module entities** (47e761a)
- **Add links to new Godot projects** (3797564)
- **#1839 Add support for using children() with sparse relationships** (5fa0856)
- **#1834 Add blacklist callback to serializer descriptor** (38b12f5)
- **#1831 Add tests and example for serializing std::optional** (a7f10f5)
- **#1829 Add C++ API for singleton enum constants** (bd82617)
- **#1824 Add traits to components endpoint** (8c03f8f)
- **#1818 Add missing memory statistics** (d002201)
- **#1804 Add Windows implementation for flecs_dump_backtrace** (e08f9d7)
- **#1802 Add world() method to untyped_ref** (ae471f0)
- **#1791 Add char literals to flecs script** (d477e5e)
- **#1796 Add missing table memory to memory statistics calculation** (5cd6b6e)
- **#1795 Add action endpoint for REST API** (6e9ebd2)
- **#1790 Add error messages when adding traits after creating queries** (b4f1a6f)
- **Implement new API for getting detailed memory statistics (#1789)** (98d3437)
- **#1784 Add more tests for non-fragmenting edge cleanup** (1ca3593)

### Fixes
- **#1850 Fix issue with DontFragment tags and clone()** (6f25da7)
- **#1826 Fix rare assert where depth calculation for cascade query sees not alive entity** (32175dd)
- **#1845 Fix assert when empty table is cleared with hooks** (54e2c97)
- **#1844 Fix issue where on_add hooks could get incorectly invoked during delete_empty_tables** (2214f3f)
- **#1843 Fix issue with calling shrink REST action from wasm image** (12c2cae)
- **#1838 Fix issue with instantiating component with (With, DontFragment component)** (d859a98)
- **#1837 Fix issues where observer would provide incorrect field sizes** (8339e93)
- **#1833 Fix issue with deserializing entity alias** (2cb0441)
- **#1836 Fix issue where single term observers didn't set the field size** (7338876)
- **Fix issue where sometimes the wrong entity was removed from a DontFragment sparse set** (2b72fd8)
- **Fix issue where get_alive() would return current generation of not-alive entity** (408e3b7)
- **#1832 Fix issues with cleaning up DontFragment components during bulk deletion** (82cc233)
- **Fix issue where ECS_ON_ADD/ECS_ON_SET/ECS_ON_REMOVE could pass bad address on bulk create** (d40842d)
- **Fix issue where on_set hook could be called multiple times for same component on override** (d1e1a15)
- **#1827 Fix memory corruption when overriding components with on_set hooks** (54a88dc)
- **#1823 Fix issue with skipping pretty printed objects in JSON parser** (2eabd4b)
- **#1822 Fix issue with deleting parent with DontFragment relationship to child** (7834287)
- **#1821 Fix invalid JSON for /tables endpoint when stats addon is not imported** (224560a)
- **#1819 Add better memory stats and fix escaping for tables/components endpoints** (fa1f9c6)
- **Fix incorrect ecs_merge docs & improve error message when used incorrectly** (b1bf8eb)
- **#1809 Fix issue with flecs_sparse_ensure and recycled entity ids** (13c66c6)
- **#1807 Fix assert with serializing sparse tag to JSON with type_info=true** (936206a)
- **#1801 Fix issues in doc examples** (c135ded)
- **#1803 Fix compiler error when using set/assign with non-copyable type, update to C++17** (c7f2dd0)
- **#1799 Fix issue where a serialization error in an inherited component would return invalid JSON** (35fb7f2)
- **#1797 Fix assert when creating tables in high page after shrinking world** (4b2924e)
- **#1794 Fix crash when obtaining memory statistics for sparse tags** (1ea4a08)
- **#1792 Fix issue where query flags weren't properly set for query with singleton terms** (686682e)
- **Fix memory leak for error message when FLECS_SOFT_ASSERT is defined** (da41e83)
- **#1786 Fix issue where enqueueing command in on_add hook didn't work for bulk creation** (a07a5c9)
- **#1775 Fix issue with remove_all() and query rematching** (a3fc2aa)
- **Fix issue in on_replace documentation** (d845736)
- **#1783 Fix issue with setting term flags with flecs::term::flags method** (7d42590)
- **#1782 Fix issue where table edges for non-fragmenting relationships weren't cleaned up** (12488d2)
- **#1781 Fix assert when using ecs_query_next in system .run callback** (258b899)
- **#1774 Fix issue where ref points to invalid ecs_record_t after shrink** (fbf0288)

### Backend
- **Update version to 4.1.2** (a53b471)
- **#1848 Update CI macOS 13 runners to 14** (ea75bbf)
- **#1846 Don't remove DontFragment components before calling regular observers in delete** (d7877b0)
- **#1841 Implement queries REST endpoint** (32f0123)
- **Don't create component record for not-alive id in table graph code** (07f7e18)
- **#1828 Remove redundant argument from flecs_table_invoke_ctor_for_array** (a98bb0c)
- **Remove outdated references to $ singleton notation** (003d076)
- **#1814 Remove ecs_observer_desc_t::observable** (2505022)
- **#1820 Improve accuracy of memory statistics tracking** (62ae576)
- **#1813 Correct dbghelp casing for MinGW cross-compilation** (13e741e)
- **#1800 Statistics improvements** (40df8b9)
- **#1788 Small compile time improvements** (abb0b7f)
- **#1787 Remove unused block allocators** (328d787)
- **#1773 Improve performance of toggle queries** (01a902d)
- **#1772 Make terms with Any wildcard cacheable** (0dd9bf0)
- **#1771 Implement lax member checks when deserializing** (95a8432)
- **#1770 Parent as_type to opaque type if it's anonymous and has no parent** (733591d)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/SanderMertens/flecs?utm_source=github-action)._