{
 "about": "サービスロボット導入シミュレーション（配膳ロボットの試算 haizen_sim.py）の前提の表。試算はこの表を読んで回す。値を直すときは、ここを直して git に残す",
 "model": "v2.9",
 "basis_kinds": {
  "仮置き": "まだ根拠がない仮の値。現場・公開事例・Unity の値で置き換えていく",
  "実感": "エイイチの現場の経験（ファミレスで働いていたころ）",
  "公開事例": "メーカーの仕様・導入事例など、公開されている値",
  "Unity": "Unity（ServiceSim）で測った値",
  "現場": "現場で測った値（観察シートなど）。n に測った回数を書く",
  "決まり": "エイイチと決めた、試算の回し方・判定の線・運用の決まり",
  "設定": "試算の回し方の設定。店の前提ではない"
 },
 "record_fields": {
  "value": "値",
  "unit": "単位",
  "what": "何の値か",
  "basis": "根拠の種類（basis_kinds）",
  "source": "出典・決めた経緯",
  "n": "現場で測った回数（測っていなければ null）",
  "updated": "値または根拠を最後に直した日（空は、表に移す前からの値で日付の記録がないもの）",
  "note": "補足"
 },
 "common": {
  "staff_speed": {
   "value": 1.0,
   "unit": "m/秒",
   "what": "スタッフが歩く速さ",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "robot_speed": {
   "value": 0.5,
   "unit": "m/秒",
   "what": "ロボットが店内を走る速さ",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": "",
   "note": "Unity で測って戻す値（Unity の最高は0.6m/秒）。2026-10-24 に今のまま手を付けないと決めた"
  },
  "guide_s": {
   "value": 45,
   "unit": "秒",
   "what": "案内（席の説明など。歩く時間は別）",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "staff_place_s": {
   "value": 10,
   "unit": "秒",
   "what": "スタッフが卓に皿を置く",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "robot_handoff_s": {
   "value": 25,
   "unit": "秒",
   "what": "客がロボットから皿を取る",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "pay_s": {
   "value": 90,
   "unit": "秒",
   "what": "会計1組",
   "basis": "実感",
   "source": "エイイチのファミレスの経験（1組90秒くらい）",
   "n": null,
   "updated": "2026-10-25"
  },
  "call_s": {
   "value": 30,
   "unit": "秒",
   "what": "呼び出しへの対応（歩く時間は別）",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "clear_s": {
   "value": 40,
   "unit": "秒",
   "what": "卓の皿をまとめる",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "wipe_s": {
   "value": 40,
   "unit": "秒",
   "what": "卓を拭いてセットする",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "load_s": {
   "value": 15,
   "unit": "秒",
   "what": "まとめた皿をロボットに載せる",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "guest_load_s": {
   "value": 20,
   "unit": "秒",
   "what": "客が空いた皿をロボットに載せる（巡回して集めるとき）",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "pause_rate": {
   "value": 0.3,
   "unit": "確率（1往復あたり）",
   "what": "一時停止：人が前を横切ってロボットが止まる",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": "",
   "note": "Unity で測って戻す値"
  },
  "pause_s": {
   "value": [
    3,
    10
   ],
   "unit": "秒（最短, 最長）",
   "what": "一時停止の長さ",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": "",
   "note": "Unity で測って戻す値"
  },
  "stuck_rate": {
   "value": 0.01,
   "unit": "確率（1往復あたり）",
   "what": "立ち往生：スタッフが動かしに行かないと解けない",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": "",
   "note": "Unity で測って戻す値。LOG405 で Unity の方が多いと分かったが、今は変えないと決めた（2026-10-30）"
  },
  "rescue_s": {
   "value": 15,
   "unit": "秒",
   "what": "立ち往生したロボットをスタッフが動かす作業",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "hop_m": {
   "value": 3,
   "unit": "m",
   "what": "1往復で複数の卓を回るときの、卓から次の卓への寄り道",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": "",
   "note": "試算だけの近似。Unity は実際の道を走る"
  },
  "fragile_cook": {
   "value": [
    2,
    4,
    7
   ],
   "unit": "分（最短, 最頻, 最長）",
   "what": "デザート・ドリンクができるまで",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "cold_min": {
   "value": 3,
   "unit": "分",
   "what": "これを超えて届いた皿を「待たせた皿」とする線",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "dish_extra_m": {
   "value": 0,
   "unit": "m",
   "what": "洗い場が受け渡し口よりさらに奥にあるときの追加距離（店のタイプで上書き）",
   "basis": "仮置き",
   "source": "",
   "n": null,
   "updated": ""
  },
  "sustain": {
   "value": false,
   "unit": "",
   "what": "回るかの確かめ（来客を止めない回し方）にするか",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "warmup_min": {
   "value": 60,
   "unit": "分",
   "what": "回るかの確かめで、数えない慣らしの時間",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "util_sample_s": {
   "value": 10,
   "unit": "秒",
   "what": "手がふさがっている人数・台数を数える間隔",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "max_extra_min": {
   "value": 600,
   "unit": "分",
   "what": "数える時間のあと、追いかけるのを打ち切る上限（回らない条件の保険）",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "robot_first_wait_s": {
   "value": 120,
   "unit": "秒",
   "what": "料理はロボット優先。これだけ待ってもロボットが来なければスタッフが運ぶ",
   "basis": "決まり",
   "source": "エイイチと決めた運用（料理はロボット最優先・2分待って来なければ人が運ぶ）",
   "n": null,
   "updated": "2026-10-23"
  }
 },
 "stores": {
  "small": {
   "label": "小型店",
   "values": {
    "tables": {
     "value": 18,
     "unit": "卓",
     "what": "卓の数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "dist_m": {
     "value": [
      4,
      12
     ],
     "unit": "m（最短, 最長）",
     "what": "受け渡し口（洗い場）から卓までの距離の幅",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "peak_min": {
     "value": 120,
     "unit": "分",
     "what": "ピークの長さ（この時間だけ選んだペースで来客する）",
     "basis": "決まり",
     "source": "エイイチと決めた：ファミレスはランチ・ディナーで混む時間が限られるので、ピークの2時間で区切る",
     "n": null,
     "updated": ""
    },
    "first_dishes": {
     "value": [
      [
       4,
       7,
       11
      ],
      [
       6,
       9,
       14
      ]
     ],
     "unit": "分（最短, 最頻, 最長）× 皿",
     "what": "最初の注文の皿ごとの、料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_orders": {
     "value": 0,
     "unit": "回",
     "what": "食事中の追加注文の回数（食べ放題）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_cook": {
     "value": [
      3,
      5,
      8
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "追加注文の料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "eat_min": {
     "value": [
      15,
      25,
      40
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "食べている時間",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "call_rate": {
     "value": 0.4,
     "unit": "回／組",
     "what": "1組あたりの呼び出しの回数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "bus_trips": {
     "value": 1,
     "unit": "往復",
     "what": "下げ膳を人だけでやるときの往復回数（皿の量）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "fragile": {
     "value": 0.3,
     "unit": "個／組",
     "what": "1組あたりの倒れやすい物（デザート・ドリンク）の数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff": {
     "value": [
      1,
      2,
      3
     ],
     "unit": "人（少ない, 真ん中, 多い）",
     "what": "最初に見せるスタッフの人数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff_all": {
     "value": [
      1,
      2,
      3,
      4,
      5
     ],
     "unit": "人",
     "what": "「その他」で選べる人数（総当たりはこちら）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "arrivals": {
     "value": [
      15,
      22,
      30
     ],
     "unit": "組／時（空いている, 普通, 混んでいる）",
     "what": "来客のペース",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "registers": {
     "value": 1,
     "unit": "台",
     "what": "最初に見せるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    },
    "registers_all": {
     "value": [
      1,
      2
     ],
     "unit": "台",
     "what": "選べるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    }
   }
  },
  "family": {
   "label": "標準ファミレス",
   "values": {
    "tables": {
     "value": 35,
     "unit": "卓",
     "what": "卓の数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "dist_m": {
     "value": [
      6,
      22
     ],
     "unit": "m（最短, 最長）",
     "what": "受け渡し口（洗い場）から卓までの距離の幅",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "peak_min": {
     "value": 120,
     "unit": "分",
     "what": "ピークの長さ（この時間だけ選んだペースで来客する）",
     "basis": "決まり",
     "source": "エイイチと決めた：ファミレスはランチ・ディナーで混む時間が限られるので、ピークの2時間で区切る",
     "n": null,
     "updated": ""
    },
    "first_dishes": {
     "value": [
      [
       5,
       8,
       12
      ],
      [
       8,
       12,
       18
      ]
     ],
     "unit": "分（最短, 最頻, 最長）× 皿",
     "what": "最初の注文の皿ごとの、料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_orders": {
     "value": 0,
     "unit": "回",
     "what": "食事中の追加注文の回数（食べ放題）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_cook": {
     "value": [
      3,
      5,
      8
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "追加注文の料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "eat_min": {
     "value": [
      20,
      30,
      45
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "食べている時間",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "call_rate": {
     "value": 0.6,
     "unit": "回／組",
     "what": "1組あたりの呼び出しの回数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "bus_trips": {
     "value": 2,
     "unit": "往復",
     "what": "下げ膳を人だけでやるときの往復回数（皿の量）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "fragile": {
     "value": 0.5,
     "unit": "個／組",
     "what": "1組あたりの倒れやすい物（デザート・ドリンク）の数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff": {
     "value": [
      2,
      3,
      4
     ],
     "unit": "人（少ない, 真ん中, 多い）",
     "what": "最初に見せるスタッフの人数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff_all": {
     "value": [
      1,
      2,
      3,
      4,
      5,
      6,
      7
     ],
     "unit": "人",
     "what": "「その他」で選べる人数（総当たりはこちら）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "arrivals": {
     "value": [
      25,
      35,
      45
     ],
     "unit": "組／時（空いている, 普通, 混んでいる）",
     "what": "来客のペース",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "registers": {
     "value": 1,
     "unit": "台",
     "what": "最初に見せるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    },
    "registers_all": {
     "value": [
      1,
      2
     ],
     "unit": "台",
     "what": "選べるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    }
   }
  },
  "large": {
   "label": "大型店",
   "values": {
    "tables": {
     "value": 60,
     "unit": "卓",
     "what": "卓の数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "dist_m": {
     "value": [
      8,
      35
     ],
     "unit": "m（最短, 最長）",
     "what": "受け渡し口（洗い場）から卓までの距離の幅",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "peak_min": {
     "value": 120,
     "unit": "分",
     "what": "ピークの長さ（この時間だけ選んだペースで来客する）",
     "basis": "決まり",
     "source": "エイイチと決めた：ファミレスはランチ・ディナーで混む時間が限られるので、ピークの2時間で区切る",
     "n": null,
     "updated": ""
    },
    "first_dishes": {
     "value": [
      [
       5,
       8,
       12
      ],
      [
       8,
       12,
       18
      ]
     ],
     "unit": "分（最短, 最頻, 最長）× 皿",
     "what": "最初の注文の皿ごとの、料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_orders": {
     "value": 0,
     "unit": "回",
     "what": "食事中の追加注文の回数（食べ放題）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_cook": {
     "value": [
      3,
      5,
      8
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "追加注文の料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "eat_min": {
     "value": [
      20,
      30,
      45
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "食べている時間",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "call_rate": {
     "value": 0.6,
     "unit": "回／組",
     "what": "1組あたりの呼び出しの回数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "bus_trips": {
     "value": 2,
     "unit": "往復",
     "what": "下げ膳を人だけでやるときの往復回数（皿の量）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "fragile": {
     "value": 0.5,
     "unit": "個／組",
     "what": "1組あたりの倒れやすい物（デザート・ドリンク）の数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff": {
     "value": [
      4,
      5,
      6
     ],
     "unit": "人（少ない, 真ん中, 多い）",
     "what": "最初に見せるスタッフの人数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff_all": {
     "value": [
      2,
      3,
      4,
      5,
      6,
      7,
      8,
      9,
      10
     ],
     "unit": "人",
     "what": "「その他」で選べる人数（総当たりはこちら）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "arrivals": {
     "value": [
      45,
      60,
      75
     ],
     "unit": "組／時（空いている, 普通, 混んでいる）",
     "what": "来客のペース",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "registers": {
     "value": 2,
     "unit": "台",
     "what": "最初に見せるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    },
    "registers_all": {
     "value": [
      1,
      2
     ],
     "unit": "台",
     "what": "選べるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    }
   }
  },
  "hotel": {
   "label": "洗い場が遠い店",
   "values": {
    "tables": {
     "value": 30,
     "unit": "卓",
     "what": "卓の数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "dist_m": {
     "value": [
      6,
      20
     ],
     "unit": "m（最短, 最長）",
     "what": "受け渡し口（洗い場）から卓までの距離の幅",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "dish_extra_m": {
     "value": 30,
     "unit": "m",
     "what": "洗い場が受け渡し口よりさらに奥にあるときの追加距離",
     "basis": "公開事例",
     "source": "洗い場が遠いホテルの店の導入事例（ホテル小倉）。距離は事例をもとにした仮の値",
     "n": null,
     "updated": ""
    },
    "peak_min": {
     "value": 120,
     "unit": "分",
     "what": "ピークの長さ（この時間だけ選んだペースで来客する）",
     "basis": "決まり",
     "source": "エイイチと決めた：ファミレスはランチ・ディナーで混む時間が限られるので、ピークの2時間で区切る",
     "n": null,
     "updated": ""
    },
    "first_dishes": {
     "value": [
      [
       5,
       8,
       12
      ],
      [
       8,
       12,
       18
      ]
     ],
     "unit": "分（最短, 最頻, 最長）× 皿",
     "what": "最初の注文の皿ごとの、料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_orders": {
     "value": 2,
     "unit": "回",
     "what": "食事中の追加注文の回数（食べ放題）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_cook": {
     "value": [
      4,
      6,
      10
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "追加注文の料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "eat_min": {
     "value": [
      30,
      45,
      60
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "食べている時間",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "call_rate": {
     "value": 0.6,
     "unit": "回／組",
     "what": "1組あたりの呼び出しの回数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "bus_trips": {
     "value": 2,
     "unit": "往復",
     "what": "下げ膳を人だけでやるときの往復回数（皿の量）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "fragile": {
     "value": 0.6,
     "unit": "個／組",
     "what": "1組あたりの倒れやすい物（デザート・ドリンク）の数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff": {
     "value": [
      2,
      3,
      4
     ],
     "unit": "人（少ない, 真ん中, 多い）",
     "what": "最初に見せるスタッフの人数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff_all": {
     "value": [
      1,
      2,
      3,
      4,
      5,
      6,
      7
     ],
     "unit": "人",
     "what": "「その他」で選べる人数（総当たりはこちら）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "arrivals": {
     "value": [
      16,
      22,
      28
     ],
     "unit": "組／時（空いている, 普通, 混んでいる）",
     "what": "来客のペース",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "registers": {
     "value": 1,
     "unit": "台",
     "what": "最初に見せるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    },
    "registers_all": {
     "value": [
      1,
      2
     ],
     "unit": "台",
     "what": "選べるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    }
   }
  },
  "buffet": {
   "label": "焼肉食べ放題",
   "values": {
    "tables": {
     "value": 35,
     "unit": "卓",
     "what": "卓の数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "dist_m": {
     "value": [
      6,
      22
     ],
     "unit": "m（最短, 最長）",
     "what": "受け渡し口（洗い場）から卓までの距離の幅",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "peak_min": {
     "value": 150,
     "unit": "分",
     "what": "ピークの長さ（この時間だけ選んだペースで来客する）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "first_dishes": {
     "value": [
      [
       2,
       4,
       8
      ],
      [
       3,
       5,
       9
      ],
      [
       4,
       7,
       12
      ]
     ],
     "unit": "分（最短, 最頻, 最長）× 皿",
     "what": "最初の注文の皿ごとの、料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_orders": {
     "value": 5,
     "unit": "回",
     "what": "食事中の追加注文の回数（食べ放題）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "extra_cook": {
     "value": [
      2,
      4,
      7
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "追加注文の料理ができるまで",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "eat_min": {
     "value": [
      60,
      80,
      90
     ],
     "unit": "分（最短, 最頻, 最長）",
     "what": "食べている時間",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "call_rate": {
     "value": 0.8,
     "unit": "回／組",
     "what": "1組あたりの呼び出しの回数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "bus_trips": {
     "value": 3,
     "unit": "往復",
     "what": "下げ膳を人だけでやるときの往復回数（皿の量）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "fragile": {
     "value": 1.5,
     "unit": "個／組",
     "what": "1組あたりの倒れやすい物（デザート・ドリンク）の数の平均",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff": {
     "value": [
      2,
      3,
      4
     ],
     "unit": "人（少ない, 真ん中, 多い）",
     "what": "最初に見せるスタッフの人数",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "staff_all": {
     "value": [
      1,
      2,
      3,
      4,
      5,
      6,
      7
     ],
     "unit": "人",
     "what": "「その他」で選べる人数（総当たりはこちら）",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "arrivals": {
     "value": [
      14,
      20,
      26
     ],
     "unit": "組／時（空いている, 普通, 混んでいる）",
     "what": "来客のペース",
     "basis": "仮置き",
     "source": "",
     "n": null,
     "updated": ""
    },
    "registers": {
     "value": 1,
     "unit": "台",
     "what": "最初に見せるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    },
    "registers_all": {
     "value": [
      1,
      2
     ],
     "unit": "台",
     "what": "選べるレジの数",
     "basis": "決まり",
     "source": "試算 v2.8 でエイイチと決めた（レジ1つ・2つを選べる。大型店は2つを最初に見せる）",
     "n": null,
     "updated": "2026-10-25"
    }
   }
  }
 },
 "layout_stores": {
  "what": "図面のある店（②〜⑦）。標準ファミレス（family）をもとに、店の形から作る",
  "layout_dir": "../../public/sim/layouts",
  "labels": {
   "p0": "② 定番の郊外型",
   "p1": "③ 効率重視・入口が角",
   "p2": "④ 効率重視・小さめの店",
   "p3": "⑤ ゆったり・入口が正面",
   "p4": "⑥ ゆったり・入口が横",
   "p5": "⑦ ③の通路を95cmに"
  },
  "rules": [
   "卓の数と、受け渡し口から卓ごとの距離は店の形（*_analysis.json）から取る",
   "来客のペースは、標準ファミレスの3つを卓の数に比例させて丸める（最低1組/時）",
   "スタッフの真ん中の人数は、標準ファミレスの真ん中（3人）を卓の数に比例させて丸める（最低2人）。少ない・多いは ±1人、選べる幅は 真ん中-2〜真ん中+4（最低1人）",
   "それ以外は標準ファミレスと同じ"
  ],
  "basis": "決まり",
  "source": "エイイチと決めた（2026-10-21）",
  "updated": "2026-10-21"
 },
 "choices": {
  "robots": {
   "value": [
    0,
    1,
    2,
    3
   ],
   "unit": "台",
   "what": "最初に見せるロボットの台数",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "robots_all": {
   "value": [
    0,
    1,
    2,
    3,
    4,
    5,
    6
   ],
   "unit": "台",
   "what": "「その他」で選べる台数（総当たりはこちら）",
   "basis": "決まり",
   "source": "エイイチと決めた：5台・6台も選べるまま残す（ベストな状況だけ見せても納得されないため）",
   "n": null,
   "updated": "2026-10-21"
  },
  "modes": {
   "value": [
    "serve",
    "bus",
    "patrol"
   ],
   "unit": "",
   "what": "ロボットの使い方（serve 上げ膳だけ／bus 下げ膳にも使う／patrol 食事中に回って集める）",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "trays": {
   "value": [
    1,
    3
   ],
   "unit": "卓",
   "what": "1往復で回る卓の数（1卓ずつ／最大3卓）",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "fragile_by": {
   "value": [
    "any",
    "staff"
   ],
   "unit": "",
   "what": "倒れやすい物を ロボットも運ぶ（any）／人だけが運ぶ（staff）",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "reps": {
   "value": 40,
   "unit": "回",
   "what": "1条件を回す回数（結果はこの平均）",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  }
 },
 "judge": {
  "ng_min": {
   "value": 10,
   "unit": "分",
   "what": "席は空いているのに待った時間がこれ以上なら「店が回らない」",
   "basis": "決まり",
   "source": "試算 v2.2 でエイイチと決めた（5分だと厳しめ）",
   "n": null,
   "updated": "2026-10-21"
  },
  "staff_full": {
   "value": 0.95,
   "unit": "割合",
   "what": "回るかの確かめで、スタッフの手がこれ以上ふさがっていたら「店が回らない」（ページでは使わない）",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  },
  "unstable_min": {
   "value": 5,
   "unit": "分",
   "what": "参考：入店待ちがこれ以上延びていく条件（判定には使わない）",
   "basis": "設定",
   "source": "",
   "n": null,
   "updated": ""
  }
 }
}
