# ADR-0004 — Phase 2 범위·완성 기준

상태: **Accepted (2026-05-08)**

---

## 결정

Phase 2 = **Pro 차별화 + 외부 신호 확장 + 영어 로컬화**의 코드 골격 + 자동 검증.
사용자 GUI에서만 가능한 시각 시연·UX 평가는 Phase 2 외 (사용자 검증 영역).

## 완성 기준 (체크리스트)

### A. Pro 시뮬레이션 — 시간 기반 시퀀스

- [ ] `TimedSequence` 데이터 모델 — 각 단계마다 어떤 motor가 언제 켜지고 꺼지는지
- [ ] `SequencePlayer` — Update tick에서 시간 진행 + EventBus.Publish 자동
- [ ] Inspector에 시퀀스 편집 패널 (단계 추가/삭제/시간/액션)
- [ ] 단위 테스트: 시퀀스 진행 + 종료 + loop

### B. Pro 시뮬레이션 — MeshCollider 정적 검증 모드

- [ ] `MeshColliderBuilder` — AABB BoxCollider를 MeshCollider로 일괄 교체 (정적 모드 한정)
- [ ] Inspector Toolbar 토글 — "정적 검증 모드" / "동적 모드"
- [ ] AABB 모드 ↔ Mesh 모드 전환 비파괴

### C. PLC/IO 어댑터 인터페이스

- [ ] `IPlcAdapter` 추상 — Read/Write 비트·워드 + 이벤트 콜백
- [ ] `MockPlcAdapter` — 키보드/스크립트로 PLC 신호 시뮬
- [ ] `PlcEventBridge` — PLC 신호 → MotionEvent 매핑 + 역방향
- [ ] 단위 테스트: PLC 비트 → Motor on/off 매핑

### D. AABB 충돌 토스트 UI

- [ ] `CollisionToast.cs` — CollisionEvent 구독 → 화면 우상단 알림
- [ ] UXML/USS 토스트 (3초 fade out)
- [ ] Phase 1 통합 테스트에 충돌 토스트 검증 추가

### E. Constraint 노드 그래프 UI (선행 PoC)

- [ ] UI Toolkit GraphView 1픽셀 — 부품·구속 시각화
- [ ] 노드 드래그 + 연결선 표시 (편집 미구현)
- [ ] **MVP 외 — Pro 차별화로 시각만 PoC**

### F. 영어 로컬화

- [ ] `LocalizationManager.cs` + JSON 키 SSOT
- [ ] 한글/영어 2종 (`ko.json`, `en.json`)
- [ ] InspectorWindow 모든 라벨 + Toolbar + 검색 placeholder + Toast 메시지
- [ ] 키 자동 추출 검증 (단위 테스트)

### G. 자동 검증

- [ ] Phase 2 통합 테스트 (TimedSequence + PLC bridge + 충돌 토스트)
- [ ] Unit Tests 30+/30+ PASS (기존 20 + Phase 2 신규)
- [ ] Unity batch -quit 컴파일 8차 누적 클린

### H. 협업자 자료

- [ ] Phase 2 완성 ADR-phase2-completion
- [ ] README Phase 2 섹션 추가
- [ ] 보고 페이지 R2 박스 Phase 2 행 추가
- [ ] PDF v2.x 재생성 (Funnel 200 검증)
- [ ] 영어 시연 시나리오 (영어 협업자용)

## Phase 2 외 (사용자 PC GUI 영역)

- Inspector 시퀀스 편집기 사용성 검증
- PLC 실 장비 연동 (시뮬레이터 단계까지만 자율 진행)
- 노드 그래프 편집 UX (PoC만 자율 진행)
- 60fps 측정 + 최적화 — DOTS/Job 도입 여부는 측정 후 판단

## Phase 3 입력 (Phase 2 사용자 검증 통과 후)

- 실 PLC 장비 연동 (Modbus TCP, OPC UA 라이브러리 통합)
- 노드 그래프 편집 + 양방향 sync (PoC → 실용 단계)
- WebGL 빌드 (잠재 — 산업용 트윈 사용성 별도 검증)
- 라이선스 모델 결정 + Pro/Free 기능 플래그 분기
- DOTS/ECS 마이그레이션 (60fps 미달 시)

## 결정 이유

- 사용자 명시 (2026-05-08): "다음 자율진행 phase2 달성시까지"
- Phase 2 범위가 무한대로 폭주하지 않도록 **자율 검증 가능 영역**으로 한정
- Pro 차별화 4종 (TimedSequence / MeshCollider / PLC / NodeGraph)을 Phase 2 코어로 묶음 — 영업 자료에 "Pro 라이선스 4대 기능 검증" 카드 가능
- 영어 로컬화는 협업자 BD 영업 자료가 영어권 잠재 고객에 닿을 수 있다고 가정해 Phase 2에 포함

## 참고

- ADR-0003 — Phase 1 MVP 완성
- ADR-0001 — 제품 비전 (4원칙)
- ADR-0002 — 물리 정책 (운동학 + 토크 후처리)
- ADR-cad-0002 — 변환 옵션 default
