import type { SystemBuilder } from './system-builder'; import type { AnyECSpresso, ConfigOf, EmptyConfig, WorldConfig } from './type-utils'; import type { SystemPhase } from './types'; /** * Defaults applied to every system created through a plugin installation or * a system registration scope. Registration scopes snapshot these values; * per-system builder calls override them. */ export interface SystemDefaults { inScreens?: ReadonlyArray; excludeScreens?: ReadonlyArray; phase?: SystemPhase; priority?: number; } /** * Narrow capability for application modules that only register systems. */ export interface SystemRegistrar { addSystem(label: string): SystemBuilder; } /** * Extract a system registrar with the complete configuration of a built world. */ export type SystemRegistrarOf = SystemRegistrar>;