Systems currently require a component of each type for an entity to be valid. Systems should define a list of required and optional component types.
Example use case: Sound components can be spatial or non-spatial. The SoundSystem should accept entities with and without TransformComponents. An entity with a transform component and a sound component can emit spatial or non-spatial audio, while an entity that has a sound component without a transform component can only emit non-spatial audio.
Systems currently require a component of each type for an entity to be valid. Systems should define a list of required and optional component types.
Example use case: Sound components can be spatial or non-spatial. The SoundSystem should accept entities with and without TransformComponents. An entity with a transform component and a sound component can emit spatial or non-spatial audio, while an entity that has a sound component without a transform component can only emit non-spatial audio.