Expand description
Gate builders for the system table (define_systems! in registry). Each
gate inspects the world’s content and returns the constructed system when
its gating components are present, or None to leave it out of the
schedule. World::start and World::system_manifest both run these same
gates, so what the manifest reports and what start builds cannot drift.
Gates construct their system, so every system constructor must stay cheap
and side-effect-free: the manifest probe discards the value, and anything
heavy (device acquisition, payload reads) belongs in System::init.