{
  "factory_id": "F17",
  "design_revision": 2,
  "design_story": "해솔카레의 오전 교대는 북서 채소 검수동에서 감자와 양파를 확인하며 시작한다. 그 바로 남쪽 조리동에 배치별 손질 원료가 내려오면 솥 운전자는 향신료 승인창고에서 내린 카레 분말을 확인하고 충전할 파우치 배치를 지정한다. 북서 전처리와 남서 조리동 사이, 조리동과 동쪽 레토르트동 사이는 각각 짧은 밀폐 인계부로 연결한다. 압력동을 나온 파우치는 바로 남쪽 외포장동에서 상자에 담고 동측 도크로 출하한다. 바스켓 세척·반환 작업은 압력동의 서비스 구역에서 끝내며 장거리 마당 운반으로 만들지 않는다. 남측의 검사·탈의·사무·열원실은 서로 붙은 낮은 지원 wing이고, 각 실의 분석대·작업석·사물함 뒤 2.5m 작업 통로까지만 바닥을 둔다. 벽돌 전처리 박공, 조리동 곡면지붕, 압력동 톱니지붕과 낮은 포장 캐노피가 배치별 열환경을 드러낸다.",
  "site": {
    "width": 155,
    "depth": 142
  },
  "buildings": [
    {
      "id": "B01",
      "name": "채소 검수·절단동",
      "role": "production",
      "polygon": [
        [
          24.0,
          107.0
        ],
        [
          67.517,
          107.0
        ],
        [
          67.517,
          124.871
        ],
        [
          24.0,
          124.871
        ]
      ],
      "height": 8,
      "roof": {
        "type": "gable",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "brick",
        "window_band_height": 4.2
      },
      "openings": [
        {
          "id": "B01-OPEN-1",
          "building_id": "B01",
          "x": 31.0,
          "y": 107.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:0",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S01-S03-0"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B01-OPEN-2",
          "building_id": "B01",
          "x": 37.0,
          "y": 107.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:1",
            "equipment:S03:1"
          ],
          "route_ids": [
            "FLOW-S01-S03-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B01-OPEN-3",
          "building_id": "B01",
          "x": 48.0,
          "y": 107.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:2",
            "equipment:S03:2"
          ],
          "route_ids": [
            "FLOW-S01-S03-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B01-OPEN-4",
          "building_id": "B01",
          "x": 30.0,
          "y": 107.0,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:0",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S02-S03-0"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B01-OPEN-5",
          "building_id": "B01",
          "x": 37.0,
          "y": 107.0,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:1",
            "equipment:S03:1"
          ],
          "route_ids": [
            "FLOW-S02-S03-1"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B01-OPEN-6",
          "building_id": "B01",
          "x": 42.0,
          "y": 107.0,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:3",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S02-S03-3"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B01-OPEN-7",
          "building_id": "B01",
          "x": 46.0,
          "y": 107.0,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:2",
            "equipment:S03:2"
          ],
          "route_ids": [
            "FLOW-S02-S03-2"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B01-OPEN-8",
          "building_id": "B01",
          "x": 24.0,
          "y": 109.15,
          "width": 3.52,
          "sill_height": 0,
          "height": 3.6,
          "axis": "y",
          "kind": "vehicle_door",
          "connects": [
            "raw-dock",
            "shipping-dock",
            "zone:B01-BUFFER"
          ],
          "route_ids": [
            "INBOUND",
            "SERVICE-RING"
          ],
          "closure": "staff/vehicle doorway"
        },
        {
          "id": "B01-OPEN-9",
          "building_id": "B01",
          "x": 67.517,
          "y": 111.5,
          "width": 1.92,
          "sill_height": 0,
          "height": 2.4,
          "axis": "y",
          "kind": "vehicle_door",
          "connects": [
            "zone:B01-BUFFER",
            "zone:B05-STORE"
          ],
          "route_ids": [
            "APPROVED-STOCK-SUPPLY-B05-STORE"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "B02",
      "name": "배치 조리·소스 충전동",
      "role": "production",
      "polygon": [
        [
          24.0,
          74.0
        ],
        [
          70.208,
          74.0
        ],
        [
          70.208,
          103.544
        ],
        [
          24.0,
          103.544
        ]
      ],
      "height": 8,
      "roof": {
        "type": "barrel",
        "axis": "y",
        "pitch": 0.08
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "metal",
        "window_band_height": 4.2
      },
      "openings": [
        {
          "id": "B02-OPEN-1",
          "building_id": "B02",
          "x": 31.0,
          "y": 103.544,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:0",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S01-S03-0"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-OPEN-2",
          "building_id": "B02",
          "x": 37.0,
          "y": 103.544,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:1",
            "equipment:S03:1"
          ],
          "route_ids": [
            "FLOW-S01-S03-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-OPEN-3",
          "building_id": "B02",
          "x": 48.0,
          "y": 103.544,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:2",
            "equipment:S03:2"
          ],
          "route_ids": [
            "FLOW-S01-S03-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-OPEN-4",
          "building_id": "B02",
          "x": 30.0,
          "y": 103.544,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:0",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S02-S03-0"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B02-OPEN-5",
          "building_id": "B02",
          "x": 37.0,
          "y": 103.544,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:1",
            "equipment:S03:1"
          ],
          "route_ids": [
            "FLOW-S02-S03-1"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B02-OPEN-6",
          "building_id": "B02",
          "x": 42.0,
          "y": 103.544,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:3",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S02-S03-3"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B02-OPEN-7",
          "building_id": "B02",
          "x": 46.0,
          "y": 103.544,
          "width": 0.57,
          "sill_height": 2.755,
          "height": 0.49,
          "axis": "x",
          "kind": "pipe_sleeve",
          "connects": [
            "equipment:S02:2",
            "equipment:S03:2"
          ],
          "route_ids": [
            "FLOW-S02-S03-2"
          ],
          "closure": "sealed sanitary wall penetration"
        },
        {
          "id": "B02-OPEN-8",
          "building_id": "B02",
          "x": 70.208,
          "y": 95.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:0",
            "equipment:S04:1",
            "equipment:S04:2",
            "equipment:S05:0",
            "equipment:S05:1"
          ],
          "route_ids": [
            "FLOW-S04-S05-0",
            "FLOW-S04-S05-1",
            "FLOW-S04-S05-2"
          ],
          "closure": "interlocked washable transfer shutter"
        }
      ]
    },
    {
      "id": "B03",
      "name": "바스켓·내압 살균동",
      "role": "production",
      "polygon": [
        [
          74.0,
          74.0
        ],
        [
          128.646,
          74.0
        ],
        [
          128.646,
          110.035
        ],
        [
          74.0,
          110.035
        ]
      ],
      "height": 9,
      "roof": {
        "type": "sawtooth",
        "axis": "x",
        "pitch": 0.08
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "concrete",
        "window_band_height": 4.2
      },
      "openings": [
        {
          "id": "B03-OPEN-1",
          "building_id": "B03",
          "x": 94.0,
          "y": 74.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S07:0",
            "equipment:S08:0",
            "equipment:S08:2"
          ],
          "route_ids": [
            "FLOW-S07-S08-0",
            "FLOW-S07-S08-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B03-OPEN-2",
          "building_id": "B03",
          "x": 110.0,
          "y": 74.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S07:1",
            "equipment:S08:1"
          ],
          "route_ids": [
            "FLOW-S07-S08-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B03-OPEN-3",
          "building_id": "B03",
          "x": 74.0,
          "y": 95.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:0",
            "equipment:S04:1",
            "equipment:S04:2",
            "equipment:S05:0",
            "equipment:S05:1"
          ],
          "route_ids": [
            "FLOW-S04-S05-0",
            "FLOW-S04-S05-1",
            "FLOW-S04-S05-2"
          ],
          "closure": "interlocked washable transfer shutter"
        }
      ]
    },
    {
      "id": "B04",
      "name": "파우치 외포장동",
      "role": "production",
      "polygon": [
        [
          74.0,
          50.0
        ],
        [
          136.901,
          50.0
        ],
        [
          136.901,
          70.4
        ],
        [
          74.0,
          70.4
        ]
      ],
      "height": 8,
      "roof": {
        "type": "flat",
        "axis": "y",
        "pitch": 0.08
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "metal",
        "window_band_height": 4.2
      },
      "openings": [
        {
          "id": "B04-OPEN-1",
          "building_id": "B04",
          "x": 94.0,
          "y": 70.4,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S07:0",
            "equipment:S08:0",
            "equipment:S08:2"
          ],
          "route_ids": [
            "FLOW-S07-S08-0",
            "FLOW-S07-S08-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B04-OPEN-2",
          "building_id": "B04",
          "x": 110.0,
          "y": 70.4,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S07:1",
            "equipment:S08:1"
          ],
          "route_ids": [
            "FLOW-S07-S08-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B04-OPEN-3",
          "building_id": "B04",
          "x": 136.901,
          "y": 52.15,
          "width": 3.52,
          "sill_height": 0,
          "height": 3.6,
          "axis": "y",
          "kind": "vehicle_door",
          "connects": [
            "raw-dock",
            "shipping-dock",
            "zone:B04-BUFFER"
          ],
          "route_ids": [
            "OUTBOUND",
            "SERVICE-RING"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "B05",
      "name": "카레 원료·향신료 승인창고",
      "role": "warehouse",
      "polygon": [
        [
          71.0,
          114.0
        ],
        [
          93.0,
          114.0
        ],
        [
          93.0,
          128.0
        ],
        [
          71.0,
          128.0
        ]
      ],
      "height": 8,
      "roof": {
        "type": "shed",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "brick",
        "window_band_height": 2.2
      },
      "openings": [
        {
          "id": "B05-OPEN-1",
          "building_id": "B05",
          "x": 92.0,
          "y": 114.0,
          "width": 1.92,
          "sill_height": 0,
          "height": 2.4,
          "axis": "x",
          "kind": "vehicle_door",
          "connects": [
            "zone:B01-BUFFER",
            "zone:B05-STORE"
          ],
          "route_ids": [
            "APPROVED-STOCK-SUPPLY-B05-STORE"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "LAB",
      "name": "원료·제품 품질 검사동",
      "role": "laboratory",
      "polygon": [
        [
          24,
          24
        ],
        [
          46,
          24
        ],
        [
          46,
          29.2
        ],
        [
          24,
          29.2
        ]
      ],
      "height": 7,
      "roof": {
        "type": "shed",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "concrete",
        "window_band_height": 3.2
      },
      "openings": [
        {
          "id": "LAB-OPEN-1",
          "building_id": "LAB",
          "x": 24,
          "y": 26.6,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "y",
          "kind": "personnel_door",
          "connects": [
            "building:LAB",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-LAB"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "STAFF",
      "name": "위생복 탈의·교대 휴게동",
      "role": "staff",
      "polygon": [
        [
          46,
          24
        ],
        [
          74,
          24
        ],
        [
          74,
          32.3
        ],
        [
          46,
          32.3
        ]
      ],
      "height": 7,
      "roof": {
        "type": "gable",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "brick",
        "window_band_height": 3.2
      },
      "openings": [
        {
          "id": "STAFF-OPEN-1",
          "building_id": "STAFF",
          "x": 60.0,
          "y": 24,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "x",
          "kind": "personnel_door",
          "connects": [
            "building:STAFF",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-STAFF"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "OFF",
      "name": "생산계획·배차 사무동",
      "role": "office",
      "polygon": [
        [
          74,
          24
        ],
        [
          94,
          24
        ],
        [
          94,
          32.0
        ],
        [
          74,
          32.0
        ]
      ],
      "height": 7,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "glass",
        "window_band_height": 3.2
      },
      "openings": [
        {
          "id": "OFF-OPEN-1",
          "building_id": "OFF",
          "x": 84.0,
          "y": 24,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "x",
          "kind": "personnel_door",
          "connects": [
            "building:OFF",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-OFF"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "UTIL",
      "name": "열원·냉열·정비동",
      "role": "utility",
      "polygon": [
        [
          94,
          24
        ],
        [
          130,
          24
        ],
        [
          130,
          40.1
        ],
        [
          94,
          40.1
        ]
      ],
      "height": 9,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.92,
          0.83,
          0.63
        ],
        "accent": [
          0.57,
          0.25,
          0.1
        ],
        "material": "metal",
        "window_band_height": 3.2
      },
      "openings": [
        {
          "id": "UTIL-OPEN-1",
          "building_id": "UTIL",
          "x": 112.0,
          "y": 24,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "x",
          "kind": "personnel_door",
          "connects": [
            "building:UTIL",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-UTIL"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    }
  ],
  "zones": [
    {
      "id": "B01-AISLE",
      "name": "밀폐 배치 인계·정비 통로",
      "role": "circulation",
      "building_id": "B01",
      "x": 24.0,
      "y": 107.0,
      "width": 43.517,
      "depth": 4,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B01-PROCESS",
      "name": "채소 검수·절단동 작업홀",
      "role": "process",
      "building_id": "B01",
      "x": 24.0,
      "y": 111.0,
      "width": 30.517,
      "depth": 13.871,
      "stage_ids": [
        "S01",
        "S02"
      ],
      "fixtures": [
        {
          "id": "B01-PROCESS-FX01",
          "type": "product_bins",
          "x": 51.32,
          "y": 113.6,
          "width": 3.2,
          "depth": 2.2,
          "height": 1.3,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "채소 검수·절단동 작업홀 / 투입 승인 중간품"
        }
      ],
      "openings": [
        {
          "id": "B01-PROCESS-OPEN-1",
          "building_id": "B01",
          "zone_id": "B01-PROCESS",
          "x": 54.178,
          "y": 111.0,
          "width": 0.677,
          "sill_height": 0,
          "height": 3.6,
          "axis": "x",
          "kind": "vehicle_door",
          "connects": [
            "raw-dock",
            "zone:B01-BUFFER"
          ],
          "route_ids": [
            "INBOUND"
          ],
          "closure": "staff/vehicle doorway"
        },
        {
          "id": "B01-PROCESS-OPEN-2",
          "building_id": "B01",
          "zone_id": "B01-PROCESS",
          "x": 31.0,
          "y": 111.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:0",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S01-S03-0"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B01-PROCESS-OPEN-3",
          "building_id": "B01",
          "zone_id": "B01-PROCESS",
          "x": 37.0,
          "y": 111.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:1",
            "equipment:S03:1"
          ],
          "route_ids": [
            "FLOW-S01-S03-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B01-PROCESS-OPEN-4",
          "building_id": "B01",
          "zone_id": "B01-PROCESS",
          "x": 48.0,
          "y": 111.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:2",
            "equipment:S03:2"
          ],
          "route_ids": [
            "FLOW-S01-S03-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B01-PROCESS-OPEN-5",
          "building_id": "B01",
          "zone_id": "B01-PROCESS",
          "x": 54.517,
          "y": 111.527,
          "width": 1.055,
          "sill_height": 0,
          "height": 3.6,
          "axis": "y",
          "kind": "vehicle_door",
          "connects": [
            "raw-dock",
            "zone:B01-BUFFER"
          ],
          "route_ids": [
            "INBOUND"
          ],
          "closure": "staff/vehicle doorway"
        },
        {
          "id": "B01-PROCESS-OPEN-6",
          "building_id": "B01",
          "zone_id": "B01-PROCESS",
          "x": 54.517,
          "y": 111.517,
          "width": 1.035,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:0",
            "equipment:S01:1",
            "equipment:S01:2",
            "zone:B01-BUFFER"
          ],
          "route_ids": [
            "RAW-FEED-0",
            "RAW-FEED-1",
            "RAW-FEED-2"
          ],
          "closure": "interlocked washable transfer shutter"
        }
      ]
    },
    {
      "id": "B01-BUFFER",
      "name": "원료·부자재 승인 버퍼",
      "role": "warehouse",
      "building_id": "B01",
      "x": 57.517,
      "y": 111.0,
      "width": 10.0,
      "depth": 7.629,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B01-BUFFER-FX01",
          "type": "pallet_rack",
          "x": 62.32,
          "y": 113.6,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 로트별 승인 재고"
        }
      ],
      "openings": []
    },
    {
      "id": "B01-SERVICE",
      "name": "채소 검수·절단동 공정 유틸리티·위생 준비실",
      "role": "utility",
      "building_id": "B01",
      "x": 57.517,
      "y": 118.629,
      "width": 10.0,
      "depth": 6.242,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B01-SERVICE-FX01",
          "type": "electrical_bank",
          "x": 61.32,
          "y": 120.6,
          "width": 4,
          "depth": 1.2,
          "height": 2.2,
          "count": 4,
          "rows": 1,
          "columns": 4,
          "angle": 0,
          "label": "분전·인버터·정비 잠금반"
        }
      ],
      "openings": []
    },
    {
      "id": "B01-SERVICE-AISLE",
      "name": "생산·버퍼 사이 3m 서비스 통로",
      "role": "circulation",
      "building_id": "B01",
      "x": 54.517,
      "y": 111.0,
      "width": 3,
      "depth": 13.871,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B02-AISLE",
      "name": "밀폐 배치 인계·정비 통로",
      "role": "circulation",
      "building_id": "B02",
      "x": 24.0,
      "y": 74.0,
      "width": 46.208,
      "depth": 4,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B02-PROCESS",
      "name": "배치 조리·소스 충전동 작업홀",
      "role": "process",
      "building_id": "B02",
      "x": 24.0,
      "y": 78.0,
      "width": 33.208,
      "depth": 25.544,
      "stage_ids": [
        "S03",
        "S04"
      ],
      "fixtures": [
        {
          "id": "B02-PROCESS-FX01",
          "type": "product_bins",
          "x": 27.32,
          "y": 97.4,
          "width": 3.2,
          "depth": 2.2,
          "height": 1.3,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "배치 조리·소스 충전동 작업홀 / 투입 승인 중간품"
        },
        {
          "id": "B02-PROCESS-FX02",
          "type": "worktable",
          "x": 33.32,
          "y": 97.4,
          "width": 3,
          "depth": 1.5,
          "height": 0.95,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "공정 전환·중간품 품질 작업대"
        },
        {
          "id": "B02-PROCESS-FX03",
          "type": "bin_rack",
          "x": 38.32,
          "y": 97.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B02-PROCESS-FX04",
          "type": "dock_staging",
          "x": 44.32,
          "y": 97.4,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.1,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "다음 공정 인계용 밀폐 토트"
        },
        {
          "id": "B02-PROCESS-FX05",
          "type": "weigh_station",
          "x": 49.32,
          "y": 100.4,
          "width": 2.4,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "배치 투입·수율 확인 계량대"
        },
        {
          "id": "B02-PROCESS-FX06",
          "type": "wash_station",
          "x": 54.32,
          "y": 100.4,
          "width": 2.8,
          "depth": 1.3,
          "height": 1.3,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "공정 작업자 위생·도구 세척"
        },
        {
          "id": "B02-PROCESS-FX07",
          "type": "product_bins",
          "x": 33.32,
          "y": 101.4,
          "width": 3.2,
          "depth": 2.2,
          "height": 1.3,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "배치 조리·소스 충전동 작업홀 / 투입 승인 중간품"
        },
        {
          "id": "B02-PROCESS-FX08",
          "type": "worktable",
          "x": 27.32,
          "y": 101.4,
          "width": 3,
          "depth": 1.5,
          "height": 0.95,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "공정 전환·중간품 품질 작업대"
        },
        {
          "id": "B02-PROCESS-FX09",
          "type": "bin_rack",
          "x": 39.32,
          "y": 101.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B02-PROCESS-FX10",
          "type": "weigh_station",
          "x": 44.32,
          "y": 101.4,
          "width": 2.4,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "배치 투입·수율 확인 계량대"
        }
      ],
      "openings": [
        {
          "id": "B02-PROCESS-OPEN-1",
          "building_id": "B02",
          "zone_id": "B02-PROCESS",
          "x": 31.0,
          "y": 103.544,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:0",
            "equipment:S03:0"
          ],
          "route_ids": [
            "FLOW-S01-S03-0"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-PROCESS-OPEN-2",
          "building_id": "B02",
          "zone_id": "B02-PROCESS",
          "x": 37.0,
          "y": 103.544,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:1",
            "equipment:S03:1"
          ],
          "route_ids": [
            "FLOW-S01-S03-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-PROCESS-OPEN-3",
          "building_id": "B02",
          "zone_id": "B02-PROCESS",
          "x": 48.0,
          "y": 103.544,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S01:2",
            "equipment:S03:2"
          ],
          "route_ids": [
            "FLOW-S01-S03-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-PROCESS-OPEN-4",
          "building_id": "B02",
          "zone_id": "B02-PROCESS",
          "x": 57.208,
          "y": 93.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:0",
            "equipment:S04:1",
            "equipment:S05:0",
            "equipment:S05:1"
          ],
          "route_ids": [
            "FLOW-S04-S05-0",
            "FLOW-S04-S05-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-PROCESS-OPEN-5",
          "building_id": "B02",
          "zone_id": "B02-PROCESS",
          "x": 57.208,
          "y": 95.5,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:2",
            "equipment:S05:0"
          ],
          "route_ids": [
            "FLOW-S04-S05-2"
          ],
          "closure": "interlocked washable transfer shutter"
        }
      ]
    },
    {
      "id": "B02-BUFFER",
      "name": "원료·부자재 승인 버퍼",
      "role": "warehouse",
      "building_id": "B02",
      "x": 60.208,
      "y": 78.0,
      "width": 10.0,
      "depth": 14.049,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B02-BUFFER-FX01",
          "type": "pallet_rack",
          "x": 65.32,
          "y": 80.4,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 로트별 승인 재고"
        },
        {
          "id": "B02-BUFFER-FX02",
          "type": "floor_pallets",
          "x": 63.32,
          "y": 84.4,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.4,
          "count": 6,
          "rows": 2,
          "columns": 3,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 피킹 대기"
        },
        {
          "id": "B02-BUFFER-FX03",
          "type": "pallet_rack",
          "x": 65.32,
          "y": 88.4,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 로트별 승인 재고"
        }
      ],
      "openings": []
    },
    {
      "id": "B02-SERVICE",
      "name": "배치 조리·소스 충전동 공정 유틸리티·위생 준비실",
      "role": "utility",
      "building_id": "B02",
      "x": 60.208,
      "y": 92.049,
      "width": 10.0,
      "depth": 11.495,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B02-SERVICE-FX01",
          "type": "electrical_bank",
          "x": 63.32,
          "y": 94.4,
          "width": 4,
          "depth": 1.2,
          "height": 2.2,
          "count": 4,
          "rows": 1,
          "columns": 4,
          "angle": 0,
          "label": "분전·인버터·정비 잠금반"
        },
        {
          "id": "B02-SERVICE-FX02",
          "type": "compressor",
          "x": 63.32,
          "y": 98.4,
          "width": 3.5,
          "depth": 2.5,
          "height": 2.2,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "생산 공압·건조 공기 공급"
        }
      ],
      "openings": [
        {
          "id": "B02-SERVICE-OPEN-1",
          "building_id": "B02",
          "zone_id": "B02-SERVICE",
          "x": 60.208,
          "y": 93.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:0",
            "equipment:S04:1",
            "equipment:S05:0",
            "equipment:S05:1"
          ],
          "route_ids": [
            "FLOW-S04-S05-0",
            "FLOW-S04-S05-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-SERVICE-OPEN-2",
          "building_id": "B02",
          "zone_id": "B02-SERVICE",
          "x": 60.208,
          "y": 95.5,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:2",
            "equipment:S05:0"
          ],
          "route_ids": [
            "FLOW-S04-S05-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B02-SERVICE-OPEN-3",
          "building_id": "B02",
          "zone_id": "B02-SERVICE",
          "x": 70.208,
          "y": 95.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:0",
            "equipment:S04:1",
            "equipment:S04:2",
            "equipment:S05:0",
            "equipment:S05:1"
          ],
          "route_ids": [
            "FLOW-S04-S05-0",
            "FLOW-S04-S05-1",
            "FLOW-S04-S05-2"
          ],
          "closure": "interlocked washable transfer shutter"
        }
      ]
    },
    {
      "id": "B02-SERVICE-AISLE",
      "name": "생산·버퍼 사이 3m 서비스 통로",
      "role": "circulation",
      "building_id": "B02",
      "x": 57.208,
      "y": 78.0,
      "width": 3,
      "depth": 25.544,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B03-AISLE",
      "name": "밀폐 배치 인계·정비 통로",
      "role": "circulation",
      "building_id": "B03",
      "x": 74.0,
      "y": 74.0,
      "width": 54.646,
      "depth": 4,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B03-PROCESS",
      "name": "바스켓·내압 살균동 작업홀",
      "role": "process",
      "building_id": "B03",
      "x": 74.0,
      "y": 78.0,
      "width": 41.646,
      "depth": 32.035,
      "stage_ids": [
        "S05",
        "S06",
        "S07"
      ],
      "fixtures": [
        {
          "id": "B03-PROCESS-FX01",
          "type": "worktable",
          "x": 95.3,
          "y": 99.0,
          "width": 1.2,
          "depth": 1.0,
          "height": 1.0,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "레일에 정렬한 바스켓을 적재 셀과 열처리 대기 위치 사이에 이송한다",
          "model_profile": "food_basket_handoff"
        },
        {
          "id": "B03-PROCESS-FX02",
          "type": "product_bins",
          "x": 104.0,
          "y": 96.4,
          "width": 3.2,
          "depth": 2.2,
          "height": 1.3,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "바스켓·내압 살균동 작업홀 / 투입 승인 중간품"
        },
        {
          "id": "B03-PROCESS-FX03",
          "type": "worktable",
          "x": 110.0,
          "y": 96.4,
          "width": 3,
          "depth": 1.5,
          "height": 0.95,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "공정 전환·중간품 품질 작업대"
        },
        {
          "id": "B03-PROCESS-FX04",
          "type": "bin_rack",
          "x": 104.0,
          "y": 100.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B03-PROCESS-FX05",
          "type": "dock_staging",
          "x": 110.0,
          "y": 100.4,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.1,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "다음 공정 인계용 밀폐 토트"
        },
        {
          "id": "B03-PROCESS-FX06",
          "type": "weigh_station",
          "x": 77.0,
          "y": 104.4,
          "width": 2.4,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "배치 투입·수율 확인 계량대"
        },
        {
          "id": "B03-PROCESS-FX07",
          "type": "wash_station",
          "x": 82.0,
          "y": 104.4,
          "width": 2.8,
          "depth": 1.3,
          "height": 1.3,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "공정 작업자 위생·도구 세척"
        },
        {
          "id": "B03-PROCESS-FX08",
          "type": "product_bins",
          "x": 104.0,
          "y": 104.4,
          "width": 3.2,
          "depth": 2.2,
          "height": 1.3,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "바스켓·내압 살균동 작업홀 / 투입 승인 중간품"
        },
        {
          "id": "B03-PROCESS-FX09",
          "type": "worktable",
          "x": 87.0,
          "y": 104.4,
          "width": 3,
          "depth": 1.5,
          "height": 0.95,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "공정 전환·중간품 품질 작업대"
        },
        {
          "id": "B03-PROCESS-FX10",
          "type": "bin_rack",
          "x": 92.0,
          "y": 104.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B03-PROCESS-FX11",
          "type": "dock_staging",
          "x": 98.0,
          "y": 105.4,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.1,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "다음 공정 인계용 밀폐 토트"
        },
        {
          "id": "B03-PROCESS-FX12",
          "type": "weigh_station",
          "x": 109.0,
          "y": 104.4,
          "width": 2.4,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "배치 투입·수율 확인 계량대"
        },
        {
          "id": "B03-PROCESS-FX13",
          "type": "bin_rack",
          "x": 77.0,
          "y": 108.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B03-PROCESS-FX14",
          "type": "bin_rack",
          "x": 82.0,
          "y": 108.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B03-PROCESS-FX15",
          "type": "bin_rack",
          "x": 87.0,
          "y": 108.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B03-PROCESS-FX16",
          "type": "bin_rack",
          "x": 92.0,
          "y": 108.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B03-PROCESS-FX17",
          "type": "bin_rack",
          "x": 104.0,
          "y": 108.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B03-PROCESS-FX18",
          "type": "bin_rack",
          "x": 109.0,
          "y": 108.4,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        }
      ],
      "openings": [
        {
          "id": "B03-PROCESS-OPEN-1",
          "building_id": "B03",
          "zone_id": "B03-PROCESS",
          "x": 93.5,
          "y": 78.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S07:0",
            "equipment:S08:0",
            "equipment:S08:2"
          ],
          "route_ids": [
            "FLOW-S07-S08-0",
            "FLOW-S07-S08-2"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B03-PROCESS-OPEN-2",
          "building_id": "B03",
          "zone_id": "B03-PROCESS",
          "x": 110.0,
          "y": 78.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "x",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S07:1",
            "equipment:S08:1"
          ],
          "route_ids": [
            "FLOW-S07-S08-1"
          ],
          "closure": "interlocked washable transfer shutter"
        },
        {
          "id": "B03-PROCESS-OPEN-3",
          "building_id": "B03",
          "zone_id": "B03-PROCESS",
          "x": 74.0,
          "y": 95.0,
          "width": 1.07,
          "sill_height": 0.6,
          "height": 1.05,
          "axis": "y",
          "kind": "transfer_hatch",
          "connects": [
            "equipment:S04:0",
            "equipment:S04:1",
            "equipment:S04:2",
            "equipment:S05:0",
            "equipment:S05:1"
          ],
          "route_ids": [
            "FLOW-S04-S05-0",
            "FLOW-S04-S05-1",
            "FLOW-S04-S05-2"
          ],
          "closure": "interlocked washable transfer shutter"
        }
      ]
    },
    {
      "id": "B03-BUFFER",
      "name": "원료·부자재 승인 버퍼",
      "role": "warehouse",
      "building_id": "B03",
      "x": 118.646,
      "y": 78.0,
      "width": 10.0,
      "depth": 17.619,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B03-BUFFER-FX01",
          "type": "pallet_rack",
          "x": 124.0,
          "y": 80.4,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 로트별 승인 재고"
        },
        {
          "id": "B03-BUFFER-FX02",
          "type": "floor_pallets",
          "x": 122.0,
          "y": 84.4,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.4,
          "count": 6,
          "rows": 2,
          "columns": 3,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 피킹 대기"
        },
        {
          "id": "B03-BUFFER-FX03",
          "type": "pallet_rack",
          "x": 124.0,
          "y": 88.4,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 로트별 승인 재고"
        },
        {
          "id": "B03-BUFFER-FX04",
          "type": "floor_pallets",
          "x": 122.0,
          "y": 92.4,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.4,
          "count": 6,
          "rows": 2,
          "columns": 3,
          "angle": 0,
          "label": "원료·부자재 승인 버퍼 / 피킹 대기"
        }
      ],
      "openings": []
    },
    {
      "id": "B03-SERVICE",
      "name": "바스켓·내압 살균동 공정 유틸리티·위생 준비실",
      "role": "utility",
      "building_id": "B03",
      "x": 118.646,
      "y": 95.619,
      "width": 10.0,
      "depth": 14.416,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B03-SERVICE-FX01",
          "type": "electrical_bank",
          "x": 122.0,
          "y": 97.4,
          "width": 4,
          "depth": 1.2,
          "height": 2.2,
          "count": 4,
          "rows": 1,
          "columns": 4,
          "angle": 0,
          "label": "분전·인버터·정비 잠금반"
        },
        {
          "id": "B03-SERVICE-FX02",
          "type": "compressor",
          "x": 122.0,
          "y": 101.4,
          "width": 3.5,
          "depth": 2.5,
          "height": 2.2,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "생산 공압·건조 공기 공급"
        },
        {
          "id": "B03-SERVICE-FX03",
          "type": "cip_skid",
          "x": 122.0,
          "y": 105.4,
          "width": 4.5,
          "depth": 2.4,
          "height": 2.4,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "제품 이송관 CIP 공급·회수"
        }
      ],
      "openings": []
    },
    {
      "id": "B03-SERVICE-AISLE",
      "name": "생산·버퍼 사이 3m 서비스 통로",
      "role": "circulation",
      "building_id": "B03",
      "x": 115.646,
      "y": 78.0,
      "width": 3,
      "depth": 32.035,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B04-AISLE",
      "name": "밀폐 배치 인계·정비 통로",
      "role": "circulation",
      "building_id": "B04",
      "x": 74.0,
      "y": 50.0,
      "width": 62.901,
      "depth": 4,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B04-PROCESS",
      "name": "파우치 외포장동 작업홀",
      "role": "packaging",
      "building_id": "B04",
      "x": 74.0,
      "y": 54.0,
      "width": 49.901,
      "depth": 16.4,
      "stage_ids": [
        "S08"
      ],
      "fixtures": [
        {
          "id": "B04-PROCESS-FX01",
          "type": "worktable",
          "x": 108.5,
          "y": 65.8,
          "width": 1.2,
          "depth": 1.0,
          "height": 1.0,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "봉합을 마친 제품 묶음을 골판지 박스에 넣고 내용물 누락이 없도록 상부 비전과 동기화한다",
          "model_profile": "food_case_handoff"
        },
        {
          "id": "B04-PROCESS-FX02",
          "type": "worktable",
          "x": 118.6,
          "y": 64.1,
          "width": 1.2,
          "depth": 1.0,
          "height": 1.0,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "봉합을 마친 제품 묶음을 골판지 박스에 넣고 내용물 누락이 없도록 상부 비전과 동기화한다",
          "model_profile": "food_case_handoff"
        },
        {
          "id": "B04-PROCESS-FX03",
          "type": "dock_staging",
          "x": 81.9,
          "y": 59.5,
          "width": 1.2,
          "depth": 1.0,
          "height": 1.0,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "외포장 박스의 라벨을 바깥으로 향하게 적층하고 미끄럼 방지 시트를 층 사이에 공급한다"
        },
        {
          "id": "B04-PROCESS-FX04",
          "type": "dock_staging",
          "x": 92.1,
          "y": 59.5,
          "width": 1.2,
          "depth": 1.0,
          "height": 1.0,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "외포장 박스의 라벨을 바깥으로 향하게 적층하고 미끄럼 방지 시트를 층 사이에 공급한다"
        },
        {
          "id": "B04-PROCESS-FX05",
          "type": "product_bins",
          "x": 120.0,
          "y": 57.0,
          "width": 3.2,
          "depth": 2.2,
          "height": 1.3,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "파우치 외포장동 작업홀 / 투입 승인 중간품"
        },
        {
          "id": "B04-PROCESS-FX06",
          "type": "worktable",
          "x": 77.0,
          "y": 66.0,
          "width": 3,
          "depth": 1.5,
          "height": 0.95,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "공정 전환·중간품 품질 작업대"
        },
        {
          "id": "B04-PROCESS-FX07",
          "type": "bin_rack",
          "x": 82.0,
          "y": 66.0,
          "width": 3,
          "depth": 1.2,
          "height": 2.3,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "교체 치구·소모품·위생 용구"
        },
        {
          "id": "B04-PROCESS-FX08",
          "type": "dock_staging",
          "x": 88.0,
          "y": 67.0,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.1,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "다음 공정 인계용 밀폐 토트"
        },
        {
          "id": "B04-PROCESS-FX09",
          "type": "weigh_station",
          "x": 93.0,
          "y": 66.0,
          "width": 2.4,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "배치 투입·수율 확인 계량대"
        }
      ],
      "openings": []
    },
    {
      "id": "B04-BUFFER",
      "name": "완제품 승인·보류 버퍼",
      "role": "warehouse",
      "building_id": "B04",
      "x": 126.901,
      "y": 54.0,
      "width": 10.0,
      "depth": 9.02,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B04-BUFFER-FX01",
          "type": "pallet_rack",
          "x": 132.0,
          "y": 56.0,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "완제품 승인·보류 버퍼 / 로트별 승인 재고"
        },
        {
          "id": "B04-BUFFER-FX02",
          "type": "floor_pallets",
          "x": 130.0,
          "y": 60.0,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.4,
          "count": 6,
          "rows": 2,
          "columns": 3,
          "angle": 0,
          "label": "완제품 승인·보류 버퍼 / 피킹 대기"
        }
      ],
      "openings": []
    },
    {
      "id": "B04-SERVICE",
      "name": "파우치 외포장동 공정 유틸리티·위생 준비실",
      "role": "utility",
      "building_id": "B04",
      "x": 126.901,
      "y": 63.02,
      "width": 10.0,
      "depth": 7.38,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B04-SERVICE-FX01",
          "type": "electrical_bank",
          "x": 130.0,
          "y": 65.0,
          "width": 4,
          "depth": 1.2,
          "height": 2.2,
          "count": 4,
          "rows": 1,
          "columns": 4,
          "angle": 0,
          "label": "분전·인버터·정비 잠금반"
        },
        {
          "id": "B04-SERVICE-FX02",
          "type": "pipe_rack",
          "x": 131.0,
          "y": 68.0,
          "width": 6,
          "depth": 1.3,
          "height": 3.6,
          "count": 4,
          "rows": 1,
          "columns": 4,
          "angle": 0,
          "label": "증기·응축수 회수 헤더"
        }
      ],
      "openings": []
    },
    {
      "id": "B04-SERVICE-AISLE",
      "name": "생산·버퍼 사이 3m 서비스 통로",
      "role": "circulation",
      "building_id": "B04",
      "x": 123.901,
      "y": 54.0,
      "width": 3,
      "depth": 16.4,
      "stage_ids": [],
      "fixtures": [],
      "openings": []
    },
    {
      "id": "B05-STORE",
      "name": "카레 원료·향신료 승인창고",
      "role": "warehouse",
      "building_id": "B05",
      "x": 71.0,
      "y": 114.0,
      "width": 22,
      "depth": 14,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "B05-STORE-FX01",
          "type": "pallet_rack",
          "x": 76.32,
          "y": 116.0,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "카레 원료·향신료 승인창고 / 로트별 승인 재고"
        },
        {
          "id": "B05-STORE-FX02",
          "type": "floor_pallets",
          "x": 83.32,
          "y": 117.0,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.4,
          "count": 6,
          "rows": 2,
          "columns": 3,
          "angle": 0,
          "label": "카레 원료·향신료 승인창고 / 피킹 대기"
        },
        {
          "id": "B05-STORE-FX03",
          "type": "pallet_rack",
          "x": 76.32,
          "y": 120.0,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "카레 원료·향신료 승인창고 / 로트별 승인 재고"
        },
        {
          "id": "B05-STORE-FX04",
          "type": "floor_pallets",
          "x": 89.32,
          "y": 117.0,
          "width": 3.6,
          "depth": 2.4,
          "height": 1.4,
          "count": 6,
          "rows": 2,
          "columns": 3,
          "angle": 0,
          "label": "카레 원료·향신료 승인창고 / 피킹 대기"
        },
        {
          "id": "B05-STORE-FX05",
          "type": "pallet_rack",
          "x": 85.32,
          "y": 121.0,
          "width": 7,
          "depth": 2.0,
          "height": 6.2,
          "count": 18,
          "rows": 3,
          "columns": 6,
          "angle": 0,
          "label": "카레 원료·향신료 승인창고 / 로트별 승인 재고"
        }
      ],
      "openings": []
    },
    {
      "id": "LAB-ROOM",
      "name": "원료·제품 품질 검사동",
      "role": "laboratory",
      "building_id": "LAB",
      "x": 24,
      "y": 24,
      "width": 22,
      "depth": 5.2,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "LAB-ROOM-FX01",
          "type": "lab_bench",
          "x": 27,
          "y": 26,
          "width": 3.5,
          "depth": 1.3,
          "height": 0.95,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "원료 시료·이화학 분석 벤치"
        },
        {
          "id": "LAB-ROOM-FX02",
          "type": "cabinet",
          "x": 32,
          "y": 26,
          "width": 2.4,
          "depth": 1,
          "height": 2,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "보류 시료·표준기 보관"
        },
        {
          "id": "LAB-ROOM-FX03",
          "type": "lab_bench",
          "x": 37,
          "y": 26,
          "width": 3.5,
          "depth": 1.3,
          "height": 0.95,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "원료 시료·이화학 분석 벤치"
        },
        {
          "id": "LAB-ROOM-FX04",
          "type": "cabinet",
          "x": 42,
          "y": 26,
          "width": 2.4,
          "depth": 1,
          "height": 2,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "보류 시료·표준기 보관"
        }
      ],
      "openings": [
        {
          "id": "LAB-ROOM-OPEN-1",
          "building_id": "LAB",
          "zone_id": "LAB-ROOM",
          "x": 24,
          "y": 26.6,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "y",
          "kind": "personnel_door",
          "connects": [
            "building:LAB",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-LAB"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "STAFF-ROOM",
      "name": "위생복 탈의·교대 휴게동",
      "role": "staff",
      "building_id": "STAFF",
      "x": 46,
      "y": 24,
      "width": 28,
      "depth": 8.3,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "STAFF-ROOM-FX01",
          "type": "locker_bank",
          "x": 49,
          "y": 26,
          "width": 4,
          "depth": 1.2,
          "height": 2,
          "count": 12,
          "rows": 1,
          "columns": 12,
          "angle": 0,
          "label": "청결·일반복 분리 사물함"
        },
        {
          "id": "STAFF-ROOM-FX02",
          "type": "wash_station",
          "x": 54,
          "y": 26,
          "width": 3,
          "depth": 1.2,
          "height": 1.3,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "장화·손 위생 진입대"
        },
        {
          "id": "STAFF-ROOM-FX03",
          "type": "worktable",
          "x": 59,
          "y": 26,
          "width": 3,
          "depth": 1.6,
          "height": 0.75,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "교대 브리핑·휴게 테이블"
        },
        {
          "id": "STAFF-ROOM-FX04",
          "type": "locker_bank",
          "x": 64,
          "y": 26,
          "width": 4,
          "depth": 1.2,
          "height": 2,
          "count": 12,
          "rows": 1,
          "columns": 12,
          "angle": 0,
          "label": "청결·일반복 분리 사물함"
        },
        {
          "id": "STAFF-ROOM-FX05",
          "type": "wash_station",
          "x": 69,
          "y": 26,
          "width": 3,
          "depth": 1.2,
          "height": 1.3,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "장화·손 위생 진입대"
        },
        {
          "id": "STAFF-ROOM-FX06",
          "type": "worktable",
          "x": 49,
          "y": 29,
          "width": 3,
          "depth": 1.6,
          "height": 0.75,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "교대 브리핑·휴게 테이블"
        },
        {
          "id": "STAFF-ROOM-FX07",
          "type": "locker_bank",
          "x": 54,
          "y": 29,
          "width": 4,
          "depth": 1.2,
          "height": 2,
          "count": 12,
          "rows": 1,
          "columns": 12,
          "angle": 0,
          "label": "청결·일반복 분리 사물함"
        }
      ],
      "openings": [
        {
          "id": "STAFF-ROOM-OPEN-1",
          "building_id": "STAFF",
          "zone_id": "STAFF-ROOM",
          "x": 60.0,
          "y": 24,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "x",
          "kind": "personnel_door",
          "connects": [
            "building:STAFF",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-STAFF"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "OFF-ROOM",
      "name": "생산계획·배차 사무동",
      "role": "office",
      "building_id": "OFF",
      "x": 74,
      "y": 24,
      "width": 20,
      "depth": 8.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "OFF-ROOM-FX01",
          "type": "office_desks",
          "x": 78,
          "y": 27,
          "width": 5,
          "depth": 3,
          "height": 1.4,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "생산계획·출하 문서 작업석"
        },
        {
          "id": "OFF-ROOM-FX02",
          "type": "cabinet",
          "x": 84,
          "y": 26,
          "width": 2.4,
          "depth": 1,
          "height": 2,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "생산 배치기록 문서장"
        },
        {
          "id": "OFF-ROOM-FX03",
          "type": "office_desks",
          "x": 90,
          "y": 27,
          "width": 5,
          "depth": 3,
          "height": 1.4,
          "count": 4,
          "rows": 2,
          "columns": 2,
          "angle": 0,
          "label": "생산계획·출하 문서 작업석"
        },
        {
          "id": "OFF-ROOM-FX04",
          "type": "cabinet",
          "x": 84,
          "y": 29,
          "width": 2.4,
          "depth": 1,
          "height": 2,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "생산 배치기록 문서장"
        }
      ],
      "openings": [
        {
          "id": "OFF-ROOM-OPEN-1",
          "building_id": "OFF",
          "zone_id": "OFF-ROOM",
          "x": 84.0,
          "y": 24,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "x",
          "kind": "personnel_door",
          "connects": [
            "building:OFF",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-OFF"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "UTIL-PLANT",
      "name": "공조·공압·열원 기계실",
      "role": "utility",
      "building_id": "UTIL",
      "x": 94,
      "y": 24,
      "width": 36,
      "depth": 10.2,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "UTIL-PLANT-FX01",
          "type": "electrical_bank",
          "x": 97,
          "y": 26,
          "width": 4,
          "depth": 1.2,
          "height": 2.2,
          "count": 4,
          "rows": 1,
          "columns": 4,
          "angle": 0,
          "label": "분전·인버터·정비 잠금반"
        },
        {
          "id": "UTIL-PLANT-FX02",
          "type": "compressor",
          "x": 103,
          "y": 27,
          "width": 3.5,
          "depth": 2.5,
          "height": 2.2,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "생산 공압·건조 공기 공급"
        },
        {
          "id": "UTIL-PLANT-FX03",
          "type": "cip_skid",
          "x": 109,
          "y": 27,
          "width": 4.5,
          "depth": 2.4,
          "height": 2.4,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "제품 이송관 CIP 공급·회수"
        },
        {
          "id": "UTIL-PLANT-FX04",
          "type": "tank_bank",
          "x": 116,
          "y": 27,
          "width": 5,
          "depth": 2.6,
          "height": 3.5,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "세척수·공정용수 분리 탱크"
        },
        {
          "id": "UTIL-PLANT-FX05",
          "type": "boiler",
          "x": 123,
          "y": 27,
          "width": 5,
          "depth": 3,
          "height": 3.8,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "조리·살균·건조 공정 증기 열원"
        },
        {
          "id": "UTIL-PLANT-FX06",
          "type": "pipe_rack",
          "x": 98,
          "y": 31,
          "width": 6,
          "depth": 1.3,
          "height": 3.6,
          "count": 4,
          "rows": 1,
          "columns": 4,
          "angle": 0,
          "label": "증기·응축수 회수 헤더"
        }
      ],
      "openings": [
        {
          "id": "UTIL-PLANT-OPEN-1",
          "building_id": "UTIL",
          "zone_id": "UTIL-PLANT",
          "x": 112.0,
          "y": 24,
          "width": 2.12,
          "sill_height": 0,
          "height": 2.4,
          "axis": "x",
          "kind": "personnel_door",
          "connects": [
            "building:UTIL",
            "staff-gate"
          ],
          "route_ids": [
            "SUPPORT-ACCESS-UTIL"
          ],
          "closure": "staff/vehicle doorway"
        }
      ]
    },
    {
      "id": "UTIL-MAINT",
      "name": "모터·씰·센서 정비 및 예비품실",
      "role": "maintenance",
      "building_id": "UTIL",
      "x": 94,
      "y": 34.2,
      "width": 36,
      "depth": 5.9,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "UTIL-MAINT-FX01",
          "type": "workbench",
          "x": 97,
          "y": 36.76,
          "width": 3.5,
          "depth": 1.5,
          "height": 0.95,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "탈거 모터·씰 정비 작업대"
        },
        {
          "id": "UTIL-MAINT-FX02",
          "type": "bin_rack",
          "x": 102,
          "y": 36.76,
          "width": 3,
          "depth": 1.2,
          "height": 2.4,
          "count": 24,
          "rows": 4,
          "columns": 6,
          "angle": 0,
          "label": "규격 베어링·밸브·센서 예비품"
        },
        {
          "id": "UTIL-MAINT-FX03",
          "type": "cabinet",
          "x": 106,
          "y": 35.76,
          "width": 2,
          "depth": 1,
          "height": 2,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "잠금·계측·안전 도구함"
        },
        {
          "id": "UTIL-MAINT-FX04",
          "type": "workbench",
          "x": 111,
          "y": 36.76,
          "width": 3.5,
          "depth": 1.5,
          "height": 0.95,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "탈거 모터·씰 정비 작업대"
        }
      ],
      "openings": []
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 28.5,
      "y": 114.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 36.7,
      "y": 114.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 2,
      "x": 44.9,
      "y": 114.5,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 28.0,
      "y": 120.7,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 35.2,
      "y": 120.7,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 2,
      "x": 42.4,
      "y": 120.7,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 3,
      "x": 49.6,
      "y": 120.7,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 29.5,
      "y": 83.0,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 39.7,
      "y": 83.0,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 2,
      "x": 49.9,
      "y": 83.0,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 30.0,
      "y": 91.7,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 41.2,
      "y": 91.7,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 2,
      "x": 50.9,
      "y": 93.2,
      "angle": 1.5707963267948966
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 79.0,
      "y": 98.9,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 88.2,
      "y": 98.9,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 81.0,
      "y": 91.2,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 94.2,
      "y": 91.2,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 2,
      "x": 107.4,
      "y": 91.2,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 84.0,
      "y": 83.0,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 103.2,
      "y": 83.0,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 100.4,
      "y": 58.0,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 111.6,
      "y": 58.0,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 2,
      "x": 100.4,
      "y": 65.2,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S05",
      "x": 95.3,
      "y": 99.0,
      "angle": 0,
      "task_station": "B03-PROCESS-FX01",
      "station_correction": {
        "revision": 1,
        "previous_position": [
          97.0,
          99.0,
          3.141592653589793
        ],
        "fixture_id": "B03-PROCESS-FX01",
        "reason": "기존 캐리어 인계대를 감싸는 4×3.2m 포털로 재배치. 기둥은 인계대 밖에 두고 기존 컨베이어의 반입 캐리어→고정 버퍼 캐리어로 이동."
      },
      "task_fixture": {
        "fixture_id": "B03-PROCESS-FX01",
        "target_basis": "actual generated fixture solids"
      },
      "gantry_span": [
        4,
        3.2,
        3.4
      ],
      "controller_offset": [
        0,
        1.9,
        0
      ],
      "tool_span": [
        0.7488,
        0.3
      ],
      "task_points": [
        [
          94.3,
          99.0,
          1.5025
        ],
        [
          95.3,
          99.0,
          1.555
        ]
      ],
      "carrier_contact": {
        "fixture_id": "B03-PROCESS-FX01",
        "lug_span_x": 0.7488,
        "rim_span_y": 0.429,
        "incoming_surface_world_z": 0.9925,
        "station_surface_world_z": 1.045,
        "tcp_basis": "spreader centre with symmetric lug hooks",
        "incoming_workpiece": "same carrier geometry on existing conveyor, pending rendered verification"
      },
      "task_point": [
        94.3,
        99.0,
        1.5025
      ],
      "motion_scope": "실제 작업면 접촉 TCP의 대표 이송·접근. 전체 동작 충돌과 대상물 동기화는 모델 검수 대상."
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 109.8,
      "y": 65.8,
      "angle": 3.141592653589793,
      "task_station": "B04-PROCESS-FX01",
      "station_correction": {
        "revision": 1,
        "previous_position": [
          110.2,
          65.8,
          3.141592653589793
        ],
        "fixture_id": "B04-PROCESS-FX01",
        "reason": "기존 인계 컨베이어와 같은 작업대 유지. 트레이 상면(−0.4,0,1.18)→지그 상면(+0.2,0,1.35)에 닿도록 실제 상판 쪽으로 0.4m 접근."
      },
      "task_fixture": {
        "fixture_id": "B04-PROCESS-FX01",
        "target_basis": "actual generated fixture solids"
      },
      "controller_offset": [
        -1.2,
        1.05,
        0
      ],
      "task_points": [
        [
          108.1,
          65.8,
          1.18
        ],
        [
          108.7,
          65.8,
          1.35
        ]
      ],
      "task_point": [
        108.1,
        65.8,
        1.18
      ],
      "motion_scope": "인계대 트레이에서 고정 지그로 옮기는 접촉 TCP 대표 동작. 대상물·손목·주변 충돌 시각검수는 별도."
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S08",
      "x": 118.6,
      "y": 65.4,
      "angle": -1.5707963267948966,
      "task_station": "B04-PROCESS-FX02",
      "station_correction": {
        "revision": 1,
        "previous_position": [
          118.6,
          65.8,
          -1.5707963267948966
        ],
        "fixture_id": "B04-PROCESS-FX02",
        "reason": "기존 인계 컨베이어와 같은 작업대 유지. 트레이 상면(−0.4,0,1.18)→지그 상면(+0.2,0,1.35)에 닿도록 실제 상판 쪽으로 0.4m 접근."
      },
      "task_fixture": {
        "fixture_id": "B04-PROCESS-FX02",
        "target_basis": "actual generated fixture solids"
      },
      "controller_offset": [
        -1.2,
        1.05,
        0
      ],
      "task_points": [
        [
          118.2,
          64.1,
          1.18
        ],
        [
          118.8,
          64.1,
          1.35
        ]
      ],
      "task_point": [
        118.2,
        64.1,
        1.18
      ],
      "motion_scope": "인계대 트레이에서 고정 지그로 옮기는 접촉 TCP 대표 동작. 대상물·손목·주변 충돌 시각검수는 별도."
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 79.5,
      "y": 59.5,
      "angle": 0,
      "task_station": "B04-PROCESS-FX03",
      "station_correction": {
        "revision": 1,
        "previous_position": [
          79.5,
          59.5,
          0
        ],
        "fixture_id": "B04-PROCESS-FX03",
        "reason": "설비 본체 대신 실제 컨베이어가 연결된 기존 팔레트 인계대의 두 박스 상면을 지정. 기존 베이스 위치 유지."
      },
      "task_fixture": {
        "fixture_id": "B04-PROCESS-FX03",
        "target_basis": "actual generated fixture solids"
      },
      "controller_offset": [
        -1.2,
        1.05,
        0
      ],
      "task_points": [
        [
          81.68088,
          59.5,
          1.12
        ],
        [
          82.11912,
          59.5,
          1.12
        ]
      ],
      "task_point": [
        81.68088,
        59.5,
        1.12
      ],
      "motion_scope": "기존 팔레트 위 두 실제 박스 위치의 층 패턴 대표 동작. 다층 전체 적재·대상물 이송 검수는 별도."
    },
    {
      "definition_index": 2,
      "instance_index": 1,
      "stage_id": "S08",
      "x": 89.7,
      "y": 59.5,
      "angle": 0,
      "task_station": "B04-PROCESS-FX04",
      "station_correction": {
        "revision": 1,
        "previous_position": [
          89.7,
          59.5,
          0
        ],
        "fixture_id": "B04-PROCESS-FX04",
        "reason": "설비 본체 대신 실제 컨베이어가 연결된 기존 팔레트 인계대의 두 박스 상면을 지정. 기존 베이스 위치 유지."
      },
      "task_fixture": {
        "fixture_id": "B04-PROCESS-FX04",
        "target_basis": "actual generated fixture solids"
      },
      "controller_offset": [
        -1.2,
        1.05,
        0
      ],
      "task_points": [
        [
          91.88088,
          59.5,
          1.12
        ],
        [
          92.31912,
          59.5,
          1.12
        ]
      ],
      "task_point": [
        91.88088,
        59.5,
        1.12
      ],
      "motion_scope": "기존 팔레트 위 두 실제 박스 위치의 층 패턴 대표 동작. 다층 전체 적재·대상물 이송 검수는 별도."
    }
  ],
  "logistics": [
    {
      "id": "FLOW-S01-S03-0",
      "kind": "conveyor",
      "from": "equipment:S01:0",
      "to": "equipment:S03:0",
      "points": [
        [
          31.0,
          114.5,
          0.9
        ],
        [
          32.5,
          114.5,
          0.9
        ],
        [
          31.5,
          114.5,
          0.9
        ],
        [
          31.5,
          112.5,
          0.9
        ],
        [
          31.0,
          112.5,
          0.9
        ],
        [
          31.0,
          109.0,
          0.9
        ],
        [
          31,
          102,
          0.9
        ],
        [
          29.5,
          102,
          0.9
        ],
        [
          29.5,
          100.0,
          0.9
        ],
        [
          25.0,
          100.0,
          0.9
        ],
        [
          25.0,
          83.0,
          0.9
        ],
        [
          24.5,
          83.0,
          0.9
        ],
        [
          26.0,
          83.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "규격 고형 원료"
    },
    {
      "id": "FLOW-S01-S03-1",
      "kind": "conveyor",
      "from": "equipment:S01:1",
      "to": "equipment:S03:1",
      "points": [
        [
          39.2,
          114.5,
          0.9
        ],
        [
          40.5,
          114.5,
          0.9
        ],
        [
          40.0,
          114.5,
          0.9
        ],
        [
          40.0,
          112.5,
          0.9
        ],
        [
          37.0,
          112.5,
          0.9
        ],
        [
          37.0,
          109.0,
          0.9
        ],
        [
          37,
          102,
          0.9
        ],
        [
          35.5,
          102,
          0.9
        ],
        [
          35.5,
          96.0,
          0.9
        ],
        [
          35.0,
          96.0,
          0.9
        ],
        [
          35.0,
          83.0,
          0.9
        ],
        [
          36.2,
          83.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "규격 고형 원료"
    },
    {
      "id": "FLOW-S01-S03-2",
      "kind": "conveyor",
      "from": "equipment:S01:2",
      "to": "equipment:S03:2",
      "points": [
        [
          47.4,
          114.5,
          0.9
        ],
        [
          49.0,
          114.5,
          0.9
        ],
        [
          48.0,
          114.5,
          0.9
        ],
        [
          48.0,
          109.0,
          0.9
        ],
        [
          48,
          102,
          0.9
        ],
        [
          47.0,
          102,
          0.9
        ],
        [
          47.0,
          95.5,
          0.9
        ],
        [
          46.0,
          95.5,
          0.9
        ],
        [
          46.0,
          88.5,
          0.9
        ],
        [
          45.0,
          88.5,
          0.9
        ],
        [
          45.0,
          83.0,
          0.9
        ],
        [
          46.4,
          83.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "규격 고형 원료"
    },
    {
      "id": "FLOW-S02-S03-0",
      "kind": "pipe",
      "from": "equipment:S02:0",
      "to": "equipment:S03:0",
      "points": [
        [
          30.0,
          120.7,
          3
        ],
        [
          31.5,
          120.7,
          3
        ],
        [
          31.5,
          120.5,
          3
        ],
        [
          31.5,
          112.5,
          3
        ],
        [
          30.0,
          112.5,
          3
        ],
        [
          30.0,
          109.0,
          3
        ],
        [
          30,
          102,
          3
        ],
        [
          29.5,
          102,
          3
        ],
        [
          29.5,
          100.0,
          3
        ],
        [
          25.0,
          100.0,
          3
        ],
        [
          25.0,
          83.0,
          3
        ],
        [
          24.5,
          83.0,
          3
        ],
        [
          26.0,
          83.0,
          3
        ]
      ],
      "width": 0.25,
      "enclosure": "밀폐 위생 이송관",
      "material": "카레 소스 베이스"
    },
    {
      "id": "FLOW-S02-S03-1",
      "kind": "pipe",
      "from": "equipment:S02:1",
      "to": "equipment:S03:1",
      "points": [
        [
          37.2,
          120.7,
          3
        ],
        [
          38.5,
          120.7,
          3
        ],
        [
          38.5,
          120.5,
          3
        ],
        [
          38.5,
          116.5,
          3
        ],
        [
          40.0,
          116.5,
          3
        ],
        [
          40.0,
          112.5,
          3
        ],
        [
          37.0,
          112.5,
          3
        ],
        [
          37.0,
          109.0,
          3
        ],
        [
          37,
          102,
          3
        ],
        [
          35.5,
          102,
          3
        ],
        [
          35.5,
          96.0,
          3
        ],
        [
          35.0,
          96.0,
          3
        ],
        [
          35.0,
          83.0,
          3
        ],
        [
          36.2,
          83.0,
          3
        ]
      ],
      "width": 0.25,
      "enclosure": "밀폐 위생 이송관",
      "material": "카레 소스 베이스"
    },
    {
      "id": "FLOW-S02-S03-2",
      "kind": "pipe",
      "from": "equipment:S02:2",
      "to": "equipment:S03:2",
      "points": [
        [
          44.4,
          120.7,
          3
        ],
        [
          46.0,
          120.7,
          3
        ],
        [
          46.0,
          120.5,
          3
        ],
        [
          46.0,
          116.5,
          3
        ],
        [
          48.0,
          116.5,
          3
        ],
        [
          48.0,
          112.5,
          3
        ],
        [
          46.0,
          112.5,
          3
        ],
        [
          46.0,
          109.0,
          3
        ],
        [
          46,
          102,
          3
        ],
        [
          46,
          99.5,
          3
        ],
        [
          47.0,
          99.5,
          3
        ],
        [
          47.0,
          95.5,
          3
        ],
        [
          46.0,
          95.5,
          3
        ],
        [
          46.0,
          88.5,
          3
        ],
        [
          45.0,
          88.5,
          3
        ],
        [
          45.0,
          83.0,
          3
        ],
        [
          46.4,
          83.0,
          3
        ]
      ],
      "width": 0.25,
      "enclosure": "밀폐 위생 이송관",
      "material": "카레 소스 베이스"
    },
    {
      "id": "FLOW-S02-S03-3",
      "kind": "pipe",
      "from": "equipment:S02:3",
      "to": "equipment:S03:0",
      "points": [
        [
          51.6,
          120.7,
          3
        ],
        [
          53.0,
          120.7,
          3
        ],
        [
          53.0,
          120.5,
          3
        ],
        [
          52.5,
          120.5,
          3
        ],
        [
          52.5,
          118.5,
          3
        ],
        [
          42.0,
          118.5,
          3
        ],
        [
          42.0,
          109.0,
          3
        ],
        [
          42,
          102,
          3
        ],
        [
          41.5,
          102,
          3
        ],
        [
          41.5,
          100.0,
          3
        ],
        [
          35.5,
          100.0,
          3
        ],
        [
          35.5,
          99.5,
          3
        ],
        [
          25.0,
          99.5,
          3
        ],
        [
          25.0,
          83.0,
          3
        ],
        [
          24.5,
          83.0,
          3
        ],
        [
          26.0,
          83.0,
          3
        ]
      ],
      "width": 0.25,
      "enclosure": "밀폐 위생 이송관",
      "material": "카레 소스 베이스"
    },
    {
      "id": "FLOW-S03-S04-0",
      "kind": "pipe",
      "from": "equipment:S03:0",
      "to": "equipment:S04:0",
      "points": [
        [
          33.0,
          83.0,
          3
        ],
        [
          34.5,
          83.0,
          3
        ],
        [
          33.5,
          83.0,
          3
        ],
        [
          33.5,
          86.5,
          3
        ],
        [
          25.0,
          86.5,
          3
        ],
        [
          25.0,
          91.5,
          3
        ],
        [
          24.5,
          91.5,
          3
        ],
        [
          24.5,
          91.7,
          3
        ],
        [
          26.0,
          91.7,
          3
        ]
      ],
      "width": 0.25,
      "enclosure": "밀폐 위생 이송관",
      "material": "조리 카레"
    },
    {
      "id": "FLOW-S03-S04-1",
      "kind": "pipe",
      "from": "equipment:S03:1",
      "to": "equipment:S04:1",
      "points": [
        [
          43.2,
          83.0,
          3
        ],
        [
          44.5,
          83.0,
          3
        ],
        [
          44.0,
          83.0,
          3
        ],
        [
          44.0,
          86.5,
          3
        ],
        [
          36.0,
          86.5,
          3
        ],
        [
          36.0,
          91.5,
          3
        ],
        [
          36.0,
          91.7,
          3
        ],
        [
          37.2,
          91.7,
          3
        ]
      ],
      "width": 0.25,
      "enclosure": "밀폐 위생 이송관",
      "material": "조리 카레"
    },
    {
      "id": "FLOW-S03-S04-2",
      "kind": "pipe",
      "from": "equipment:S03:2",
      "to": "equipment:S04:2",
      "points": [
        [
          53.4,
          83.0,
          3
        ],
        [
          55.0,
          83.0,
          3
        ],
        [
          54.0,
          83.0,
          3
        ],
        [
          54.0,
          86.5,
          3
        ],
        [
          51.0,
          86.5,
          3
        ],
        [
          51.0,
          88.0,
          3
        ],
        [
          51.0,
          89.2,
          3
        ],
        [
          50.9,
          89.2,
          3
        ]
      ],
      "width": 0.25,
      "enclosure": "밀폐 위생 이송관",
      "material": "조리 카레"
    },
    {
      "id": "FLOW-S04-S05-0",
      "kind": "conveyor",
      "from": "equipment:S04:0",
      "to": "equipment:S05:0",
      "points": [
        [
          34.0,
          91.7,
          0.9
        ],
        [
          35.5,
          91.7,
          0.9
        ],
        [
          35.5,
          91.5,
          0.9
        ],
        [
          36.5,
          91.5,
          0.9
        ],
        [
          36.5,
          88.5,
          0.9
        ],
        [
          54.0,
          88.5,
          0.9
        ],
        [
          54.0,
          93.0,
          0.9
        ],
        [
          66.0,
          93.0,
          0.9
        ],
        [
          66.0,
          95.0,
          0.9
        ],
        [
          68.0,
          95.0,
          0.9
        ],
        [
          76,
          95,
          0.9
        ],
        [
          75.0,
          95,
          0.9
        ],
        [
          75.0,
          99.0,
          0.9
        ],
        [
          74.5,
          99.0,
          0.9
        ],
        [
          74.5,
          98.9,
          0.9
        ],
        [
          76.0,
          98.9,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "충전 카레 파우치"
    },
    {
      "id": "FLOW-S04-S05-1",
      "kind": "conveyor",
      "from": "equipment:S04:1",
      "to": "equipment:S05:1",
      "points": [
        [
          45.2,
          91.7,
          0.9
        ],
        [
          46.5,
          91.7,
          0.9
        ],
        [
          46.5,
          91.5,
          0.9
        ],
        [
          48.0,
          91.5,
          0.9
        ],
        [
          48.0,
          88.5,
          0.9
        ],
        [
          54.0,
          88.5,
          0.9
        ],
        [
          54.0,
          93.0,
          0.9
        ],
        [
          66.0,
          93.0,
          0.9
        ],
        [
          66.0,
          95.0,
          0.9
        ],
        [
          68.0,
          95.0,
          0.9
        ],
        [
          76,
          95,
          0.9
        ],
        [
          76,
          95.5,
          0.9
        ],
        [
          82.5,
          95.5,
          0.9
        ],
        [
          82.5,
          99.0,
          0.9
        ],
        [
          84.0,
          99.0,
          0.9
        ],
        [
          84.0,
          98.9,
          0.9
        ],
        [
          85.2,
          98.9,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "충전 카레 파우치"
    },
    {
      "id": "FLOW-S04-S05-2",
      "kind": "conveyor",
      "from": "equipment:S04:2",
      "to": "equipment:S05:0",
      "points": [
        [
          50.9,
          97.2,
          0.9
        ],
        [
          51.0,
          97.2,
          0.9
        ],
        [
          51.0,
          98.5,
          0.9
        ],
        [
          51.0,
          98.0,
          0.9
        ],
        [
          54.0,
          98.0,
          0.9
        ],
        [
          54.0,
          95.5,
          0.9
        ],
        [
          66.0,
          95.5,
          0.9
        ],
        [
          66.0,
          95.0,
          0.9
        ],
        [
          68.0,
          95.0,
          0.9
        ],
        [
          76,
          95,
          0.9
        ],
        [
          75.0,
          95,
          0.9
        ],
        [
          75.0,
          99.0,
          0.9
        ],
        [
          74.5,
          99.0,
          0.9
        ],
        [
          74.5,
          98.9,
          0.9
        ],
        [
          76.0,
          98.9,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "충전 카레 파우치"
    },
    {
      "id": "FLOW-S05-S06-0",
      "kind": "conveyor",
      "from": "equipment:S05:0",
      "to": "equipment:S06:0",
      "points": [
        [
          82.0,
          98.9,
          0.9
        ],
        [
          83.5,
          98.9,
          0.9
        ],
        [
          83.5,
          99.0,
          0.9
        ],
        [
          82.5,
          99.0,
          0.9
        ],
        [
          82.5,
          95.5,
          0.9
        ],
        [
          75.0,
          95.5,
          0.9
        ],
        [
          75.0,
          91.0,
          0.9
        ],
        [
          74.5,
          91.0,
          0.9
        ],
        [
          74.5,
          91.2,
          0.9
        ],
        [
          76.0,
          91.2,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "적재 바스켓"
    },
    {
      "id": "FLOW-S05-S06-1",
      "kind": "conveyor",
      "from": "equipment:S05:1",
      "to": "equipment:S06:1",
      "points": [
        [
          91.2,
          98.9,
          0.9
        ],
        [
          92.5,
          98.9,
          0.9
        ],
        [
          92.5,
          99.0,
          0.9
        ],
        [
          92.0,
          99.0,
          0.9
        ],
        [
          92.0,
          95.5,
          0.9
        ],
        [
          88.0,
          95.5,
          0.9
        ],
        [
          88.0,
          91.0,
          0.9
        ],
        [
          88.0,
          91.2,
          0.9
        ],
        [
          89.2,
          91.2,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "적재 바스켓"
    },
    {
      "id": "FLOW-S05-S06-2",
      "kind": "conveyor",
      "from": "equipment:S05:0",
      "to": "equipment:S06:2",
      "points": [
        [
          82.0,
          98.9,
          0.9
        ],
        [
          83.5,
          98.9,
          0.9
        ],
        [
          83.5,
          99.0,
          0.9
        ],
        [
          83.5,
          94.0,
          0.9
        ],
        [
          100.0,
          94.0,
          0.9
        ],
        [
          100.0,
          91.0,
          0.9
        ],
        [
          101.0,
          91.0,
          0.9
        ],
        [
          101.0,
          91.2,
          0.9
        ],
        [
          102.4,
          91.2,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "적재 바스켓"
    },
    {
      "id": "FLOW-S06-S07-0",
      "kind": "conveyor",
      "from": "equipment:S06:0",
      "to": "equipment:S07:0",
      "points": [
        [
          86.0,
          91.2,
          0.9
        ],
        [
          87.5,
          91.2,
          0.9
        ],
        [
          87.5,
          91.0,
          0.9
        ],
        [
          86.5,
          91.0,
          0.9
        ],
        [
          86.5,
          88.5,
          0.9
        ],
        [
          75.0,
          88.5,
          0.9
        ],
        [
          75.0,
          83.0,
          0.9
        ],
        [
          74.5,
          83.0,
          0.9
        ],
        [
          76.0,
          83.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "처리 완료 파우치"
    },
    {
      "id": "FLOW-S06-S07-1",
      "kind": "conveyor",
      "from": "equipment:S06:1",
      "to": "equipment:S07:1",
      "points": [
        [
          99.2,
          91.2,
          0.9
        ],
        [
          100.5,
          91.2,
          0.9
        ],
        [
          100.5,
          91.0,
          0.9
        ],
        [
          100.0,
          91.0,
          0.9
        ],
        [
          100.0,
          88.5,
          0.9
        ],
        [
          94.0,
          88.5,
          0.9
        ],
        [
          94.0,
          83.0,
          0.9
        ],
        [
          95.2,
          83.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "처리 완료 파우치"
    },
    {
      "id": "FLOW-S06-S07-2",
      "kind": "conveyor",
      "from": "equipment:S06:2",
      "to": "equipment:S07:0",
      "points": [
        [
          112.4,
          91.2,
          0.9
        ],
        [
          114.0,
          91.2,
          0.9
        ],
        [
          114.0,
          91.0,
          0.9
        ],
        [
          113.0,
          91.0,
          0.9
        ],
        [
          113.0,
          88.5,
          0.9
        ],
        [
          75.0,
          88.5,
          0.9
        ],
        [
          75.0,
          83.0,
          0.9
        ],
        [
          74.5,
          83.0,
          0.9
        ],
        [
          76.0,
          83.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "처리 완료 파우치"
    },
    {
      "id": "FLOW-S07-S08-0",
      "kind": "conveyor",
      "from": "equipment:S07:0",
      "to": "equipment:S08:0",
      "points": [
        [
          92.0,
          83.0,
          0.9
        ],
        [
          93.5,
          83.0,
          0.9
        ],
        [
          93.5,
          76.0,
          0.9
        ],
        [
          94.0,
          76.0,
          0.9
        ],
        [
          94,
          69,
          0.9
        ],
        [
          94,
          67.5,
          0.9
        ],
        [
          95.0,
          67.5,
          0.9
        ],
        [
          95.0,
          58.0,
          0.9
        ],
        [
          96.4,
          58.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "출하 판정 파우치"
    },
    {
      "id": "FLOW-S07-S08-1",
      "kind": "conveyor",
      "from": "equipment:S07:1",
      "to": "equipment:S08:1",
      "points": [
        [
          111.2,
          83.0,
          0.9
        ],
        [
          112.5,
          83.0,
          0.9
        ],
        [
          112.0,
          83.0,
          0.9
        ],
        [
          112.0,
          79.5,
          0.9
        ],
        [
          110.0,
          79.5,
          0.9
        ],
        [
          110.0,
          76.0,
          0.9
        ],
        [
          110,
          69,
          0.9
        ],
        [
          106.0,
          69,
          0.9
        ],
        [
          106.0,
          58.0,
          0.9
        ],
        [
          107.6,
          58.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "출하 판정 파우치"
    },
    {
      "id": "FLOW-S07-S08-2",
      "kind": "conveyor",
      "from": "equipment:S07:0",
      "to": "equipment:S08:2",
      "points": [
        [
          92.0,
          83.0,
          0.9
        ],
        [
          93.5,
          83.0,
          0.9
        ],
        [
          93.5,
          76.0,
          0.9
        ],
        [
          94.0,
          76.0,
          0.9
        ],
        [
          94,
          69,
          0.9
        ],
        [
          94,
          67.5,
          0.9
        ],
        [
          95.0,
          67.5,
          0.9
        ],
        [
          95.0,
          65.0,
          0.9
        ],
        [
          95.0,
          65.2,
          0.9
        ],
        [
          96.4,
          65.2,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "출하 판정 파우치"
    },
    {
      "id": "INBOUND",
      "kind": "forklift",
      "from": "raw-dock",
      "to": "zone:B01-BUFFER",
      "points": [
        [
          24.0,
          109.15,
          0.06
        ],
        [
          26.0,
          109.15,
          0.06
        ],
        [
          26.0,
          109.0,
          0.06
        ],
        [
          26.0,
          109.5,
          0.06
        ],
        [
          55.0,
          109.5,
          0.06
        ],
        [
          55.0,
          111.0,
          0.06
        ],
        [
          56.0,
          111.0,
          0.06
        ],
        [
          56.0,
          111.5,
          0.06
        ],
        [
          58.5,
          111.5,
          0.06
        ]
      ],
      "width": 2,
      "enclosure": "표시된 차량 통로",
      "material": "채소 토트·카레 분말 포대·파우치 롤"
    },
    {
      "id": "APPROVED-STOCK-SUPPLY-B05-STORE",
      "kind": "amr",
      "from": "zone:B05-STORE",
      "to": "zone:B01-BUFFER",
      "points": [
        [
          92.0,
          115.0,
          0.06
        ],
        [
          92.0,
          113.0,
          0.06
        ],
        [
          68.5,
          113.0,
          0.06
        ],
        [
          68.5,
          111.5,
          0.06
        ],
        [
          58.5,
          111.5,
          0.06
        ]
      ],
      "width": 1.6,
      "enclosure": "표시된 차량 통로",
      "material": "승인 재고·빈 포장재 공급 및 완제품 완충"
    },
    {
      "id": "RAW-FEED-0",
      "kind": "conveyor",
      "from": "zone:B01-BUFFER",
      "to": "equipment:S01:0",
      "points": [
        [
          58.5,
          111.5,
          0.9
        ],
        [
          25.0,
          111.5,
          0.9
        ],
        [
          25.0,
          114.5,
          0.9
        ],
        [
          24.5,
          114.5,
          0.9
        ],
        [
          26.0,
          114.5,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "채소 토트·카레 분말 포대·파우치 롤"
    },
    {
      "id": "RAW-FEED-1",
      "kind": "conveyor",
      "from": "zone:B01-BUFFER",
      "to": "equipment:S01:1",
      "points": [
        [
          58.5,
          111.5,
          0.9
        ],
        [
          33.0,
          111.5,
          0.9
        ],
        [
          33.0,
          114.5,
          0.9
        ],
        [
          34.2,
          114.5,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "채소 토트·카레 분말 포대·파우치 롤"
    },
    {
      "id": "RAW-FEED-2",
      "kind": "conveyor",
      "from": "zone:B01-BUFFER",
      "to": "equipment:S01:2",
      "points": [
        [
          58.5,
          111.5,
          0.9
        ],
        [
          41.0,
          111.5,
          0.9
        ],
        [
          41.0,
          114.5,
          0.9
        ],
        [
          42.4,
          114.5,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "채소 토트·카레 분말 포대·파우치 롤"
    },
    {
      "id": "FINISH-BUFFER-0",
      "kind": "conveyor",
      "from": "equipment:S08:0",
      "to": "zone:B04-BUFFER",
      "points": [
        [
          104.4,
          58.0,
          0.9
        ],
        [
          106.0,
          58.0,
          0.9
        ],
        [
          106.0,
          55.0,
          0.9
        ],
        [
          127.5,
          55.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "레토르트 카레 박스"
    },
    {
      "id": "FINISH-BUFFER-1",
      "kind": "conveyor",
      "from": "equipment:S08:1",
      "to": "zone:B04-BUFFER",
      "points": [
        [
          115.6,
          58.0,
          0.9
        ],
        [
          117.0,
          58.0,
          0.9
        ],
        [
          117.0,
          55.0,
          0.9
        ],
        [
          127.5,
          55.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "레토르트 카레 박스"
    },
    {
      "id": "FINISH-BUFFER-2",
      "kind": "conveyor",
      "from": "equipment:S08:2",
      "to": "zone:B04-BUFFER",
      "points": [
        [
          104.4,
          65.2,
          0.9
        ],
        [
          106.0,
          65.2,
          0.9
        ],
        [
          106.0,
          65.0,
          0.9
        ],
        [
          106.0,
          55.0,
          0.9
        ],
        [
          127.5,
          55.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "레토르트 카레 박스"
    },
    {
      "id": "OUTBOUND",
      "kind": "forklift",
      "from": "zone:B04-BUFFER",
      "to": "shipping-dock",
      "points": [
        [
          127.0,
          55.0,
          0.06
        ],
        [
          127.0,
          52.0,
          0.06
        ],
        [
          135.0,
          52.0,
          0.06
        ],
        [
          135.0,
          52.15,
          0.06
        ],
        [
          136.901,
          52.15,
          0.06
        ]
      ],
      "width": 2,
      "enclosure": "표시된 차량 통로",
      "material": "레토르트 카레 박스"
    },
    {
      "id": "ROBOT-HANDOFF-0",
      "kind": "conveyor",
      "from": "equipment:S05:0",
      "to": "fixture:B03-PROCESS-FX01",
      "points": [
        [
          82.0,
          98.9,
          0.9
        ],
        [
          83.5,
          98.9,
          0.9
        ],
        [
          83.5,
          99.0,
          0.9
        ],
        [
          84.5,
          99.0,
          0.9
        ],
        [
          84.5,
          102.0,
          0.9
        ],
        [
          92.0,
          102.0,
          0.9
        ],
        [
          92.0,
          99.0,
          0.9
        ],
        [
          94.0,
          99.0,
          0.9
        ],
        [
          95.3,
          99.0,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "레일에 정렬한 바스켓을 적재 셀과 열처리 대기 위치 사이에 이송한다"
    },
    {
      "id": "ROBOT-HANDOFF-1",
      "kind": "conveyor",
      "from": "equipment:S08:0",
      "to": "fixture:B04-PROCESS-FX01",
      "points": [
        [
          104.4,
          58.0,
          0.9
        ],
        [
          106.0,
          58.0,
          0.9
        ],
        [
          106.0,
          66.0,
          0.9
        ],
        [
          107.0,
          66.0,
          0.9
        ],
        [
          107.0,
          65.8,
          0.9
        ],
        [
          108.5,
          65.8,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "봉합을 마친 제품 묶음을 골판지 박스에 넣고 내용물 누락이 없도록 상부 비전과 동기화한다"
    },
    {
      "id": "ROBOT-HANDOFF-2",
      "kind": "conveyor",
      "from": "equipment:S08:1",
      "to": "fixture:B04-PROCESS-FX02",
      "points": [
        [
          115.6,
          58.0,
          0.9
        ],
        [
          117.0,
          58.0,
          0.9
        ],
        [
          117.0,
          62.5,
          0.9
        ],
        [
          118.5,
          62.5,
          0.9
        ],
        [
          118.5,
          64.1,
          0.9
        ],
        [
          118.6,
          64.1,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "봉합을 마친 제품 묶음을 골판지 박스에 넣고 내용물 누락이 없도록 상부 비전과 동기화한다"
    },
    {
      "id": "ROBOT-HANDOFF-3",
      "kind": "conveyor",
      "from": "equipment:S08:0",
      "to": "fixture:B04-PROCESS-FX03",
      "points": [
        [
          104.4,
          58.0,
          0.9
        ],
        [
          106.0,
          58.0,
          0.9
        ],
        [
          105.0,
          58.0,
          0.9
        ],
        [
          105.0,
          60.5,
          0.9
        ],
        [
          91.0,
          60.5,
          0.9
        ],
        [
          91.0,
          61.0,
          0.9
        ],
        [
          83.5,
          61.0,
          0.9
        ],
        [
          83.5,
          59.5,
          0.9
        ],
        [
          81.9,
          59.5,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "외포장 박스의 라벨을 바깥으로 향하게 적층하고 미끄럼 방지 시트를 층 사이에 공급한다"
    },
    {
      "id": "ROBOT-HANDOFF-4",
      "kind": "conveyor",
      "from": "equipment:S08:1",
      "to": "fixture:B04-PROCESS-FX04",
      "points": [
        [
          115.6,
          58.0,
          0.9
        ],
        [
          117.0,
          58.0,
          0.9
        ],
        [
          116.5,
          58.0,
          0.9
        ],
        [
          116.5,
          60.5,
          0.9
        ],
        [
          93.5,
          60.5,
          0.9
        ],
        [
          93.5,
          59.5,
          0.9
        ],
        [
          92.1,
          59.5,
          0.9
        ]
      ],
      "width": 0.75,
      "enclosure": "건물 사이 제품 이송은 밀폐 연결 갤러리",
      "material": "외포장 박스의 라벨을 바깥으로 향하게 적층하고 미끄럼 방지 시트를 층 사이에 공급한다"
    },
    {
      "id": "SUPPORT-ACCESS-OFF",
      "kind": "pedestrian",
      "from": "staff-gate",
      "to": "building:OFF",
      "points": [
        [
          16,
          6,
          0.05
        ],
        [
          16,
          12,
          0.05
        ],
        [
          16,
          22.0,
          0.05
        ],
        [
          84.0,
          22.0,
          0.05
        ],
        [
          84.0,
          22,
          0.05
        ],
        [
          84.0,
          24,
          0.05
        ]
      ],
      "width": 1.8
    },
    {
      "id": "SUPPORT-ACCESS-LAB",
      "kind": "pedestrian",
      "from": "staff-gate",
      "to": "building:LAB",
      "points": [
        [
          16,
          6,
          0.05
        ],
        [
          16,
          12,
          0.05
        ],
        [
          16,
          27.0,
          0.05
        ],
        [
          22.0,
          27.0,
          0.05
        ],
        [
          22,
          26.6,
          0.05
        ],
        [
          24,
          26.6,
          0.05
        ]
      ],
      "width": 1.8
    },
    {
      "id": "SUPPORT-ACCESS-STAFF",
      "kind": "pedestrian",
      "from": "staff-gate",
      "to": "building:STAFF",
      "points": [
        [
          16,
          6,
          0.05
        ],
        [
          16,
          12,
          0.05
        ],
        [
          16,
          22.0,
          0.05
        ],
        [
          60.0,
          22.0,
          0.05
        ],
        [
          60.0,
          22,
          0.05
        ],
        [
          60.0,
          24,
          0.05
        ]
      ],
      "width": 1.8
    },
    {
      "id": "SUPPORT-ACCESS-UTIL",
      "kind": "pedestrian",
      "from": "staff-gate",
      "to": "building:UTIL",
      "points": [
        [
          16,
          6,
          0.05
        ],
        [
          16,
          12,
          0.05
        ],
        [
          16,
          22.0,
          0.05
        ],
        [
          112.0,
          22.0,
          0.05
        ],
        [
          112.0,
          22,
          0.05
        ],
        [
          112.0,
          24,
          0.05
        ]
      ],
      "width": 1.8
    },
    {
      "id": "SERVICE-RING",
      "kind": "forklift",
      "from": "raw-dock",
      "to": "shipping-dock",
      "points": [
        [
          24.0,
          109.15,
          0.05
        ],
        [
          21.0,
          109.15,
          0.05
        ],
        [
          21.0,
          109.0,
          0.05
        ],
        [
          21.0,
          52.0,
          0.05
        ],
        [
          72.0,
          52.0,
          0.05
        ],
        [
          72.0,
          48.0,
          0.05
        ],
        [
          139.0,
          48.0,
          0.05
        ],
        [
          139.0,
          52.0,
          0.05
        ],
        [
          140.0,
          52.0,
          0.05
        ],
        [
          140.0,
          52.15,
          0.05
        ],
        [
          136.901,
          52.15,
          0.05
        ]
      ],
      "width": 3.2
    }
  ],
  "landmarks": [
    "북서 황토 벽돌 채소 수입동",
    "남서 솥 증기 배출구가 있는 둥근 지붕",
    "동부 살균동의 내압 배관 및 바스켓 대기문",
    "파우치 출하동의 낮고 긴 캐노피",
    "북향 유리 압력 기록 관찰실"
  ],
  "campus_revision": 4,
  "campus_relocation": {
    "method": "rigid_production_building_translation; support_unused_rear_strips_removed",
    "legacy_site": {
      "width": 202,
      "depth": 176
    },
    "site_area_reduction_ratio": 0.38091,
    "building_translations": {
      "B01": [
        1.32,
        -9.4
      ],
      "B02": [
        1.32,
        -1.6
      ],
      "B03": [
        -27.0,
        -1.6
      ],
      "B04": [
        -27.0,
        2.0
      ],
      "B05": [
        48.32,
        66.0
      ],
      "LAB": [
        10,
        14
      ],
      "STAFF": [
        -7,
        12
      ],
      "OFF": [
        -21,
        14
      ],
      "UTIL": [
        -40,
        14
      ]
    },
    "support_program": [
      {
        "building_id": "LAB",
        "original_depth": 12,
        "new_depth": 5.2,
        "rear_working_aisle_m": 2.5,
        "program": "입고 시료·완제품 분석 벤치, 표준품 보관"
      },
      {
        "building_id": "STAFF",
        "original_depth": 14,
        "new_depth": 8.3,
        "rear_working_aisle_m": 2.5,
        "program": "청결복·일반복 사물함, 위생 진입대와 교대 브리핑"
      },
      {
        "building_id": "OFF",
        "original_depth": 12,
        "new_depth": 8.0,
        "rear_working_aisle_m": 2.5,
        "program": "8 생산계획·배차 작업석과 기록 문서장"
      },
      {
        "building_id": "UTIL",
        "original_depth": 18,
        "new_depth": 16.1,
        "rear_working_aisle_m": 2.5,
        "program": "공정별 열원·냉열 스키드 및 모터·씰 작업대"
      }
    ],
    "review_status": "layout_revised_render_review_pending"
  },
  "yard": {
    "roads": [
      {
        "points": [
          [
            6,
            6
          ],
          [
            149,
            6
          ],
          [
            149,
            136
          ],
          [
            6,
            136
          ],
          [
            6,
            6
          ]
        ],
        "width": 6
      }
    ],
    "docks": [
      {
        "x": 24.0,
        "y": 109.15,
        "angle": -1.5707963267948966,
        "building_id": "B01",
        "role": "원료 입고·보류 시료 접수"
      },
      {
        "x": 136.901,
        "y": 52.15,
        "angle": 1.5707963267948966,
        "building_id": "B04",
        "role": "레토르트 카레 박스 출하"
      }
    ],
    "parking": [
      {
        "x": 24,
        "y": 14,
        "angle": 0,
        "count": 12
      }
    ],
    "gate": {
      "x": 149,
      "y": 6
    },
    "pedestrian_gate": {
      "x": 16,
      "y": 6
    },
    "fence": true
  },
  "inventory_basis": {
    "status": "synthetic_planning_assumption",
    "raw_dwell": "향신료·분말 5일, 채소 1일",
    "finished_dwell": "파우치 제품 2일",
    "logic": "생산홀의 잔여 면적을 창고로 바꾸지 않고 각 동 외벽을 공정+제한 버퍼까지 축소했다. 보류/승인/빈 포장재는 표시된 랙 내에서 구별한다.",
    "rack_pallet_positions": 162,
    "floor_pallet_positions": 36
  },
  "density": {
    "equipment_footprint_m2": 807,
    "equipment_coverage_ratio": 0.23568,
    "intent": "채소 토트·카레 분말 포대·파우치 롤 입고 보류·승인재고, 공정 중간품, 레토르트 카레 박스 출하대기와 정비 기능으로 면적을 구성한다. 안전통로는 재고로 채우지 않는다.",
    "production_area_m2": 3424.07,
    "storage_area_m2": 791.17,
    "support_area_m2": 1481.73,
    "circulation_area_m2": 1092.64
  },
  "robot_station_revision": 1,
  "robot_station_review": {
    "status": "input_authored_pending_render",
    "basis": "actual fixture geometry and retained handoff routes",
    "robots": [
      {
        "robot": "0/0",
        "kind": "gantry",
        "fixture_id": "B03-PROCESS-FX01",
        "previous_position": [
          97.0,
          99.0,
          3.141592653589793
        ],
        "position": [
          95.3,
          99.0,
          0
        ],
        "task_points": [
          [
            94.3,
            99.0,
            1.5025
          ],
          [
            95.3,
            99.0,
            1.555
          ]
        ]
      },
      {
        "robot": "1/0",
        "kind": "six_axis",
        "fixture_id": "B04-PROCESS-FX01",
        "previous_position": [
          110.2,
          65.8,
          3.141592653589793
        ],
        "position": [
          109.8,
          65.8,
          3.141592653589793
        ],
        "task_points": [
          [
            108.1,
            65.8,
            1.18
          ],
          [
            108.7,
            65.8,
            1.35
          ]
        ]
      },
      {
        "robot": "1/1",
        "kind": "six_axis",
        "fixture_id": "B04-PROCESS-FX02",
        "previous_position": [
          118.6,
          65.8,
          -1.5707963267948966
        ],
        "position": [
          118.6,
          65.4,
          -1.5707963267948966
        ],
        "task_points": [
          [
            118.2,
            64.1,
            1.18
          ],
          [
            118.8,
            64.1,
            1.35
          ]
        ]
      },
      {
        "robot": "2/0",
        "kind": "palletizer",
        "fixture_id": "B04-PROCESS-FX03",
        "previous_position": [
          79.5,
          59.5,
          0
        ],
        "position": [
          79.5,
          59.5,
          0
        ],
        "task_points": [
          [
            81.68088,
            59.5,
            1.12
          ],
          [
            82.11912,
            59.5,
            1.12
          ]
        ]
      },
      {
        "robot": "2/1",
        "kind": "palletizer",
        "fixture_id": "B04-PROCESS-FX04",
        "previous_position": [
          89.7,
          59.5,
          0
        ],
        "position": [
          89.7,
          59.5,
          0
        ],
        "task_points": [
          [
            91.88088,
            59.5,
            1.12
          ],
          [
            92.31912,
            59.5,
            1.12
          ]
        ]
      }
    ]
  }
}
