from typing import Any, Callable, TypedDict class MenuResult(TypedDict, total=False): status: str message: str request: dict[str, Any] destination: str button_text: str profile_id: int refresh: bool clear_selection: bool is_enabled: bool busy: bool package_name: str ticket_number: str billing_code: str sync_data: tuple[list, list, bool, bool, list, list] MenuCallback = Callable[[MenuResult], None] def failure(message: str, request: dict[str, Any]) -> MenuResult: """Keep failures explicit so the GUI never infers success from status text.""" return {"status": "error", "message": message, "request": dict(request)}