054 機能・設計検証（2026-10-02 UTC）
実装・機能検証済み。人の初見理解、面白さ、再挑戦意欲は未確認。

モデル / 操作
21個のunittestが通過。隣1枠、非累積、同じ旧配置で価格確定、先に手放した道具の効果消滅、空き枠保持、仕入れの金/在庫/所有権の原子性、箱へ戻す、休憩所だけの積替、目標未達も帰還、拒否不変、厳密な入力形とint枠番号、undo、12代表経路の別プロセスhash照合、全盤面/版/tick改変の拒否、元帳不変性を検査。
UIでは開始保持、停止中解放、保持したまま復帰、移動後の決定持越し、交換元取消、保存通知、同時SPACE+Z一決定、余分な予告/描画時間による不変を模擬フレームで確認。
試験の保存関数はstub化。自動試験からmedia/native/automatic_captureを書き換えない。
cp932既定値を模擬したUTF-8読込み、日本語/空白を含む移動先、引用パスとASCII batを確認。Windows実機確認とは異なる。

有限探索
初期金0、0~4品の全初期配置を列挙。品IDを区別し、空き枠位置も区別。
A 1,045配置 → 32,800未来同値状態、最大14金。
B 1,045配置 → 33,468未来同値状態、最大15金。
C 1,961配置 → 45,230未来同値状態、最大15金。
各族の上限300,000状態。売却済み品の順と置き去りの箱は次の取引に影響しないので、出発後の未来同値状態をまとめる。
代表積載ごとの最大収益、すぐ全売り、全て後市場、道具なし、道具二つ、休憩所無変更をpolicy_resultsに保存。
各族に目標達成する異なる積載が二つ以上。任意seedや未知の価格表の可解性は主張しない。
A: 灯14金、冷石12金、道具なし14金、道具二つ11金。
B: 磁石14金、灯15金、道具なし14金、道具二つ12金。
C: 道具二つ15金、冷石14金、道具なし13金、磁石12金。
いずれも各積載内で探索した値で、人の平均スコアや方策の普遍的優越ではない。

分岐の管理比較
CのC-L-M-Kから同じ晶石売却/きのこ仕入れ/市場2売却を行うと、L/K交換あり15金、交換なし13金。
同じ積載で先に灯を手放すと11金。すべて目標10以上で帰還可能。悪い順を死亡扱いにせず、判断の差を金額として見せる。
一変更比較は道具の範囲だけ「隣1枠／全四枠」。価格・在庫・箱・目標は同じ。
比較版では同じ二案が交換あり15金、交換なし15金。全枠届くならこの積替の意味が消えることを確認。
controlled_branches.jsonに全入力と中間/最終hashを保存。架空の旧版や楽しさの証明ではない。

実キー操作 / クラウドLinux
開始Zを800ms保持しても空の荷台のまま。3でCの箱へ変更。
実キーでC1-L1-M1-K1を配置。出発Z700ms保持で市場へ移動するだけ、販売が持ち越されない。
灯の手放し予告で隣のCが6→2金になる表示を確認。
P停止中のZは品を手放さない。解放→再開後の新しいZでCだけ売却し、空いた枠へM3を購入。
Xで購入を戻して再購入。休憩所で灯と冷石を交換し、M3の市場2価格が3→5になる予告を確認。
市場2で二つのMを各5金で売り、売上16−仕入1=15金で帰還。
Eの保存通知を表示。B比較→P説明で「全四枠」の説明を確認。Q終了後、window一覧に不在を確認。
結果PNGはmedia/native_runtime.png。native/events.jsonと保存リプレイはこの実入力の記録。
人の試遊ではなくエージェントの機能テスト。

修正と証拠
development_v1: 自動操作の決定先へ選択カーソルが追従する前のソース/映像。
development_v2: 比較説明の条件表示と厳密な無効入力検査を追加する前のソース/映像。
元証拠は上書きせず保持。現行の動画・nativeは最終sourceとSHA一致を検査。
元の正規入力リプレイは同じ盤面版で再生できる。無効なbool枠や余分な引数は受理しない。

動画
実Pyxel rendererの自動操作・無音。748frame、30fps、24.933333秒。
元GIFの全frameを各一回、入力30fpsのRGB列としてMP4に変換。ffprobeでframe数・時間・音声streamなしを確認。
通常プレイはPyxel＋標準ライブラリのみ。動画変換のPillow/ffmpegは開発用。

未確認
人の楽しさ・理解・再プレイ意思、Windows/macOS実機、音質実聴。最初の3本の感想を流用しない。NOTE/Xは未投稿。
