# 프로토콜 기준선

## 목표

각 구현체가 애플리케이션별 동작을 코어에 넣지 않고도 상호 운용될 수 있도록 Proto Socket의 공유 프로토콜 계약을 확립한다.

## 단계

프로토콜 기반

## 상태

완료

## 범위

- TCP 4바이트 빅엔디안 길이 프리픽스 프레이밍을 문서화한다.
- WebSocket/WSS 바이너리 프레임 전송을 문서화한다.
- `PacketBase`, `typeName`, `nonce`, `responseNonce`, `HeartBeat` 동작을 정의한다.
- 프로토콜 버전과 패키지 버전의 분리 정책을 정의한다.
- `proto/message_common.proto`를 canonical proto 원본으로 둔다.

## 필수 기능

- [x] 프로토콜 버전 `0.1`을 `PROTOCOL.md`와 `VERSIONING.md`에 문서화한다.
- [x] Canonical proto 원본이 `proto/message_common.proto`임을 문서화한다.
- [x] TCP 및 WebSocket 와이어 포맷을 문서화한다.
- [x] 하트비트 생명주기와 요청-응답 상관관계를 문서화한다.
- [x] breaking / non-breaking 프로토콜 변경 정책을 문서화한다.

## 완료 기준

- [x] 구현자는 `PROTOCOL.md`, `VERSIONING.md`, `PORTING_GUIDE.md`를 기준으로 호환되는 언어 포트를 만들 수 있다.
- [x] 프로토콜 수준 변경에는 명시적인 호환성 검토 경로가 있다.
- [x] 생성된 언어별 proto 사본은 canonical schema와 대조할 수 있다.

## 범위 제외

- 애플리케이션 수준 인증, 세션, 채팅, 게임, 룸, 에이전트 워크플로 의미를 정의하지 않는다.
- 언어 패키지를 배포하지 않는다.
- TCP/TLS 및 WebSocket/WSS 외의 새 transport 계열을 추가하지 않는다.

## 작업 컨텍스트

- 관련 경로: `PROTOCOL.md`, `VERSIONING.md`, `PORTING_GUIDE.md`, `proto/message_common.proto`, `tools/check_proto_sync.sh`
- 선행 작업: 없음
- 후속 작업: 사용 가능 언어 parity
- 확인 필요: 없음
