An aspect for matching entities' components against. This is used to check if a system is interested in processing an entity.
This can be constructed by using the Aspect.build(_)
macro.
Using this, you can build a aspect from a binary operation representing
the combination of types this will expect.
Binary Syntax
All of...
Aspect.build(Position & Velocity);
One of...
Aspect.build(Position | Velocity);
None of...
Aspect.build(!Position);
Alternate syntax
Aspect.build({
all: [Position, Velocity, Gravity, Physical],
none: Frozen
})