Creates an instance of MoveToTraceContextCommand.
The context in which the move operation is performed.
The braille service to check enabled state.
The display service for managing focus.
Plays the enter tone and announces the entered subplot.
Executes the move operation to enter the subplot trace context. If braille was previously enabled, directly updates the braille service with the new trace's data, then restores braille display focus.
Note: we update the braille service directly rather than calling notifyStateUpdate() on the trace, because notifying all observers would also trigger AudioService (playing a data tone on entry) and other services. Only the braille display needs to be refreshed here. The entry cue below is a distinct navigational tone, not a data tone.
On a successful entry (from the multi-panel lobby) it also plays the "enter subplot" cue and announces which subplot was activated, so the transition is not silent.
Command to move into the trace context (activate a subplot from the multi-panel figure lobby).
Besides Context it injects BrailleService, DisplayService, AudioService, and NotificationService, because it drives braille refresh, focus, the enter cue, and the entry announcement itself. It cannot lean on the model's notifyStateUpdate() to fan these out, because that would also fire the data audio tone (and other observers) on entry — so the command performs the needed feedback explicitly.