v9 の実装は揃っていて、確かめ A は③⑦とも通りました。B（回す確認）はエイイチに押
  していただく必要があるので、そこで止めます。

  0章 版の突き合わせ ✅

  summary.json 6店すべて      2fa10547a2b7
  p1 / p5 の店の JSON          2fa10547a2b7
  p1 / p5 の _map.json         2fa10547a2b7
  params layout_generation     2fa10547a2b7
  summary.json
  は店ごとの配列だったので、6店すべてを個別に見ています。narrow_tables も ③=0 /
  ⑦=24 で指示書と一致。

  2つの地図は free_class の sha256 が別（e2078fd6… /
  aed1e0f1…）で、マスの数が偶然同一（2:148223 / 1:30397 /
  0:435780）でした。取り違えではありません。gzip を解いた実数も JSON の counts
  と一致します。

  確かめ A（人のいない店で・Unity の外から回しました）

  Unity がプロジェクトを押さえているので、MapPlanCheck.Run() を mono 
  で直接呼びました。これは Unity のメニューが呼ぶのと同じ関数で、spec = null →
  GridPlanner.Settings.Default に落ちます。その既定値が RobotSpec.cs
  の既定と1つずつ同じであることを確認したので、.asset（narrowCellCost 
  3・centerWeight 2・preferClearM 0.6）と同じ条件です。

  ┌─────────────────────────┬──────────────────────────────┬────────────────┐
  │                         │    ③ p1_efficient_corner     │  ⑦ p5_crammed  │
  ├─────────────────────────┼──────────────────────────────┼────────────────┤
  │ 狭い道を使った卓        │ 0 卓（サイト 0）✅           │ 24 卓（サイト  │
  │                         │                              │ 24）✅         │
  ├─────────────────────────┼──────────────────────────────┼────────────────┤
  │ 道が引けない卓          │ 0 / 42                       │ 0 / 42         │
  ├─────────────────────────┼──────────────────────────────┼────────────────┤
  │ 長さの比（最小／平均／  │ 0.959 / 1.019 / 1.057        │ 0.959 / 1.037  │
  │ 最大）                  │                              │ / 1.227        │
  ├─────────────────────────┼──────────────────────────────┼────────────────┤
  │ 道探しの時間（平均／中  │ 14.7 / 12.3 / 39.5 ms        │ 35.0 / 27.4 /  │
  │ 央／最大）              │                              │ 93.5 ms        │
  ├─────────────────────────┼──────────────────────────────┼────────────────┤
  │ 寄せが要った卓（マス 0  │ 0 / 42                       │ 0 / 42         │
  │ だった）                │                              │                │
  ├─────────────────────────┼──────────────────────────────┼────────────────┤
  │ 待機場所3つ             │ すべて引けた（マスの種類1・  │ すべて引けた（ │
  │                         │ 狭い道扱い）                 │ 同じ）         │
  └─────────────────────────┴──────────────────────────────┴────────────────┘
  
  真ん中寄りにした分の延びは平均 +1.9%（③）／+3.7%（⑦）。いちばん延びたのは ⑦
  の卓T12（16.367 → 20.082 m・比 1.227）です。

  1点だけ、指示書の見込みと違う所

  指示書は「真ん中寄りにした分だけ延びるはず」とありましたが、比が 1 未満の卓が 
  ③で3卓・⑦で4卓ありました。

  卓T42  site 5.379 → plan 5.159  比 0.959
  卓T35  site 3.804 → plan 3.790  比 0.996
  卓T34  site 3.763 → plan 3.751  比 0.997
  卓T28  site 3.275 → plan 3.230  比 0.986（⑦のみ）
  いずれも3〜5 m の短い道で、8方向のマス目が角をわずかに斜めに切れる分です（use
  は site/plan とも normal
  で一致）。地図を塗り替えたり通れる所を足したりはしていないので、作りの問題では
  なく測り方の差と見ています。報告だけに留め、コードは触っていません。

  実装の点検（3〜6章）

  ┌──────────────┬───────────────────────────────────────────────────────────┐
  │      章      │                           状態                            │
  ├──────────────┼───────────────────────────────────────────────────────────┤
  │ 1 地図を読む │ JsonStoreLayout.mapJson・RobotMap.Read。counts            │
  │              │ 照合・受け渡し口・全卓・待機場所の確かめ入り ✅           │
  ├──────────────┼───────────────────────────────────────────────────────────┤
  │ 2 道の引き方 │ GridPlanner.cs（新規・38 KB）。pathMode（既定             │
  │              │ MapPlanner）で切り替え ✅                                 │
  ├──────────────┼───────────────────────────────────────────────────────────┤
  │              │ detourAfterSec                                            │
  │ 3 回り込み   │ 3秒・近くの人/台を1回だけ通れないマスに・escape           │
  │              │ と10秒引き直しは MapPlanner で未使用 ✅                   │
  ├──────────────┼───────────────────────────────────────────────────────────┤
  │ 4 ロボットど │ UpdateRobotYieldMap（料理を載せている方が先）。SiteRoutes │
  │ うし         │  では従来の UpdateRobotYield ✅                           │
  ├──────────────┼───────────────────────────────────────────────────────────┤
  │ 5 記録       │ trips.csv の9列すべて・stops.csv の                       │
  │              │ Detoured/YieldedToRobot・run_info の6項目 ✅              │
  ├──────────────┼───────────────────────────────────────────────────────────┤
  │ 6 見せる     │ RobotPathLine.Attach(...) で床の線、キッチンのモニターに  │
  │              │ 「走る／一時停止／回り込む／よける」 ✅                   │
  └──────────────┴───────────────────────────────────────────────────────────┘

  「SiteRoutes のときだけ働く」の切り分けも確認しました — 戻りの線（UseMapPlanner
  で早期 return）・角の箱（ServiceOps で
  !UseMapPlanner）・旧「横へどく」（UpdateRobotYield と UpdateRobotYieldMap
  の分岐）。地図が無いのに MapPlanner のときは LogError を出して SiteRoutes
  に落ちます。

  新しい4ファイルに .meta が無かったので作って VCS に登録しました（guid
  は既存と重複なし）。残る Private は Mat_MonitorBoard 
  の2件だけで、コンパイルはランタイム・Editor ともエラー・警告ゼロです。

  ---
  お願い：確かめ B を回してください
  
  Unity がプロジェクトを開いているので私からは回せません。一度 Unity 
  に切り替えて（新しい4ファイルが取り込まれて再コンパイルされます）、

  ServiceSim / Site Run / ③ スタッフ4人・ロボット2台 を1回

  終わったら「終わった」と教えてください。比べる相手（v8b の
  ..._r2_a42_s0_1004）の数字は手元にあるので、

  - 60秒の止まりの数とロボットどうしの数（v8b：57回・51回）
  - 逃がし弁（v8b：あきらめた61・移した54・卓を空けた19）
  - 1往復で止まった秒（平均）、ロボットが運んだ皿の割合
  - detours・robot_yields・detour_extra_m の平均
  - 最後まで回り切るか／来た組が v8b と同じ 64組 か

  を並べて報告し、回り切っていれば Check-in して番号をお伝えします。

  なお .asset 
  が3つ（RobotSpec・StoreLayout_p1・StoreLayout_p5）保留に入っています。pathMode:
  0（=MapPlanner）などの v9 の欄が入ったものなので意図どおりですが、B の前に 
  RobotSpec.asset の pathMode が 0 のままかだけ Inspector
  で確かめていただけると確実です。
