observesScreen method
"May a MISSION look?" — only the host's explicit EXCLUSIONS apply:
disabledRoutes matching the current route or the detected screen name,
or an excluded named popup open on top. Absence from the enabled-route
list / platform allowlist does NOT blind a mission (Android SnapshotPump
parity: absence from an include list is a default, an exclusion is a
decision). Without this, a mission that navigates off the allowlist
could not see the screen it just opened and every later step failed.
Implementation
bool observesScreen(String screen) =>
!routes.isCurrentRouteDisabled &&
!routes.isRouteDisabled(screen.trim()) &&
!hasExcludedPopupOpen;