095 忘れもの列車 / 5段階Python・Pyxel教材

原作A「青いリボンの手帳」を写真、記録、証拠帳、仮説、返却の順に作る日本語教材です。
架空のゲームです。現実の調査・人物評価・遺失物手続の案内ではありません。

準備: Python 3.11以上 / python -m pip install -r requirements.txt
実行: python -B 01_snapshots.py （02〜05もそれぞれ単独実行）
完成版: python -B 05_return.py
読む順: LESSON.md、lessons.json、各.py、diffs、QA.txt

操作
←→: 車両 / 返却案では相手。Space: 写真の時刻 / 返却案では調査へ。
↑↓: 記録の選択。Z: 読取り / 03証拠帳・04以降返却案では根拠の付け外し。
Tab: 03以降、証拠帳。Enter: 04以降返却案、05では提出。
X: 05のUndo。R: 確認なしリセット。Esc: 直接終了。
一度押したら全操作キーを離します。同時押しは無効です。

原作との差
A一事件のみ。原作のB/C、表紙、ヘルプ、確認、保存読込、時刻タブ比較を省略。
ASCII画面 / 日本語解説・原作データ。03だけ証拠帳で根拠選択する練習です。
完成版モデルは原作Aと一致。0根拠でも正しいサキへ返せば完了。
原作は日本語表示と追加の画面・機能を備えます。lesson_meta.jsonに詳細。

検証
python -B -m unittest -v test_stages.py
python -B tools/render_qa.py （Pyxelが必要。実ヘッドレスPNGを生成）
python -B tools/verify_original.py /元ゲームの場所/095_lost_property_train （任意）
python -B tools/check_freeze.py

各.pyはその1本と標準ライブラリ+Pyxelだけで実行できます。
モデル試験は同梱fixtureを使い、原作もPyxelも不要です。ファイルはUTF-8で読みます。
QAは実Pyxelと合成入力の範囲。OS入力、人間の試遊、音、ブラウザ、Windows/macOS GUIは未検証。

LICENSEは原作全文。assetsのNoto/Pyxel権利文書も原文保持。追加フォントなし。
