I’m creating a simulator for my PhD research. It would extremely useful to be able to open up multiple windows at once, but have them all tied to the same ECS (see this issue for more details). What I noticed is that I wasn’t really able to do that, but it appeared that this was an accident, not a deliberate design choice to make it a singleton.
My proposal is that Amethyst should assume by default that all objects may have multiple instances created, and to mark any special objects with a special-purpose Singleton marker trait. A process can be put in place to determine if an object should be allowed to be marked as a Singleton, with all appropriate discussion and decisions documented. We can also audit the code for anything marked as a Singleton to decide if that should be changed in the future.