docs(parity): mirror 40250 layout for the logic layer; evaluate embedded Python UI

- SKILL.md: logic units port into extension/src/port/<Lib>/<File>, platform
  adapters under extension/src/platform; legacy GDScript owners are migration
  sources; python layer frozen until the embedding decision
- port_map.py: logic/python/platform layers with per-layer progress, queue
  --layer, LEGACY layout check; inventory adds EterBase, EterPythonLib,
  ScriptLib, SpeedTreeLib, SphereLib, EterImageLib
- py_embed_spike.py + docs/PYTHON-EMBED-EVAL.md: the 40250 system.py bootstrap
  loads 67/74 root modules unchanged under CPython 2.7 with stub natives

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-22 18:06:32 +09:00
co-authored by Claude Opus 5
parent a989b8f19b
commit 9d0e50de8f
7 changed files with 285 additions and 37 deletions
@@ -34,7 +34,16 @@
- Native extension: `extension/src/` (network in `extension/src/net/`, classic 40250 protocol in `extension/src/net/classic/`).
- Format readers: `formats/`; Granny: `libgr2/`; assets/tables: `assets/`; Granny oracle: `oracle/`; tools: `tools/`.
### Known counterparts
### Target layout
- `extension/src/port/<Lib>/<File>.{h,cpp}` — mirror of each 40250 `logic` unit (see SKILL.md
"Code layout"). Does not exist yet; the first ported unit creates it and adds it to
`extension/CMakeLists.txt`.
- `extension/src/platform/` — adapter interfaces named after the 40250 platform classes they replace.
- The files in the table below are **migration sources**: when a unit is ported, its logic moves out
of them into the mirror file.
### Legacy counterparts (migration sources)
| 40250 | Current |
| --- | --- |
@@ -47,14 +56,12 @@
| `CPythonPlayer` skill use | `project/player_skill.gd` |
| `CFlyingObject*` | `project/fly_object.gd` |
| `EterLib/Camera.cpp` + `PythonApplicationCamera` | `project/game_camera.gd` |
| `ui*.py` windows | `project/ui/*_ui.gd` |
| `ui*.py` windows | `project/ui/*_ui.gd` (ported from the wrong `assets/root`; replaced by the python layer) |
### Code that is not a counterpart
### Removed non-counterparts
About 100 of the 111 `project/*_system.gd` files are loaded only by their own
`project/test_*_parity.gd` (never by the runtime). They are not implementations of 40250
behavior and their tests are not evidence; delete them, or replace them by porting the real 40250
code path when that path exists.
The 106 `project/*_system.gd` files that only their own `test_*_parity.gd` loaded were deleted on
2026-09-22 (commit `a989b8f1`). Do not recreate them; port the real 40250 code path instead.
## Existing evidence (historical)