* long term feature: shared_ptr less locator and 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
* 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 (remove runtime views, welcome reflection)
* add opaque input iterators to views and groups that return tuples <entity, T &...> (proxy), multi-pass guaranteed
* allow to replace std:: with custom implementations
* custom (decoupled) pools ==> N-buffering, shared components, multi-model, hibitsets, and so on
* add examples (and credits) from @alanjfs :)
* static reflection, hint: template<> meta_type_t<Type>: meta_descriptor<name, func..., props..., etc...> (see #342)
* observer: user defined filters (eg .replace<T, &function> or .group<T, U, &func>)
* can we write a bool conv func for entt::entity that silently compares it to null?
* reset... reset everywhere...
* is it possible to make 0 the entity null?
* document undocumented parts (entt::overload and a few others)
* any-of rule for views/groups (eg entity has A and any of B/C/D)
  - get -> all, exclude -> none

Next:
* replace observer class with observer functions
* get(cmp, entity) -> void *, set(cmp, entity, void *)
* ENTT_ENABLE_ETO -> ENTT_IS_EMPTY (ignore default constructible)
* review multi component views to reduce instantiations once empty types are gone...
* avoid using deprecated functions all around
* accept fixed type iterators like std::container<T> does  rather than all possible types

* WIP:
 - deprecate snapshot, loader, ...
 - provide documentation to describe alternatives

* WIP: snapshot rework/deprecation
 - remove snapshot/loader from registry, make them external (faster) tools
 - deprecate snapshot classes, update documentation to describe alternatives
