{"success":true,"message":"템플릿 라우트 정보를 조회했습니다.","data":{"version":"1.0.0","routes":[{"_comment":"=== 홈 ===","path":"\/","layout":"home","auth_required":false,"meta":{"title":"$t:user.home.page_title"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 인증 ===","path":"\/login","layout":"auth\/login","auth_required":false,"guest_only":true,"meta":{"title":"$t:user.auth.login_title"},"source":{"kind":"template","identifier":null}},{"path":"\/register","layout":"auth\/register","auth_required":false,"guest_only":true,"meta":{"title":"$t:user.auth.register_title"},"source":{"kind":"template","identifier":null}},{"path":"\/forgot-password","layout":"auth\/forgot_password","auth_required":false,"guest_only":true,"meta":{"title":"$t:user.auth.forgot_password_title"},"source":{"kind":"template","identifier":null}},{"_comment":"아이디·비밀번호 찾기 안내 (발주 2026-09-14) — 사이드바\/모바일 메뉴의 두 링크가 여기로 온다. 종전에는 라우트가 없어 404 였다.","path":"\/find-id","layout":"auth\/find_id","auth_required":false,"guest_only":false,"meta":{"title":"아이디·비밀번호 찾기"},"source":{"kind":"template","identifier":null}},{"_comment":"비밀번호 찾기도 같은 안내 화면이다(메일 재설정 흐름은 \/forgot-password 로 그대로 남아 있다).","path":"\/find-pw","layout":"auth\/find_id","auth_required":false,"guest_only":false,"meta":{"title":"아이디·비밀번호 찾기"},"source":{"kind":"template","identifier":null}},{"path":"\/reset-password","layout":"auth\/reset_password","auth_required":false,"guest_only":true,"meta":{"title":"$t:user.auth.reset_password_title"},"source":{"kind":"template","identifier":null}},{"path":"\/identity\/challenge","layout":"auth\/identity_challenge","auth_required":false,"meta":{"title":"$t:user.identity.challenge.title"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 포인트게임 === 게임 목록과 게임 화면(같은 페이지, ?game=slug)","path":"\/point-games","layout":"point_games\/index","auth_required":false,"meta":{"title":"포인트게임"},"source":{"kind":"template","identifier":null}},{"_comment":"=== Point & Event ===","path":"\/point-ranking","layout":"point_ranking","auth_required":false,"meta":{"title":"여탑 랭킹"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 회원 접속 진단(2026-11-07) — 관리자가 특정 회원에게 보낸 링크(\/diagnose#k=토큰)로만 들어온다. ⛔ auth_required 금지: 로그인 페이지로 넘기면 #k= 가 사라진다 — 레이아웃이 loginGate 팝업을 쓴다 ===","path":"\/diagnose","layout":"diagnose\/index","auth_required":false,"meta":{"title":"접속 진단"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 레벨정보 — 푸터 전용 메뉴(2026-10-24 「하단 전용 메뉴 4종」 요청서 3번). 상단 메뉴 · 게시판 목록에는 없다 ===","path":"\/level-info","layout":"level_info","auth_required":false,"meta":{"title":"레벨정보"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 이벤트 ===","path":"\/events","layout":"events\/index","auth_required":false,"meta":{"title":"이벤트"},"source":{"kind":"template","identifier":null}},{"_comment":"41차 WO-07 — 이벤트 배너 전용 화면(즉석복권 · 오늘의 미션). ⚠️ \/events\/:id 보다 앞에 둔다(라우터는 배열 순서대로 첫 일치 — 뒤에 두면 상세가 route.id=lottery 로 잡는다). ⭐ 10-30 통합 요청서(WO-01) — 두 주소 모두 통합 레이아웃 events\/mission(위 일일미션 · 아래 복권 긁기). \/events\/lottery 로 들어오면 복권 구역으로 내려간다. redirect 를 쓰지 않는 까닭: 대상에 ? 가 있으면 RouteResolver 가 원래 질의(?event=)를 버린다. events\/lottery.json 은 더 안 쓴다(되돌리기용으로 남김).","path":"\/events\/lottery","layout":"events\/mission","auth_required":false,"meta":{"title":"일일미션 · 복권"},"source":{"kind":"template","identifier":null}},{"path":"\/events\/mission","layout":"events\/mission","auth_required":false,"meta":{"title":"일일미션 · 복권"},"source":{"kind":"template","identifier":null}},{"path":"\/events\/always\/write","layout":"events\/always_form","auth_required":true,"meta":{"title":"상시이벤트 작성"},"source":{"kind":"template","identifier":null}},{"path":"\/events\/always\/:id\/edit","layout":"events\/always_form","auth_required":true,"meta":{"title":"상시이벤트 수정"},"source":{"kind":"template","identifier":null}},{"path":"\/events\/always\/review\/:id","layout":"events\/always_review","auth_required":true,"meta":{"title":"당첨자 후기 작성"},"source":{"kind":"template","identifier":null}},{"path":"\/events\/:id","layout":"events\/show","auth_required":false,"meta":{"title":"이벤트"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 출석부 ===","path":"\/attendance","layout":"attendance","auth_required":false,"meta":{"title":"출석부"},"source":{"kind":"template","identifier":null}},{"path":"\/business-roster","layout":"business_roster","auth_required":false,"meta":{"title":"매니저 출근부"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 업소 ===","path":"\/businesses","layout":"businesses\/index","auth_required":false,"meta":{"title":"업소 검색"},"source":{"kind":"template","identifier":null}},{"path":"\/businesses\/:id","layout":"businesses\/show","auth_required":false,"meta":{"title":"업소 상세"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 라이브 방송 목록 (sirsoft-live) — 방송 중 우선, 최근 종료 포함. 공개 ===","path":"\/live","layout":"live\/index","auth_required":false,"source":{"kind":"template","identifier":null}},{"_comment":"=== 라이브 방송 시청 (sirsoft-live) — 비로그인은 컴포넌트가 로그인 팝업을 연다 ===","path":"\/live\/:id","layout":"live\/watch","auth_required":false,"meta":{"title":"라이브 방송"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 게시판 ===","path":"\/boards","layout":"board\/boards","auth_required":false,"meta":{"title":"$t:user.board.boards_title"},"source":{"kind":"template","identifier":null}},{"path":"\/boards\/popular","layout":"board\/popular","auth_required":false,"meta":{"title":"$t:user.board.popular_title"},"source":{"kind":"template","identifier":null}},{"path":"\/board\/:slug","layout":"board\/index","auth_required":false,"meta":{"title":"$t:user.board.list_title"},"source":{"kind":"template","identifier":null}},{"path":"\/board\/:slug\/write","layout":"board\/form","auth_required":false,"meta":{"title":"$t:user.board.write_title"},"source":{"kind":"template","identifier":null}},{"path":"\/board\/:slug\/:id","layout":"board\/show","auth_required":false,"meta":{"title":"$t:user.board.show_title"},"source":{"kind":"template","identifier":null}},{"path":"\/board\/:slug\/:id\/edit","layout":"board\/form","auth_required":false,"meta":{"title":"$t:user.board.edit_title"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 쇼핑몰 ===","path":"\/{{_global.modules?.['sirsoft-ecommerce']?.basic_info?.no_route ? '' : (_global.modules?.['sirsoft-ecommerce']?.basic_info?.route_path ?? 'shop')}}\/products","layout":"shop\/index","auth_required":false,"meta":{"title":"$t:user.shop.list_title"},"source":{"kind":"template","identifier":null}},{"path":"\/{{_global.modules?.['sirsoft-ecommerce']?.basic_info?.no_route ? '' : (_global.modules?.['sirsoft-ecommerce']?.basic_info?.route_path ?? 'shop')}}\/category\/:slug","layout":"shop\/category","auth_required":false,"meta":{"title":"$t:user.shop.category_title"},"source":{"kind":"template","identifier":null}},{"path":"\/{{_global.modules?.['sirsoft-ecommerce']?.basic_info?.no_route ? '' : (_global.modules?.['sirsoft-ecommerce']?.basic_info?.route_path ?? 'shop')}}\/products\/:id","layout":"shop\/show","auth_required":false,"meta":{"title":"$t:user.shop.show_title"},"source":{"kind":"template","identifier":null}},{"path":"\/{{_global.modules?.['sirsoft-ecommerce']?.basic_info?.no_route ? '' : (_global.modules?.['sirsoft-ecommerce']?.basic_info?.route_path ?? 'shop')}}\/cart","layout":"shop\/cart","auth_required":false,"meta":{"title":"$t:user.shop.cart_title"},"source":{"kind":"template","identifier":null}},{"path":"\/{{_global.modules?.['sirsoft-ecommerce']?.basic_info?.no_route ? '' : (_global.modules?.['sirsoft-ecommerce']?.basic_info?.route_path ?? 'shop')}}\/checkout","layout":"shop\/checkout","auth_required":true,"meta":{"title":"$t:user.shop.checkout_title"},"source":{"kind":"template","identifier":null}},{"path":"\/{{_global.modules?.['sirsoft-ecommerce']?.basic_info?.no_route ? '' : (_global.modules?.['sirsoft-ecommerce']?.basic_info?.route_path ?? 'shop')}}\/orders\/:id\/complete","layout":"shop\/order_complete","auth_required":true,"meta":{"title":"$t:user.shop.order_complete_title"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/ads","layout":"mypage\/ads","auth_required":true,"meta":{"title":"업소 소개 관리"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/ad-reviews","layout":"mypage\/ad-reviews","auth_required":true,"meta":{"title":"리뷰관리"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/ad-roster","layout":"mypage\/ad-roster","auth_required":true,"meta":{"title":"출근부 관리"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/friends","layout":"mypage\/friends","auth_required":true,"meta":{"title":"친구"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/events","layout":"mypage\/events","auth_required":true,"meta":{"title":"이벤트"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/always-events","layout":"mypage\/always-events","auth_required":true,"meta":{"title":"이벤트 운영"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/live","layout":"mypage\/live","auth_required":true,"meta":{"title":"라이브 방송"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 마이페이지 ===","path":"\/mypage","redirect":"\/mypage\/profile","auth_required":true,"meta":{"title":"$t:user.mypage.page_title"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/profile","layout":"mypage\/profile","auth_required":true,"meta":{"title":"$t:user.mypage.profile_title"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/profile\/edit","layout":"mypage\/profile-edit","auth_required":true,"meta":{"title":"$t:user.mypage.profile_edit_title"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/change-password","layout":"mypage\/change-password","auth_required":true,"meta":{"title":"$t:user.mypage.change_password_title"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/orders","layout":"mypage\/orders","auth_required":true,"meta":{"title":"$t:mypage.tabs.orders"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/orders\/:order_number","layout":"mypage\/orders\/show","auth_required":true,"meta":{"title":"$t:mypage.tabs.orders"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/addresses","layout":"mypage\/addresses","auth_required":true,"meta":{"title":"$t:mypage.tabs.addresses"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/favorites","layout":"mypage\/favorites","auth_required":true,"meta":{"title":"관심업소"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/notifications","layout":"mypage\/notifications","auth_required":true,"meta":{"title":"$t:user.mypage.notifications_title"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/board","layout":"mypage\/board","auth_required":true,"meta":{"title":"$t:user.mypage.board_title"},"source":{"kind":"template","identifier":null}},{"path":"\/mypage\/inquiries","layout":"mypage\/inquiries","auth_required":true,"meta":{"title":"$t:user.mypage.inquiries_title"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 사용자 프로필 ===","path":"\/users\/:userId","layout":"users\/show","auth_required":false,"meta":{"title":"$t:user.profile.page_title"},"source":{"kind":"template","identifier":null}},{"path":"\/users\/:userId\/posts","layout":"users\/posts","auth_required":false,"meta":{"title":"$t:user.profile.posts_page_title"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 페이지 ===","path":"\/page\/:slug","layout":"page\/show","auth_required":false,"meta":{"title":"$t:user.page.page_title"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 검색 ===","path":"\/search","layout":"search\/index","auth_required":false,"meta":{"title":"$t:user.search.page_title"},"source":{"kind":"template","identifier":null}},{"_comment":"=== 에러 페이지 ===","path":"\/404","layout":"errors\/404","auth_required":false,"meta":{"title":"$t:user.errors.not_found_title"},"source":{"kind":"template","identifier":null}},{"path":"\/403","layout":"errors\/403","auth_required":false,"meta":{"title":"$t:user.errors.forbidden_title"},"source":{"kind":"template","identifier":null}},{"path":"\/500","layout":"errors\/500","auth_required":false,"meta":{"title":"$t:user.errors.server_error_title"},"source":{"kind":"template","identifier":null}},{"path":"*\/preview\/:token","layout":"__preview__","auth_required":false,"meta":{"title":"Preview","is_system_route":true},"source":{"kind":"core","identifier":null}}]}}