# Phase 9.0 Boot And Title Contract ## State Boundary ```text boot_verifying -> title_no_run -> new_game_contract ``` Boot verifies the required local scene, domain, world, actor, equipment and embedded UI font resources in stable order. A failed check retains the failed path and offers a real Retry action. A successful check presents a real `10 / 10 resources ready` terminal before entering Title. Boot itself spends nothing and creates no save or run. Title exposes: - `AETHERBOUND GUILD / 裂脉远征团`; - local-content verified status; - `No expedition yet / 尚无远征记录`; - one primary `Start New Game / 开始新游戏` action; - real language, text-scale, reduced-motion and mute controls. There is no fake Continue action when no run exists. `Start New Game` changes only the current page and opens the existing Contract state with Coin `52`, Company `0/4`, no selected Contract, no difficulty and no Recruit offers open. When Title appears, `Start New Game` owns initial keyboard/controller focus; all four accessibility controls remain real touch targets. ## Presentation The world is full-bleed. UI copy occupies clear ground and is not placed in a large decorative card. The title uses the accepted Japanese 2D guild/route direction; the existing clean Windglass world asset is the temporary runtime background. The Phase 6 title master controls composition only because its baked HUD, buttons, text and numbers are not legal runtime controls. The first read is the working route/world, the second is product identity, and the third is current run state plus the primary action. Compact accessibility tools remain visible without becoming the focal point. ## Test Markers - `ABG_P9_0_BOOT_TITLE_OK`: ordered checks, verified transition, no-run truth, presentation-only settings and exact Contract-entry snapshot. - `ABG_P9_0_TOUCH_OK`: parsed ScreenTouch changes settings and reaches Contract with fallback/direct zero. - `ABG_P9_0_LAYOUT_OK`: Boot and Title fit all declared fixtures. - `ABG_P9_0_RUNTIME_CAPTURE_OK`: normal renderer captures Boot and Title with clean diagnostics. Tests may directly arrange a render fixture only when they claim no input. Touch evidence must use `Input.parse_input_event` ScreenTouch.