# v0.1.521 — S0048/S0012 C6a 4탭 매핑 에디터 + critic 치명/중대 fix

- 버전: v0.1.521
- 날짜: 2026-06-03
- 다운로드: [factory00-windows-x64-v0.1.521.zip](../../downloads/factory00-windows-x64-v0.1.521.zip) (170 MB)
- 캡처: [qa-screenshots/v0.1.521/](../../qa-screenshots/v0.1.521/)

---

## 핵심 변경
- 신규 `PlcAddressMappingPanel` 4탭 PLC 어드레스 매핑 에디터 (출력/입력/데이터출력/데이터입력) — 컴포넌트 Inspector "통신 어드레스 설정" 버튼이 여는 표시 UI
- 좌측 컴포넌트 목록(6종) + 우측 활성 탭 매핑 표 (주소/포트/컴포넌트) — `_plcAddressMap`(SSOT) 조회. classifyTab = Device→탭
- `OpenAddressMappingEditorEvent` 구독 → lazy build + Show. 명명 핸들러 → OnDestroy 해제
## critic 코드리뷰 fix (CONDITIONAL → 처리)
- 치명#1 (구식 ModbusAddressMappingPanel 동좌표 겹침) → 상호 배타 Hide 배선 (새 패널 열 때 구식 Hide / 구식 열 때 새 패널 Hide)
- 중대#1 (표시 레이어가 SSOT mutate, SoC) → 패널 Register 호출 제거 → Bootstrap 핸들러에서 PopulatePlcAddressMapFromLegacyFields 선행 (패널 순수 표시)
- 치명#2(Render-on-Show 리셋)=오판(_activeTab 필드 유지) / 중대#2(Vacuum 비대상)·#3(Modbus 의존)·#4=scope·defer
## 영향 파일
- `Assets/Scripts/Plc/PlcAddressMappingPanel.cs` (신규)
- `Assets/Scripts/Game/Factory00Bootstrap.cs` (필드 + Awake 구독 + 명명 핸들러 + OnDestroy 해제 + 구식버튼 Hide)
## S0048 진행
- C1~C5 + **C6a**(4탭 에디터 표시, critic PASS) 완료. 다음 **C6b**(드래그앤드롭 할당 + 자동 연속 할당)
- spec S0012 r006 §3 / S0048 §6. spec WHAT 충족, HOW 코드 최적 (spec-implementation-judgment)
