Appearance
Play targets
The editor's top playback toolbar separates the playback platform, target variant, Play/Stop, and Reload commands.
Select the first compact dropdown to switch immediately between Desktop and Mobile. The adjacent compact selector changes with that choice:
- Desktop layout includes embedded tab, embedded split-left, embedded split-right, embedded split-bottom, pop-out window, and the deliberately external web-browser target.
- Mobile device lists installed iOS simulators, discovered Android devices/emulators, and detected physical iPhones. The toolbar remains compact; the full target name and status are exposed in the dropdown and accessibility value.
- Opening any playback dropdown is cache-only and immediate. Device discovery runs asynchronously after the chrome starts and when Refresh devices is selected, then replaces the cached snapshot and emits
deviceListChangedafter mutation. - Mobile setup opens the detailed device and SDK configuration surface when a device is missing or needs configuration.
The Play button launches the currently selected target. While idle, Stop is not present. Once playback starts, Stop replaces Play in the same toolbar position. For a running embedded or pop-out desktop Player, Reload appears beside Stop and sends the canonical RELOAD_SCENE command without stopping the Player process. Reload is absent when no native desktop Player is running. Mobile build and run progress continues through the mobile build surface.
Playback state is event-driven: changing Desktop/Mobile mutates the platform preference before platformChanged, selecting a concrete layout/device mutates selection before targetChanged, and Play/Stop/Reload requests emit playCommandRequested. The Player returns RELOAD_SCENE_COMPLETED, after which the editor emits playCommandCompleted with the result. Device cache replacement likewise occurs before deviceListChanged. The chrome owns and cancels these subscriptions during teardown.
The current iOS deployment bridge targets CoreSimulator. A physical iPhone detected by xctrace remains visible but disabled, with an Offline or unsupported-runner reason as appropriate. Use Xcode for physical-device signing and deployment until ReGame's native physical-device runner is available. Android physical devices are enabled only when ADB reports them online.
For automation, use editor.playback.target for the Desktop/Mobile selector, editor.playback.layout for the desktop-layout selector, editor.playback.device for the mobile-device selector, plus editor.playback.play, editor.playback.stop, and editor.playback.reload. The currently open playback dropdown is published as playTargetDropdown; each target keeps a stable editor.playback.target.* automation id. These ids feed both the live-editor/MCP semantic tree and the native accessibility adapter.
