export const GAME_SESSION_STORAGE_KEY = 'dragon_ball_game_session_v2'; export const GAME_CHECKPOINT_KEY = 'dragon_ball_checkpoint_v2'; export const PENDING_RESULT_KEY = 'dragon_ball_pending_result_v2'; export const GAME_ROOM_KEY = 'dragon_ball_room_v2'; export const GAME_SESSION_TTL_MS = 90 * 24 * 60 * 60 * 1000; export const RESULT_RETRY_DELAYS_MS = [2000, 5000, 10000, 30000] as const; export const GAME_API_MESSAGES: Record = { INVALID_SESSION: '접속 정보가 만료되었습니다. 새로 접속하세요.', MATCH_PENDING: '이전 대전 기록을 저장한 뒤 다시 시도하세요.', RESULT_CONFLICT: '이미 저장된 결과와 다릅니다.', NO_ACTIVE_MATCH: '현재 대전을 확인하세요.', ROOM_NOT_FOUND: '방 코드를 확인하세요.', ROOM_FULL: '이미 참가자가 있는 방입니다.', SELF_JOIN: '자신의 방에는 참가할 수 없습니다.', ROOM_EXPIRED: '방이 만료되었습니다. 새 방을 만드세요.', SERVER_ERROR: '처리하지 못했습니다. 다시 시도하세요.', INVALID_PROFILE: '프로필 정보를 확인하세요.', PROFILE_NAME_READONLY: '이름은 자동으로 지정되며 변경할 수 없습니다.', INVALID_APPEARANCE: '캐릭터, 머리, 도복색과 장비를 확인하세요.', COLOR_LOCKED: '아직 획득하지 않은 도복입니다.', EQUIPMENT_LOCKED: '아직 획득하지 않은 장비입니다.', INVALID_ACTION: '현재 선택할 수 없는 행동입니다.', ACTION_LOCKED: '이미 선택한 행동은 바꿀 수 없습니다.', RANKED_CLOSED: '랭킹 대전을 이용할 수 없습니다. 잠시 후 다시 시도하세요.', };