# 라이선스 안내

이 저장소는 **세 개의 서로 다른 라이선스 영역**으로 나뉩니다.

## 1. AI장기 앱 본체 (이 저장소 대부분)

`index.html`, `janggi.js`, `economy.js`, `style.css`, `ads.js`, `toss-bridge.js`,
`src/`, `android/`(엔진 바이너리 제외), 게임 로직·UI·과금/경제 시스템·서버(`src/worker.js`)
등 — **독점(proprietary) 소프트웨어**이며 별도 공개 라이선스 없이 모든 권리를 보유합니다.
`package.json`의 `"license": "UNLICENSED"`가 이를 명시합니다.

## 2. Engine Host — `engine/`, `public/engine/`

Fairy-Stockfish WASM 엔진과 그 로더(`engine-bridge.js`, `fairy-uci-worker.js`)는
**GNU General Public License v3 (GPLv3)** 로 배포됩니다. 이 디렉토리는 메인 앱과는
별도 배포 단위(Engine Host)로, 별도 Worker/프로세스에서 실행되며 메인 앱과는
UCI 텍스트 프로토콜(postMessage)로만 통신합니다.

자세한 내용, Corresponding Source 위치, 격리 근거는 [engine/NOTICE](engine/NOTICE)와
[engine/LICENSE](engine/LICENSE)를 참고하세요. GPL 엔진이 플랫폼별로 어떻게
격리·배포되는지(웹/Android/iOS)는 [CLAUDE.md](CLAUDE.md)의 "GPL 엔진 격리" 섹션에
정리되어 있습니다.

## 3. 로컬 폴백 엔진 (무료 난이도) — `local-engine-worker.js`, `bitboard-engine.js`, `assembly/`, `rust-engine/`

무료 난이도(1~4단계, 학습 모델)에 쓰이는 로컬 폴백 엔진은 **MIT License**로
배포됩니다. 이 코드는 스톡피시/Fairy-Stockfish의 소스코드를 이식하거나 참고하지
않은, AI장기 프로젝트의 **완전한 자체 구현**입니다 — 같은 장기 규칙(대한장기협회
행마법)을 대상으로 하지만 알고리즘·자료구조 전부 처음부터 직접 작성했습니다.

- JS 원본: [local-engine-worker.js](local-engine-worker.js), [bitboard-engine.js](bitboard-engine.js)
- WASM(AssemblyScript) 재작성: [assembly/index.ts](assembly/index.ts)
- 네이티브(Rust) 재작성: [rust-engine/](rust-engine/) — 개별 [rust-engine/LICENSE](rust-engine/LICENSE)
- 전문: [LICENSE-MIT-ENGINE](LICENSE-MIT-ENGINE)

`rust-engine/src/nnue.rs`에는 제3자(Fairy-Stockfish 공식 배포) NNUE 가중치 파일을
SHA-256 해시로 기계적으로 거부하는 가드가 있습니다 — 이 엔진의 평가함수에
GPLv3 자산이 섞여 들어가는 것을 코드 레벨에서 막기 위함입니다.

## 왜 나뉘어 있나

Engine Host는 별도 오리진/프로세스로 로드되어 메인 앱과는 좁은 텍스트 프로토콜로만
통신하므로, GPLv3 카피레프트 범위에 들어가는 건 이 Engine Host 코드와 그 안에서
쓰는 Stockfish 엔진 자체뿐이라고 보고 메인 앱은 분리된 별개 프로그램으로 취급합니다.
이 분리 논리는 실무적으로 흔히 쓰이는 해석이며 FSF의 공식 판단은 아니라는 점은
참고하시기 바랍니다.
