Have not run this, almost certain things are broken.
The general idea is we mark entities with components and have a general
purpose "OnStateChange" trigger that marks all "active state" entities
as visible and all "inactive state" entities as invisible.
This should simplify state management -- unless of course there are
exceptions which there will be and will require having some sort of
"Sticky<T>" component that says "When this state transition occurs,
don't touch this one entity"