- generic [active] [ref=e1]:
  - checkbox "Toggle sidebar ⌘B" [checked=mixed] [ref=e2]
  - navigation [ref=e3]:
    - list [ref=e4]:
      - generic "Toggle sidebar ⌘B" [ref=e5]
      - listitem [ref=e6]:
        - link "Roomfit v2 — Spec Map" [ref=e7] [cursor=pointer]:
          - /url: ./
    - generic [ref=e8]:
      - searchbox "Search" [ref=e9]
      - text: ⌘K
    - list [ref=e11]:
      - listitem [ref=e12]:
        - link "개요" [ref=e13] [cursor=pointer]:
          - /url: ./
      - listitem [ref=e14]:
        - link "화면" [ref=e15] [cursor=pointer]:
          - /url: ./screens
      - listitem [ref=e16]:
        - link "Use case" [ref=e17] [cursor=pointer]:
          - /url: ./use-cases
      - listitem [ref=e18]:
        - link "시나리오" [ref=e19] [cursor=pointer]:
          - /url: ./scenarios
      - listitem [ref=e20]:
        - link "데이터 흐름" [ref=e21] [cursor=pointer]:
          - /url: ./data-flow
  - generic [ref=e22]:
    - banner [ref=e23]: Roomfit v2 Spec — 자동 추출 + 수동 보강
    - complementary [ref=e24]:
      - navigation [ref=e25]:
        - generic [ref=e26]: Contents
        - list [ref=e27]:
          - listitem [ref=e28]:
            - link "4-tier 그림" [ref=e29] [cursor=pointer]:
              - /url: "#4-tier"
          - listitem [ref=e30]:
            - link "시스템 한눈에" [ref=e31] [cursor=pointer]:
              - /url: "#"
          - listitem [ref=e32]:
            - link "메타" [ref=e33] [cursor=pointer]:
              - /url: "#-1"
    - main [ref=e34]:
      - heading "Roomfit v2 — Spec Map" [level=1] [ref=e35]:
        - link "Roomfit v2 — Spec Map" [ref=e36] [cursor=pointer]:
          - /url: "#roomfit-v2-spec-map"
      - generic [ref=e37]:
        - generic [ref=e38]:
          - heading "화면" [level=2] [ref=e39]
          - generic [ref=e40]: "26"
          - generic [ref=e42]: b2c 12 · b2b 14
        - generic [ref=e45]:
          - heading "Use case" [level=2] [ref=e46]
          - generic [ref=e47]: "17"
          - generic [ref=e49]: domain layer (packages/)
        - generic [ref=e50]:
          - heading "Provider" [level=2] [ref=e51]
          - generic [ref=e52]: "44"
          - generic [ref=e54]: b2c 17 · b2b 27
        - generic [ref=e57]:
          - heading "시나리오" [level=2] [ref=e58]
          - generic [ref=e59]: "53"
          - generic [ref=e61]: 테스트 71건에서 추출
      - generic [ref=e63]:
        - generic [ref=e64]:
          - heading "Command" [level=2] [ref=e65]
          - generic [ref=e66]: "34"
          - generic [ref=e68]: MCU 발사용
        - generic [ref=e69]:
          - heading "Response" [level=2] [ref=e70]
          - generic [ref=e71]: "18"
          - generic [ref=e73]: MCU 수신
        - generic [ref=e74]:
          - heading "Component" [level=2] [ref=e75]
          - generic [ref=e76]: "17"
          - generic [ref=e78]: design_system 공유
        - generic [ref=e79]:
          - heading "Feature" [level=2] [ref=e80]
          - generic [ref=e81]: "13"
          - generic [ref=e83]: app별 폴더
      - heading "4-tier 그림" [level=2] [ref=e84]:
        - link "4-tier 그림" [ref=e85] [cursor=pointer]:
          - /url: "#4-tier"
      - paragraph [ref=e86]: "각 다이어그램은 SQL 결과로 동적 생성:"
      - list [ref=e87]:
        - listitem [ref=e88]:
          - link "화면" [ref=e89] [cursor=pointer]:
            - /url: ./screens
          - text: — 폰 ↔ 코드 매칭, app별 카탈로그, 의존 provider/component
        - listitem [ref=e90]:
          - link "Use case" [ref=e91] [cursor=pointer]:
            - /url: ./use-cases
          - text: — domain class 어디서 쓰이는지 역추적
        - listitem [ref=e92]:
          - link "시나리오" [ref=e93] [cursor=pointer]:
            - /url: ./scenarios
          - text: — testWidgets 시나리오 시간축 + 거치는 화면
        - listitem [ref=e94]:
          - link "데이터 흐름" [ref=e95] [cursor=pointer]:
            - /url: ./data-flow
          - text: — MCU 0x41 → DeviceState → use case → UI 파이프
      - heading "시스템 한눈에" [level=2] [ref=e96]:
        - link "시스템 한눈에" [ref=e97] [cursor=pointer]:
          - /url: "#"
      - document [ref=e109]:
        - generic [ref=e121]:
          - paragraph [ref=e128]:
            - text: 🔌 MCU
            - text: (전류 = 토크 = 무게)
          - paragraph [ref=e135]:
            - text: roomfit_protocol
            - text: 34 cmd · 18 resp
          - paragraph [ref=e142]:
            - text: roomfit_device
            - text: DeviceState stream
          - paragraph [ref=e149]:
            - text: roomfit_workout
            - text: SetExecutor·SessionManager·RestDetector
          - paragraph [ref=e156]:
            - text: roomfit_exercise
            - text: VBT·RepSegmenter
          - paragraph [ref=e163]:
            - text: roomfit_shop
            - text: Center·Membership·Role
          - paragraph [ref=e170]:
            - text: b2c providers
            - text: "17"
          - paragraph [ref=e177]:
            - text: b2b providers
            - text: "27"
          - paragraph [ref=e184]:
            - text: b2c screens
            - text: "12"
          - paragraph [ref=e191]:
            - text: b2b screens
            - text: "14"
          - paragraph [ref=e198]:
            - text: design_system
            - text: 17 components
      - heading "메타" [level=2] [ref=e98]:
        - link "메타" [ref=e99] [cursor=pointer]:
          - /url: "#-1"
      - generic [ref=e200]:
        - text: 마지막 추출 2026-04-27T15:29:01.307241 · 소스 commit 552d536 · source_root
        - code [ref=e201]: /Volumes/WorkSSD/Projects/RoomfitV2
    - contentinfo [ref=e100]:
      - navigation [ref=e101]:
        - link "Next page 화면" [ref=e102] [cursor=pointer]:
          - /url: ./screens
          - text: Next page
          - generic [ref=e103]: 화면
      - generic [ref=e104]:
        - text: "Source: /Volumes/WorkSSD/Projects/RoomfitV2 · build via"
        - code [ref=e105]: make extract && npm run build