Rust 지원 제거

맥락: 클래식 포트를 Python/Cython 구현과 pygame GUI 중심으로 정리한다.

변경: Rust 크레이트, proto 계약, Rust backend shim, 패리티 테스트를 삭제하고 문서와 backend factory를 Python 전용으로 갱신했다.

확인: uv run pre-commit run --all-files; uv run pytest tests/games/classic; uv run lost-cities-classic-gui --help
This commit is contained in:
2026-05-06 20:11:43 +09:00
parent a6de79d444
commit b578b38628
20 changed files with 16 additions and 3776 deletions
+4 -8
View File
@@ -10,9 +10,8 @@ game, without the earlier training-oriented tiers.
- Treat classic as the initial concrete game under `coolrl_lost_cities.games`.
- Do not carry over `tier0` through `tier3`; those were useful for experiments,
but they should not shape the first public game API.
- Keep backend selection available. The Python/Cython and Rust implementations
should remain swappable behind a small backend boundary.
- Keep the GUI and Rust implementation in scope for the port.
- Use the in-process Python/Cython implementation for the current port.
- Keep the GUI in scope for local play, but do not carry a separate native backend.
- Keep RL and training code out of the first extraction.
The expected package shape is roughly:
@@ -30,10 +29,6 @@ src/coolrl_lost_cities/
fixtures/
assets/
docs/
rust/
lost-cities-core/
proto/
lost_cities.proto
```
Tests should live outside the package, roughly under:
@@ -47,6 +42,7 @@ tests/games/classic/
- Deep CFR
- General training infrastructure
- Evaluation loops for learned policies
- Separate native backend support
- Web client
- Legacy experiment configs, checkpoints, logs, exports, and analysis artifacts
@@ -75,7 +71,7 @@ src/coolrl_lost_cities/
```
The game package should expose rules, state transitions, legal actions, scoring,
backend selection, and playable UI. Training code can adapt those pieces later.
and playable UI. Training code can adapt those pieces later.
## Naming Notes