import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import '../config/feature_flags.dart'; import '../../features/auth/auth_repository.dart'; import '../../features/auth/login_screen.dart'; import '../../features/galaxy/galaxy_screen.dart'; import '../../features/home/home_screen.dart'; import '../../features/inside/inside_screen.dart'; import '../../features/my/my_screen.dart'; import '../../features/station/station_screen.dart'; /// 하단 탭 하나. class AppTab { const AppTab({ required this.label, required this.path, required this.icon, this.gatedBy, }); /// **계약 고정 문자열.** 한글화·치환·순서 변경 금지. final String label; final String path; final IconData icon; /// 이 탭을 여는 원격 플래그. null 이면 항상 보인다. /// /// 플래그가 붙어도 [appTabs]·라우트·저장소는 그대로 남는다 — 별첨 B v1.4 가 /// STATION 에 대해 「Route/데이터 구조만 유지」를 요구했기 때문이다. final bool Function(FeatureFlags flags)? gatedBy; } /// 계약 고정 5탭. /// /// 근거 3개가 서로 일치한다: /// - 견적서 v2.1 「5탭 네비게이션」 /// - `design/craft-allowlist.yaml` → `APP_TABS: [HOME, INSIDE, GALAXY, STATION, MY]` /// - 시안 `시안/screens/S-*.html` 의 `