# Game Frontend SPA Plan 이 문서는 `app/game-frontend`를 Vue 3 + Pinia + Vue Router 기반 SPA로 구축하기 위한 지속 사용 가능한 작업 플랜이다. 레거시 화면(`legacy/hwe`)과 문서(`docs/`)를 기준으로 화면 목록, 인증/권한 분기, 데이터 계약을 정리하고 단계별 구현 순서를 정의한다. ## Goals - 레거시 화면과 정보 제공 범위를 보존하면서 SPA로 재구성한다. - 인증 상태별 정보 공개 범위를 엄격히 분리한다. - API 통신은 tRPC로 통일하고, 추후 SSE 실시간 업데이트 경로를 고려한다. - UI/레이아웃은 레거시와 유사하게 유지하되, 정보 구조는 SPA에 맞게 재배치 가능. ## Reference Sources - Legacy view entrypoints: `legacy/hwe/{b_,v_,a_,index}*.php` - Legacy Vue/TS sources: `legacy/hwe/ts/`, `legacy/hwe/ts/components/` - Docs: `docs/architecture/overview.md`, `docs/architecture/rewrite-plan.md`, `docs/architecture/runtime.md`, `docs/architecture/legacy-engine*.md` ## User State Matrix - Public (미로그인/장수 미생성): 공개 정보만 노출 - 레거시 기준: 10분 캐시 지도 + 동향(최소 정보) - Authed (로그인 + 장수 생성): 대부분의 정보 접근 허용 - Admin/GM: 운영자 전용 화면 및 도구 (후순위) ## Legacy Screen Inventory (Route 후보) 정확한 데이터 흐름/권한은 각 PHP 엔트리포인트와 연관 TS 컴포넌트에서 확인한다. - `legacy/hwe/index.php` - `legacy/hwe/v_cachedMap.php` - `legacy/hwe/v_join.php` - `legacy/hwe/v_processing.php` - `legacy/hwe/v_board.php` - `legacy/hwe/v_history.php` - `legacy/hwe/v_vote.php` - `legacy/hwe/v_auction.php` - `legacy/hwe/v_battleCenter.php` - `legacy/hwe/v_chiefCenter.php` - `legacy/hwe/v_globalDiplomacy.php` - `legacy/hwe/v_inheritPoint.php` - `legacy/hwe/v_NPCControl.php` - `legacy/hwe/v_nationBetting.php` - `legacy/hwe/v_nationGeneral.php` - `legacy/hwe/v_nationStratFinan.php` - `legacy/hwe/v_troop.php` - `legacy/hwe/a_bestGeneral.php` - `legacy/hwe/a_emperior.php` - `legacy/hwe/a_emperior_detail.php` - `legacy/hwe/a_genList.php` - `legacy/hwe/a_hallOfFame.php` - `legacy/hwe/a_kingdomList.php` - `legacy/hwe/a_npcList.php` - `legacy/hwe/a_traffic.php` - `legacy/hwe/b_betting.php` - `legacy/hwe/b_currentCity.php` - `legacy/hwe/b_genList.php` - `legacy/hwe/b_myBossInfo.php` - `legacy/hwe/b_myCityInfo.php` - `legacy/hwe/b_myGenInfo.php` - `legacy/hwe/b_myKingdomInfo.php` - `legacy/hwe/b_myPage.php` - `legacy/hwe/b_tournament.php` ## Architecture Decisions (SPA) - Vue 3 + `