* long term feature: templated generic vm * long term feature: shared_ptr less locator * long term feature: shared_ptr less resource cache * custom allocators and EnTT allocator-aware in general (long term feature, I don't actually need it at the moment) - see #22 * debugging tools (#60): the issue online already contains interesting tips on this, look at it * runner proposal: https://en.wikipedia.org/wiki/Fork%E2%80%93join_model https://slide-rs.github.io/specs/03_dispatcher.html * work stealing job system (see #100) - mt scheduler based on const awareness for types * meta: sort of meta view based on meta stuff to iterate entities, void * and meta info objects * allow for built-in parallel each if possible * allow to replace std:: with custom implementations * remove runtime views, welcome reflection and what about snapshot? * types defined at runtime that refer to the same compile-time type (but to different pools) are possible, the library is almost there * add opaque input iterators to views and groups that return tuples (proxy), multi-pass guaranteed * add fast lane for raw iterations, extend mt doc to describe allowed add/remove with pre-allocations on fast lanes * registry.each(first, last) by iterators, entities/components guaranteed * multi component registry::remove and some others? * built-in support for dual (or N-) buffering * allow for custom stomp functions * deprecate/replace snapshot * remove dependency * remove prototype TODO * custom (decoupled) pools ==> double buffering, shared components, multi-model * make meta work across boundaries - inline variables are fine here, only the head represents a problem - we should always resolve by looking into the list of types when working across boundaries, no direct resolve * nested groups: AB/ABC/ABCD/... (hints: sort, check functions) * use unordered_map for named pools and context variables: * use direct access (pool-like) also for context variables * improves multi-stomp