Source code for mini_arcade_core.scenes.systems.system_bundle
"""
Bundle primitives for grouping scene systems without treating them as one system.
"""
from __future__ import annotations
from typing import Generic, Iterable, Protocol, runtime_checkable
from .base_system import BaseSystem, TSystemContext
[docs]
@runtime_checkable
class SystemBundle(Protocol, Generic[TSystemContext]):
"""
Structural contract for a bundle that expands into multiple systems.
"""
[docs]
def iter_systems(self) -> Iterable[BaseSystem[TSystemContext]]:
"""
Return the concrete systems that should be added to the pipeline.
"""