swapComps<A extends Comp<T> > method
Removes all the top-level components of type A and adds newC.
No-op if no component of type A exists.
Implementation
E swapComps<A extends Comp<T>>(Comp<T> newC) {
final oldComps = getAll<A>();
if (oldComps.isEmpty) return self;
oldComps.forEach(_removeComponentInstance);
addComp(newC);
return self;
}