macro_rules! define_systems {
( before_init: $before_init:path,
prepare_events: $prepare_events:path,
$( $name:ident => $behavior:path {
gate: $gate:path,
present_when: $present_when:literal,
after: [ $( $after:ident ),* $(,)? ],
before: [ $( $before:ident ),* $(,)? ] $(,)?
} ),* $(,)? ) => { ... };
}Expand description
The system table. Generates the SYSTEMS table a world starts from; table
order is run order.
The two leading fields are the load-time passes that bracket the systems:
one that runs over the world once the gates have built them and before
their init, and one that pre-creates the event queues a scheduled
system’s declared access can touch.
Every system is internal: it has no declarable asset, is never parsed from a
world or written to a blob, and is constructed by its gate from world
content. Each entry maps a name to the behavior type that implements
System, the gate that builds it, and a human-readable gate description;
the entry name doubles as the system’s stable display name for profiling and
logging.