Tag component
A component with no data, whose only job is to be present on an entity or not.
In an ECS systems pick entities by which components they carry. An empty type such as Enemy or Dead is therefore enough to decide which systems touch an entity — no field, no flag, just presence. EnTT, Flecs and Unity DOTS all special-case such types and allocate no storage for them.
The catch is in archetype-based engines. Adding or removing a tag changes the entity's archetype, and all of its data has to move to a different chunk of memory. Anyone tagging and untagging thousands of entities per frame finds that the cheapest thing in theory became the most expensive in practice. Unity responded with components that can be switched on and off without moving anything; sparse-set engines suffer less to begin with.