# 등록 원본 외부 삭제 대응

원본 부재와 바이너리 존재를 별도로 판단합니다. 바이너리 파일만 있다는 이유로 등록을 정상으로 판단하거나 원본을 자동 재생성하지 않습니다. 기존 바이너리는 마지막 생성 시점의 런타임 값이며, 원본 수식·설명·표시 설정을 모두 복원하는 백업이 아닙니다.

| 상태 | 판단 및 처리 |
|---|---|
| 정상 | 원본과 바이너리 참조가 실제 파일에 연결됨 |
| 원본 누락 | 원본 GUID/파일을 찾을 수 없음. 마지막 바이너리와 등록 정보를 보존 |
| 원본·바이너리 누락 | 등록 정보를 남겨 복구·재연결 또는 명시적 등록 해제가 가능 |
| 바이너리 누락 | 원본은 존재하므로 재생성 대상 |
| 시트 누락 | XLSX 파일은 있지만 등록한 시트 이름이 없음. 기존 바이너리 보존 |
| 읽기 실패 | 잠김·손상 등으로 XLSX 메타데이터를 읽지 못함. 삭제와 구분 |

설정의 테이블 관리 카드에 9개 언어 상태 문구를 추가했습니다. 원본이 없는 카드는 논리 테이블 이름으로 식별하며 마지막 경로를 기억합니다. 정리 함수는 원본 참조가 사라진 등록을 자동 삭제하지 않습니다. 등록 정보 삭제는 사용자의 명시적 동작으로 남깁니다. 원본 필드에서 올바른 파일을 선택해 다시 연결할 수 있습니다.

다시 가져오기 감지에서 상태 캐시를 비웁니다. 파일명만 같은 다른 GUID의 파일을 원래 파일로 임의 연결하지 않습니다. 복원 시 원래 `.meta`와 GUID가 유지되면 같은 원본으로 다시 연결할 수 있습니다.

## 검증

- 전체 소스 컴파일 및 회귀 검증 **9,787개 통과**.
- 실제 Unity에서 테스트 원본을 `File.Delete`로 외부 삭제한 뒤 AssetDatabase를 갱신했습니다. 등록 및 마지막 바이너리 보존, 누락 상태, 원래 GUID로 복원 후 정상 상태를 확인했습니다.
- 최신 Unity 실행 **103개 통과**, 오류 0개, 샘플 씬 3개 완료. [실행 기록](missing-source/unity-session.jsonl).
- 삭제는 격리한 테스트 프로젝트 안의 생성 테스트 파일에만 수행했습니다. 사용자 원본은 삭제하지 않았습니다.
- 실제 설정창 배치와 마우스 조작 검증은 별도로 남아 있습니다.

XERJ: 미사용 — 연결 도구가 없어 rg로 현재 소스를 확인했습니다.
