Source code for mini_arcade_core.runtime.scene.scene_query_port
"""
Scene query port protocol.
"""
from __future__ import annotations
from typing import Protocol, Sequence, runtime_checkable
from mini_arcade_core.engine.scenes.models import SceneEntry
[docs]
@runtime_checkable
class SceneQueryPort(Protocol):
"""Read-only queries over the engine scene stack."""
[docs]
def visible_entries(self) -> Sequence[SceneEntry]:
"""
Scenes that should be rendered (policy-aware).
:return: Sequence of SceneEntry instances that are visible.
:rtype: Sequence[SceneEntry]
"""
[docs]
def input_entry(self) -> SceneEntry | None:
"""
The scene that currently receives input (top-most eligible).
:return: SceneEntry that receives input, or None if stack is empty.
:rtype: SceneEntry | None
"""
[docs]
def stack_summary(self) -> list[str]:
"""
Convenience: human-readable stack lines for debug overlays.
:return: List of strings summarizing the scene stack.
:rtype: list[str]
"""