088 つながる厨房 / 5段階の日本語教材

Python 3.12.14 / Pyxel 2.9.9で検証。導入: python -m pip install -r requirements.txt
起動: python 01_roles_movement.py（02〜05も同様）。本文はLESSON.md。
各pyは単独で改名・コピー可能。UTF-8で保存→ウィンドウを閉じる→再実行。
QはCの手渡し、Escは表紙です。どちらも終了キーではありません。
RはR→全キー解放→Z→解放→Enterという双方同意で状態だけリセット。R再押下で取消。
入力の役割・優先・同じ共有台の競合・全キー解放・2Hzを原作に合わせています。
段階ごとに加える機能と早期の足場は本文に明記。最終model/ControllerのASTを照合。
簡略ASCII表示、画像assets不要、無音。F12はイベントのみでファイルを保存しません。

検証 (このフォルダーで):
python -B test_stages.py
python -B qa/cp932_check.py
python -B qa/exercise_checks.py
python -B qa/runtime_checks.py /新しい検査フォルダー
python -B qa/render_boundaries.py /新しい境界フォルダー
python -B qa/reference_check.py /原作ゲームフォルダー /新しい比較.json
python -B qa/verify_freeze.py

明示的なheadless出力:
python 05_pause_undo.py --headless-smoke --demo-checkpoint --screenshot sample.png --state-json sample.json
初期画面は--demo-checkpointなし。出力は呼出し元cwdの未使用.png/.jsonを指定。
既存出力、ない親、違う拡張子、通常起動での出力指定はPyxel import前に拒否。
3回描画後に画像を保存し終了。合成Controller入力はその前に実行。
実際のPNG/JSON/logはqa/runtimeとqa/boundaries。既存センチネル保護も検査。
CP932の暗黙読み込み代用試験はWindows GUI試験ではありません。
物理キー、同時押し限界、二人の人間の試遊、学習効果、ブラウザー、Windows/macOS、音の実聴は未確認。

LICENSE/ LICENSE.txtは原作MIT全文。各pyに全文あり。
assets/PYXEL-LICENSE.txtとassets/NOTO-LICENSE.txtも全文保持。
教材はNoto字形を使いません。原作に対する権利表記と例外の参照を残しています。
