067 伝言は三文字
実装・機能検証用。人の面白さ確認は未実施。クラウドLinuxで検証し、Windows実機では未確認。

遊ぶ
Python 3.10以上、Pyxel 2.9.9。Windowsはsetup.batを一度実行し、play.batで起動。
Linux/macOSはbash setup.sh、bash play.sh。macOS実機は未確認。
ランタイムの依存はPyxelとPython標準ライブラリのみ。日本語字形は同梱。
操作を押し続けても意思決定は繰り返しません。一度キーを離して次の操作へ。

目的
八枚の字札で、続く二件の依頼を正しく伝える。相手の公開候補表から各字の意味を読み、
共通する用事を絞る。字順は不問。現実の日本語一般を自動解釈するゲームではありません。
使った札は二件が終わるまで戻りません。次の依頼票を先に読めます。
最初の伝言は一~三文字。返事が曖昧なら一字ずつ、二回まで追伸できます。
候補が一つになったらEnterで確認。依頼と違えば実行しないので、XやCで考え直せます。
Cの「一緒に全文確認」は常時合法。追加二往復で依頼票の正しい用事を確認し、字の追加なし。
全文確認を使っても、二件の正しい完了が基本目標です。字数と往復数は別々に記録。
読む時間、迷う時間、画面を眺める時間には制限も失点もありません。

操作
SPACE/Z 表紙から開始。上下 字札選択、Z 下書きへ置く。
左右 下書き位置、SPACE その位置の字を外す。Enter 送る/一意の用事を確認。
C 全文確認、X 直前の判断を戻す、R 同じ状況を再開、P 停止と説明。
1/2/3 状況A/B/C、B 札が依頼ごとに戻る比較版へ切替（同じ状況を再開）。
S 正確な意味入力記録をrecordsへ保存、F12 現在の実画面をmediaへ保存、M 表紙、Q 終了。
Xは完了後も有効。返事、消費札、依頼の進み、往復数を一緒に戻します。

状況
067-A-g1 北を残す。北を先に使うか、本返却を知る係の意味で縮めるか。
067-B-g1 青の意味が違う。工房の青は東机の印、受付の青は荷物の色。
067-C-g1 条件を消さない。雨は現在天気ではなく、実行するときの条件。
三つの固定状況だけを保証。任意seed生成はありません。

検証と資料
model.pyは不変State、step、意味表、予告、正確な記録を持つ純粋モデル。
python -m unittest -v でモデル/UI検査。solver.pyは検証結果と専用verified記録を再生成。
通常のテストはmediaとrecordsを変更しません。Pillow/ffmpegは開発用メディア出力だけに使用。
media/letters_automatic_silent.mp4は実際のPyxel描画に自動入力した無音映像。
人のプレイ動画ではなく、音声品質の証拠でもありません。詳しくはQA.txtとEXPERIMENT.txt。
ソースはMIT、同梱字形はNoto由来のSIL OFL 1.1。全文をassetsに同梱。
