STRUCTURE ║ 두 조각, 하나의 계약
디렉터리 지도
제품 코드는 런처, 인게임 모드, 그리고 둘을 서버와 잇는 프로토콜 문서예요.
fullmoon-client/
launcher/
├ src/ — React UI (screens, state, widgets)
├ src/core/bindings.ts — UI↔core 유일한 접점
└ src-tauri/ — Rust core (4,500줄, 19 모듈)
pinion-mod/
├ hud/ — HUD·설정 GUI·코스메틱
└ bridge/ — 서버 채널 클라이언트
docs/
└ BRIDGE.md — 프로토콜 스펙 (공개 계약)
.github/workflows/
└ ci · release · site — 빌드와 배포 전부 자동
화면과 core는 파일 하나로 만나요
UI는 Rust를 직접 부르지 않아요. 모드도 서버 플러그인 내부를 몰라요.
UI는 bindings.ts에 적힌 함수만 호출하고, 모드는
fullmoon:v1 채널로만 서버와 이야기해요. 그래서 UI를
mock core 위에서 먼저 만들고, 나중에 같은 함수 목록으로 실제 Rust core를
붙일 수 있었어요.
숫자로 보는 규모
- 37개 Tauri 명령 — 계약의 전부,
commands.rs한 파일에 - 1개 채널 페이로드 — varint 프레임 + JSON 한 객체
- 0개 외부 에셋 다운로드 — Mojang 원본만, SHA1 검증해서