v5b（ロボットの道順をサイトから受け取る）を入れました。Unity は押していません（Editor が開いたまま）。

────────────────────────────────────────────────────────
1. 写し直し
────────────────────────────────────────────────────────

写した日時：2026-10-22 20:23:50 JST
版の番号：**9628954a582f**（③・⑦・summary.json・serving-robot-params.json の 4 つとも同じ）

  Store/Layouts/p1_efficient_corner.json   43,270 → 360,040 バイト（routes が入ったため）
  Store/Layouts/p5_crammed.json            43,258 → 367,162 バイト
  Store/Layouts/summary.json               3,042 バイト
  Experiment/serving-robot-params.json     9,899 バイト

.asset の fetchedAt を 3 つとも「2026-10-22 20:23:50 JST（版 9628954a582f）」に直しました。

routes の中身（こちらで読んで確かめた）

  ③ from_pass 42 本（use は **normal 42・narrow 0**）/ between 861 本（抜け 0）
  ⑦ from_pass 42 本（use は **narrow 24・normal 18**）/ between 861 本（抜け 0）
  use と、サイトの卓の分け方（category）の食い違い: 0（③⑦とも）
  from_pass の最初の点が受け渡し口でないもの 0 / 最後が止まる位置でないもの 0
  between の端が合わないもの 0
  length と、点を結んだ長さの差: いちばん大きくて 0.0005 m

────────────────────────────────────────────────────────
2. 直したこと
────────────────────────────────────────────────────────

(1) v5 で足した狭い通路の区画を外しました

  NavMeshBaker       narrowAisleArea と AddNarrowAisleAreas を削除。ModifierBox を足さない
                     → **NavMesh は段階1 と同じ**（レジの内側の区画だけ残す）
  RobotSpec          avoidNarrowAisles を削除
  ServingRobot       2 段の道探し（RobotFilterWithoutNarrow）を削除。道探しは 1 段に戻した

  PlanAisle.hardToPass / AisleInfo.hardToPass（幅 < normal_width の印）は残しました。
  NavMesh には何もしません。報告に「狭い通路 3 本」と出すだけです。要らなければ外します。

(2) ロボットは routes の点をたどります

  Store/RouteBook.cs（新規）  from_pass / between を持ち、
                              卓→受け渡し口は from_pass を逆にたどる。
                              between に a|b が無ければ b|a を逆にたどる
  JsonStoreLayout             routes を読んで StorePlan.routes に入れる
  StoreBuilder                Routes で引けるようにした
  ServingRobotController      区間（受け渡し口→1卓目→2卓目→3卓目→受け渡し口）ごとに
                              点の並びを受け取り、**1 点ずつ行き先にしてたどる**
                                BeginLeg      区間の始め（いまいる所に近い先頭の点は飛ばす）
                                AdvanceWaypoint  点に着いたら次の点へ（CheckArrival の中）
                                ResumeLeg     譲り合い・あきらめから戻るとき、いまの点に戻す
                              NavMesh の道探しは **次の点までの区間だけ** に使います。
                              引き直し（replanAfterStoppedSec・EscapePartialPath）も
                              いまの点までの区間だけで、道順そのものは変えません。
  RobotSpec                   followSiteRoutes（既定 on。off で前の動き）
                              waypointReachDistance（0.25 m。途中の点に着いたとみなす距離）
                              routePointSnapM（0.1 m。**最後の点＝止まる位置は寄せない**。
                              この半径で面に乗らなければ広げて引き直し、回数を数える）

  人にふさがれたときの止まる・待つ・よける・立ち往生は、いっさい変えていません。
  待機場所 ↔ 受け渡し口は今までどおり Unity の道（GoStandby）です。

(3) 確かめ（JSON Store のメニュー）も同じにしました

  CSV の列（{日付}_{店}_table_dist.csv）
    table, category, aisle, **use**, json_dist_m, **route_len_m**, **unity_path_m**,
    diff_m, diff_pct, **via_narrow**, **segments**, **bad_segments**, status

    route_len_m  サイトの道順の点を結んだ長さ
    unity_path_m 点から点を Unity の NavMesh でつないだ長さの合計
    via_narrow   use == "narrow" なら 1
    segments     その卓の道順の区間の数 / bad_segments つながらない・遠回りの区間の数

  報告（_json_check.txt）に足したもの
    ・すべての区間がつながった卓の数
    ・つながらない区間の一覧（卓・何番目の区間・両端の点・理由）
    ・まっすぐの長さの **1.05 倍** を超えた区間の一覧（店の形と NavMesh が合っていない印）
    ・via_narrow（use=narrow）の卓の数

────────────────────────────────────────────────────────
3. こうなるはず（JSON の寸法から計算した予測）
────────────────────────────────────────────────────────

道順の各区間が、ロボットの半径 0.25 m を確保できるかを 0.05 m 刻みで調べました。

  ③ from_pass の区間 205 本 … 半径を確保できない区間 **0 本**
     区間の最小すき間 0.487 m（0.30 m 未満の区間 0 本）
  ⑦ from_pass の区間 195 本 … 半径を確保できない区間 **0 本**
     区間の最小すき間 0.387 m（0.8 m の通路の真ん中を通るため。0.30 m 未満 0 本）

  → 焼いた面（半径 0.25 m・ます目 0.05 m）でも、どの区間もまっすぐつながるはずです。
    つながらない区間 0・1.05 倍を超える区間 0 を見込んでいます。

  道順の長さ − JSON の dist は ③⑦とも -0.87 〜 -0.01 m（道順の方が少し短い）。
  dist はマス目の上の道のりなので、直線で結んだぶん短くなります。

  via_narrow は **⑦ 24 卓・③ 0 卓**（routes の use の数と同じ）。

────────────────────────────────────────────────────────
4. お願い
────────────────────────────────────────────────────────

  ServiceSim/JSON Store/③⑦ を続けて確かめる

  見ていただきたいのは、依頼のとおり 3 点です。

    1. 42 卓すべての区間がつながること（「つながらない区間: 0」）
    2. まっすぐの 1.05 倍を超える区間が無いこと
    3. via_narrow が ⑦ 24 卓・③ 0 卓

  通ったら、こちらで VCS Check-in して v5 の 3 章（条件・始め方・立ち往生でスタッフを呼ぶ・
  逃がし弁の記録・出す数字・往復ごとの4つの値）に進みます。

  触ったファイル
    新規 Store/RouteBook.cs（＋ .meta）
    写し Store/Layouts/*.json（3 つ）・Experiment/serving-robot-params.json
    変更 Store/JsonStoreLayout.cs（routes を読む・報告）
         Store/StorePlan.cs（routes を持つ）・Store/StoreBuilder.cs（Routes で引く）
         Store/NavMeshBaker.cs（狭い通路の区画を削除）
         Robot/RobotSpec.cs（avoidNarrowAisles 削除／followSiteRoutes 他 3 つ追加）
         Robot/ServingRobotController.cs（2 段の道探しを削除／道順をたどる）
         Editor/ServiceSimJsonStore.cs（確かめを道順の照合に）
         Store/StoreLayout_p1_efficient_corner.asset / p5_crammed.asset /
         Experiment/SimParams.asset（fetchedAt）

  なお、v5 の 0 章で入れた 2 つの直し（幅の誤報・store_report の名前）も、まだ
  Check-in していません。今回の分とまとめて、確かめが通ってから入れます。
