100 旅する修理屋
直した交通を次の旅に使い、町の暮らしと持帰りの二品に足あとを残す短い旅。

必要: Python 3.10以上、Pyxel 2.9.9。実行時はPyxel＋標準ライブラリ。
Windows: setup.batを一度実行後、play.bat。BATはASCII、フォルダと実行ファイルの引用符付きです。
Linux/macOS: bash setup.sh の後に bash play.sh。通信はPyxelの初回導入時だけ必要。
OS別の実機確認範囲はQA.txt。静的互換性確認をWindows/macOS実機成功とは呼びません。

基本目標
拠点Hから出発し、川の渡しか森の索道を一つ以上直して、Hで「旅を終える」。
二機構を直す・三町を訪れる・特定の二品を持帰るのは任意の記録です。
Hへ帰れば修理なしの下見でも終了できます。その場合は基本目標未達と表示します。
旅刻は移動と修理確定だけに使います。会話、地図、編集、試運転で減りません。

町と道
川町Rの渡し修理でR～Kに１刻の便。森町Fの索道修理でH～Fに１刻の便。
新しい道はどちら向きにも使えます。各移動は直接の一辺を選びます。
最短帰路の合計と町順は常に表示。修理後の残りが帰路より少ない修理は確定不可。
移動はその辺の費用があれば選べますが、帰路が不足する場合は予告で警告します。
間違えた移動はXで戻せます。自動救助や隠れた旅費はありません。

機構
川: 左右のカムは周期４。右の位相を０～３から選び、同じ刻に左右０が重なると発車。
歯を交換は資材２・旅１刻。手回し取手は資材１・旅２刻。開く道は同じです。
住民は交代で回せると依頼しており、手回しに隠れた罰や善悪点はありません。
森の歯車: Dは正。D～A、A～荷台、D～荷台を1/2/3で着脱。
かみ合うごとに反転。荷台が逆なら上り便、三辺すべての奇数閉路は停止。
直結歯車は資材２・１刻。滑車ロープは資材１・２刻で、上下で停止位置１へ合わせます。
試運転は４刻分の表示。世界の旅刻・資材を消費しません。動いたら別のEnterで修理予告へ。

操作
表紙: 1/2/3でA/B/C、Bで交通の辺を開かない一変更比較、Spaceで開始。
Tabで地図・町・工具。未修理の機構がない町では工具画面を出しません。
地図: 左右で行き先、Enterで移動予告、キーを離してもう一度Enterで移動。
町: 左右で機構・記念品・工具・旅の終わり等、Enterで予告。Zは機構へ直接。
工具: 左右で修理法。川は上下で位相。森の歯車は1/2/3で辺、ロープは上下で停止位置。
Enterで試運転。動けば、改めてEnterで修理費と帰路の予告、もう一度で確定。
丘の工房は無料工具＋１を一度だけ。各町の記念品は能力も点数も増やしません。
かばん２枠が満杯なら上下で置く品を選び、町の品と交換。置いた品は現地に残ります。
Xは一旅決定または一機構編集のundo。Rは同じ旅を初めからやり直す確認。
S保存/L読込、H説明、P停止、M表紙確認、Esc終了確認、F12ネイティブPNG保存。
説明・停止・試運転から戻る際はキーを一度離します。同時キーは無効です。

生活の変化
渡しが直ると魚箱が丘へ。索道が直ると森の苗が拠点へ。両方で丘の鐘が森の広場へ。
修理方法で変わるのは必要資材と旅時間です。手回し等に隠れた人口点・信用点・道徳点はありません。
工具画面では歯車とロープの調整表示が異なりますが、修理後の働く姿や結末は方法別に描き分けていません。
比較版は町の荷物と生活は残し、自分が歩く新辺だけを開きません。公開旧版ではありません。

再現と検査
save.jsonには作品・版・状況・設定・状態と意味入力の全履歴を保存。
一時ファイルからの置換で保存し、読込は厳密な型と全履歴再生一致を確認。
壊れた保存を自動削除せず、現状態を保って通知。Rで新しく開始できます。
python -m unittest test_model test_ui -v
python experiments.py
試験は一時保存先を使いmediaの前後ハッシュ不変を確認します。原ログを書き換えません。
有限探索は移動・修理方法・工具受取の全合法分岐を走査。無料機構編集は成功設定へ代表化。
記念品は資源や到達目標に影響しないため経路探索から分離し、全機構・交換は単体検査。
A/B/Cで一修理と二修理の帰還、両比較版で同じ入力の基本達成を確認。

素材と補助ツール
全景色はコードによる図形。日本語字形はNoto Sans CJK由来でOFL全文同梱、Pyxel MIT全文も同梱。
glyphs.jsonは実行用同梱。再生成ツールのみPillowとローカルNotoフォントを必要とします。
動画変換補助のみPillow・ffmpeg・ffprobeを使い、プレイ時には不要です。
動画は自動操作を実Pyxelで描画した無音記録。技術確認と人の体験確認は別です。
NOTE/Xは未投稿の原稿候補。人の試遊、Windows/macOS実機、音の実聴は未確認です。
