{
  "factory_id": "A02",
  "design_revision": 2,
  "design_story": "해온의 생산은 4조 주조 셀과 12기 가공기가 감당하는 물량에 맞춰 네 동으로 압축했다. 서북쪽 14m 고천장 주조동은 낮은 청색 가공동보다 한 층 높게 솟고, 남쪽의 얕은 창고와 벽돌 지원동 사이 8m 배송 통로가 보인다. 각 주조기 바로 옆에 취출 로봇과 트리밍 프레스를 붙이고 뒤편 분사 로봇과 용해로 사이에는 주형 교체 동선을 남긴다. 고온 구역에서 끝난 주물은 동쪽 짧은 실외 인계로를 지나 블라스트와 밀집한 CNC 네 줄로 이동한다. 주조 셀을 크게 보이게 하려고 빈 바닥을 늘리지 않고, 실제 금형 공구·리턴재 용기·냉각 공급장치를 셀 가까이에 두었다. 남쪽 지원동은 금형 정비·계측실과 교대 생활공간을 갖춘 작은 벽돌 덩어리다. 주차는 남쪽 전면에 한 줄로 두고 원료차와 출하차는 서쪽·동쪽 도크로 갈라진다.",
  "site": {
    "width": 130,
    "depth": 105
  },
  "buildings": [
    {
      "id": "foundry",
      "name": "고천장 4셀 주조동",
      "role": "production",
      "polygon": [
        [
          14,
          50
        ],
        [
          66,
          50
        ],
        [
          66,
          90
        ],
        [
          14,
          90
        ]
      ],
      "height": 14,
      "roof": {
        "type": "sawtooth",
        "axis": "y",
        "pitch": 0.18
      },
      "facade": {
        "color": [
          0.3,
          0.34,
          0.35
        ],
        "accent": [
          0.83,
          0.39,
          0.12
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "machining",
      "name": "CNC·세척·검사동",
      "role": "production",
      "polygon": [
        [
          72,
          50
        ],
        [
          114,
          50
        ],
        [
          114,
          90
        ],
        [
          72,
          90
        ]
      ],
      "height": 8,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.02
      },
      "facade": {
        "color": [
          0.65,
          0.73,
          0.78
        ],
        "accent": [
          0.07,
          0.29,
          0.45
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "store",
      "name": "원료·회수용기·납품창고",
      "role": "warehouse",
      "polygon": [
        [
          70,
          18
        ],
        [
          114,
          18
        ],
        [
          114,
          42
        ],
        [
          70,
          42
        ]
      ],
      "height": 8,
      "roof": {
        "type": "gable",
        "axis": "y",
        "pitch": 0.17
      },
      "facade": {
        "color": [
          0.59,
          0.66,
          0.69
        ],
        "accent": [
          0.12,
          0.29,
          0.45
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "support",
      "name": "금형·계측·교대 지원동",
      "role": "support",
      "polygon": [
        [
          14,
          18
        ],
        [
          62,
          18
        ],
        [
          62,
          42
        ],
        [
          14,
          42
        ]
      ],
      "height": 6,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.02
      },
      "facade": {
        "color": [
          0.69,
          0.46,
          0.34
        ],
        "accent": [
          0.2,
          0.27,
          0.28
        ],
        "material": "brick",
        "window_band_height": 0.85
      }
    }
  ],
  "zones": [
    {
      "id": "cast-cells",
      "name": "4조 주조·취출·트리밍 셀",
      "role": "process",
      "building_id": "foundry",
      "x": 14,
      "y": 50,
      "width": 52,
      "depth": 24,
      "stage_ids": [
        "S02",
        "S03"
      ],
      "fixtures": [
        {
          "id": "cast-cells-workbench-01",
          "type": "workbench",
          "x": 15.4,
          "y": 50.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "금형 현장조정대 1"
        },
        {
          "id": "cast-cells-workbench-02",
          "type": "workbench",
          "x": 17.8,
          "y": 50.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "금형 현장조정대 2"
        },
        {
          "id": "cast-cells-workbench-03",
          "type": "workbench",
          "x": 20.2,
          "y": 50.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "금형 현장조정대 3"
        },
        {
          "id": "cast-cells-workbench-04",
          "type": "workbench",
          "x": 22.6,
          "y": 50.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "금형 현장조정대 4"
        },
        {
          "id": "cast-cells-product_bins-01",
          "type": "product_bins",
          "x": 25.2,
          "y": 51.05,
          "width": 1.2,
          "depth": 0.9,
          "height": 1.1,
          "count": 1,
          "label": "게이트·리턴재 전용용기 1"
        },
        {
          "id": "cast-cells-product_bins-02",
          "type": "product_bins",
          "x": 27.2,
          "y": 51.05,
          "width": 1.2,
          "depth": 0.9,
          "height": 1.1,
          "count": 1,
          "label": "게이트·리턴재 전용용기 2"
        },
        {
          "id": "cast-cells-product_bins-03",
          "type": "product_bins",
          "x": 29.2,
          "y": 51.05,
          "width": 1.2,
          "depth": 0.9,
          "height": 1.1,
          "count": 1,
          "label": "게이트·리턴재 전용용기 3"
        },
        {
          "id": "cast-cells-product_bins-04",
          "type": "product_bins",
          "x": 31.2,
          "y": 51.05,
          "width": 1.2,
          "depth": 0.9,
          "height": 1.1,
          "count": 1,
          "label": "게이트·리턴재 전용용기 4"
        }
      ]
    },
    {
      "id": "melt",
      "name": "용해·보온 및 드로스 격리",
      "role": "process",
      "building_id": "foundry",
      "x": 14,
      "y": 74,
      "width": 52,
      "depth": 16,
      "stage_ids": [
        "S01"
      ],
      "fixtures": [
        {
          "id": "melt-waste_station-01",
          "type": "waste_station",
          "x": 15.5,
          "y": 75.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.2,
          "count": 1,
          "label": "용탕 드로스 수거 1"
        },
        {
          "id": "melt-waste_station-02",
          "type": "waste_station",
          "x": 18.1,
          "y": 75.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.2,
          "count": 1,
          "label": "용탕 드로스 수거 2"
        },
        {
          "id": "melt-waste_station-03",
          "type": "waste_station",
          "x": 20.7,
          "y": 75.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.2,
          "count": 1,
          "label": "용탕 드로스 수거 3"
        },
        {
          "id": "melt-pipe_rack-01",
          "type": "pipe_rack",
          "x": 28.7,
          "y": 75.15,
          "width": 5,
          "depth": 1.1,
          "height": 5.5,
          "count": 1,
          "label": "집진 후드 연결 덕트랙 1"
        },
        {
          "id": "melt-pipe_rack-02",
          "type": "pipe_rack",
          "x": 34.5,
          "y": 75.15,
          "width": 5,
          "depth": 1.1,
          "height": 5.5,
          "count": 1,
          "label": "집진 후드 연결 덕트랙 2"
        },
        {
          "id": "melt-cabinet-01",
          "type": "cabinet",
          "x": 23.2,
          "y": 74.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "용탕 분석·열전대 보관 1"
        },
        {
          "id": "melt-cabinet-02",
          "type": "cabinet",
          "x": 39.2,
          "y": 74.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "용탕 분석·열전대 보관 2"
        },
        {
          "id": "melt-cabinet-03",
          "type": "cabinet",
          "x": 41.2,
          "y": 74.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "용탕 분석·열전대 보관 3"
        }
      ]
    },
    {
      "id": "cnc",
      "name": "12기 네 줄 가공 셀",
      "role": "process",
      "building_id": "machining",
      "x": 72,
      "y": 50,
      "width": 26,
      "depth": 34,
      "stage_ids": [
        "S05"
      ],
      "fixtures": [
        {
          "id": "cnc-workbench-01",
          "type": "workbench",
          "x": 73.35,
          "y": 50.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "공구 교체·프리셋대 1"
        },
        {
          "id": "cnc-workbench-02",
          "type": "workbench",
          "x": 75.65,
          "y": 50.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "공구 교체·프리셋대 2"
        },
        {
          "id": "cnc-workbench-03",
          "type": "workbench",
          "x": 77.95,
          "y": 50.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "공구 교체·프리셋대 3"
        },
        {
          "id": "cnc-workbench-04",
          "type": "workbench",
          "x": 80.25,
          "y": 50.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "공구 교체·프리셋대 4"
        },
        {
          "id": "cnc-bin_rack-01",
          "type": "bin_rack",
          "x": 82.4,
          "y": 51.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "팔레트·치구 소형랙 1"
        },
        {
          "id": "cnc-bin_rack-02",
          "type": "bin_rack",
          "x": 84.65,
          "y": 51.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "팔레트·치구 소형랙 2"
        },
        {
          "id": "cnc-bin_rack-03",
          "type": "bin_rack",
          "x": 86.9,
          "y": 51.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "팔레트·치구 소형랙 3"
        },
        {
          "id": "cnc-bin_rack-04",
          "type": "bin_rack",
          "x": 89.15,
          "y": 51.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "팔레트·치구 소형랙 4"
        }
      ]
    },
    {
      "id": "blast",
      "name": "냉각 후 표면 블라스트",
      "role": "process",
      "building_id": "machining",
      "x": 72,
      "y": 84,
      "width": 26,
      "depth": 6,
      "stage_ids": [
        "S04"
      ],
      "fixtures": []
    },
    {
      "id": "wash",
      "name": "2조 세척·건조",
      "role": "process",
      "building_id": "machining",
      "x": 98,
      "y": 50,
      "width": 16,
      "depth": 12,
      "stage_ids": [
        "S06"
      ],
      "fixtures": [
        {
          "id": "wash-cabinet-01",
          "type": "cabinet",
          "x": 99.2,
          "y": 50.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "필터·노즐 보관 1"
        },
        {
          "id": "wash-cabinet-02",
          "type": "cabinet",
          "x": 101.2,
          "y": 50.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "필터·노즐 보관 2"
        }
      ]
    },
    {
      "id": "inspect",
      "name": "누설·치수 전수 검사",
      "role": "process",
      "building_id": "machining",
      "x": 98,
      "y": 62,
      "width": 16,
      "depth": 13,
      "stage_ids": [
        "S07"
      ],
      "fixtures": [
        {
          "id": "inspect-worktable-01",
          "type": "worktable",
          "x": 99.35,
          "y": 62.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "기준품 재판정대 1"
        },
        {
          "id": "inspect-worktable-02",
          "type": "worktable",
          "x": 101.65,
          "y": 62.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "기준품 재판정대 2"
        }
      ]
    },
    {
      "id": "pack",
      "name": "방청·트레이 포장",
      "role": "packaging",
      "building_id": "machining",
      "x": 98,
      "y": 75,
      "width": 16,
      "depth": 15,
      "stage_ids": [
        "S08"
      ],
      "fixtures": [
        {
          "id": "pack-bin_rack-01",
          "type": "bin_rack",
          "x": 99.4,
          "y": 76.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "보호캡·트레이 1"
        },
        {
          "id": "pack-bin_rack-02",
          "type": "bin_rack",
          "x": 101.65,
          "y": 76.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "보호캡·트레이 2"
        },
        {
          "id": "pack-bin_rack-03",
          "type": "bin_rack",
          "x": 103.9,
          "y": 76.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "보호캡·트레이 3"
        },
        {
          "id": "pack-bin_rack-04",
          "type": "bin_rack",
          "x": 106.15,
          "y": 76.05,
          "width": 1.6,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "보호캡·트레이 4"
        }
      ]
    },
    {
      "id": "ingot",
      "name": "합금별 잉곳·회수용기",
      "role": "warehouse",
      "building_id": "store",
      "x": 70,
      "y": 18,
      "width": 18,
      "depth": 24,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "ingot-floor_pallets-01",
          "type": "floor_pallets",
          "x": 71.7,
          "y": 19.35,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 1"
        },
        {
          "id": "ingot-floor_pallets-02",
          "type": "floor_pallets",
          "x": 74.7,
          "y": 19.35,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 2"
        },
        {
          "id": "ingot-floor_pallets-03",
          "type": "floor_pallets",
          "x": 77.7,
          "y": 19.35,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 3"
        },
        {
          "id": "ingot-floor_pallets-04",
          "type": "floor_pallets",
          "x": 80.7,
          "y": 19.35,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 4"
        },
        {
          "id": "ingot-floor_pallets-05",
          "type": "floor_pallets",
          "x": 83.7,
          "y": 19.35,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 5"
        },
        {
          "id": "ingot-floor_pallets-06",
          "type": "floor_pallets",
          "x": 71.7,
          "y": 22.15,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 6"
        },
        {
          "id": "ingot-floor_pallets-07",
          "type": "floor_pallets",
          "x": 74.7,
          "y": 22.15,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 7"
        },
        {
          "id": "ingot-floor_pallets-08",
          "type": "floor_pallets",
          "x": 77.7,
          "y": 22.15,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 8"
        },
        {
          "id": "ingot-floor_pallets-09",
          "type": "floor_pallets",
          "x": 80.7,
          "y": 22.15,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 9"
        },
        {
          "id": "ingot-floor_pallets-10",
          "type": "floor_pallets",
          "x": 83.7,
          "y": 22.15,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 10"
        },
        {
          "id": "ingot-floor_pallets-11",
          "type": "floor_pallets",
          "x": 71.7,
          "y": 24.95,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 11"
        },
        {
          "id": "ingot-floor_pallets-12",
          "type": "floor_pallets",
          "x": 74.7,
          "y": 24.95,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 12"
        },
        {
          "id": "ingot-floor_pallets-13",
          "type": "floor_pallets",
          "x": 77.7,
          "y": 24.95,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 13"
        },
        {
          "id": "ingot-floor_pallets-14",
          "type": "floor_pallets",
          "x": 80.7,
          "y": 24.95,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 14"
        },
        {
          "id": "ingot-floor_pallets-15",
          "type": "floor_pallets",
          "x": 83.7,
          "y": 24.95,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 15"
        },
        {
          "id": "ingot-floor_pallets-16",
          "type": "floor_pallets",
          "x": 71.7,
          "y": 27.75,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 16"
        },
        {
          "id": "ingot-floor_pallets-17",
          "type": "floor_pallets",
          "x": 74.7,
          "y": 27.75,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 17"
        },
        {
          "id": "ingot-floor_pallets-18",
          "type": "floor_pallets",
          "x": 77.7,
          "y": 27.75,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "label": "주조 합금 잉곳 18"
        },
        {
          "id": "ingot-bin_rack-01",
          "type": "bin_rack",
          "x": 72.5,
          "y": 32.5,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "반환 트레이 1"
        },
        {
          "id": "ingot-bin_rack-02",
          "type": "bin_rack",
          "x": 74.25,
          "y": 30.3,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "반환 트레이 2"
        },
        {
          "id": "ingot-bin_rack-03",
          "type": "bin_rack",
          "x": 76.9,
          "y": 30.3,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "반환 트레이 3"
        },
        {
          "id": "ingot-bin_rack-04",
          "type": "bin_rack",
          "x": 79.55,
          "y": 30.3,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "반환 트레이 4"
        },
        {
          "id": "ingot-bin_rack-05",
          "type": "bin_rack",
          "x": 82.2,
          "y": 30.3,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "반환 트레이 5"
        },
        {
          "id": "ingot-bin_rack-06",
          "type": "bin_rack",
          "x": 84.85,
          "y": 30.3,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "반환 트레이 6"
        }
      ]
    },
    {
      "id": "finished",
      "name": "차종별 완제품·출하",
      "role": "warehouse",
      "building_id": "store",
      "x": 88,
      "y": 18,
      "width": 26,
      "depth": 24,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "finished-pallet_rack-01",
          "type": "pallet_rack",
          "x": 90.0,
          "y": 19.25,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 1"
        },
        {
          "id": "finished-pallet_rack-02",
          "type": "pallet_rack",
          "x": 93.45,
          "y": 19.25,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 2"
        },
        {
          "id": "finished-pallet_rack-03",
          "type": "pallet_rack",
          "x": 96.9,
          "y": 19.25,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 3"
        },
        {
          "id": "finished-pallet_rack-04",
          "type": "pallet_rack",
          "x": 100.35,
          "y": 19.25,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 4"
        },
        {
          "id": "finished-pallet_rack-05",
          "type": "pallet_rack",
          "x": 103.8,
          "y": 19.25,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 5"
        },
        {
          "id": "finished-pallet_rack-06",
          "type": "pallet_rack",
          "x": 107.25,
          "y": 19.25,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 6"
        },
        {
          "id": "finished-pallet_rack-07",
          "type": "pallet_rack",
          "x": 110.7,
          "y": 19.25,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 7"
        },
        {
          "id": "finished-pallet_rack-08",
          "type": "pallet_rack",
          "x": 90.0,
          "y": 23.05,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 8"
        },
        {
          "id": "finished-pallet_rack-09",
          "type": "pallet_rack",
          "x": 93.45,
          "y": 23.05,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 9"
        },
        {
          "id": "finished-pallet_rack-10",
          "type": "pallet_rack",
          "x": 96.9,
          "y": 23.05,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 10"
        },
        {
          "id": "finished-pallet_rack-11",
          "type": "pallet_rack",
          "x": 100.35,
          "y": 23.05,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 11"
        },
        {
          "id": "finished-pallet_rack-12",
          "type": "pallet_rack",
          "x": 103.8,
          "y": 23.05,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 12"
        },
        {
          "id": "finished-pallet_rack-13",
          "type": "pallet_rack",
          "x": 107.25,
          "y": 23.05,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 13"
        },
        {
          "id": "finished-pallet_rack-14",
          "type": "pallet_rack",
          "x": 110.7,
          "y": 23.05,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 14"
        },
        {
          "id": "finished-pallet_rack-15",
          "type": "pallet_rack",
          "x": 90.0,
          "y": 26.85,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 15"
        },
        {
          "id": "finished-pallet_rack-16",
          "type": "pallet_rack",
          "x": 93.45,
          "y": 26.85,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 16"
        },
        {
          "id": "finished-pallet_rack-17",
          "type": "pallet_rack",
          "x": 96.9,
          "y": 26.85,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 17"
        },
        {
          "id": "finished-pallet_rack-18",
          "type": "pallet_rack",
          "x": 100.35,
          "y": 26.85,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 18"
        },
        {
          "id": "finished-pallet_rack-19",
          "type": "pallet_rack",
          "x": 103.8,
          "y": 26.85,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 19"
        },
        {
          "id": "finished-pallet_rack-20",
          "type": "pallet_rack",
          "x": 107.25,
          "y": 26.85,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 20"
        },
        {
          "id": "finished-pallet_rack-21",
          "type": "pallet_rack",
          "x": 110.7,
          "y": 26.85,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 21"
        },
        {
          "id": "finished-pallet_rack-22",
          "type": "pallet_rack",
          "x": 90.0,
          "y": 30.65,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 22"
        },
        {
          "id": "finished-pallet_rack-23",
          "type": "pallet_rack",
          "x": 93.45,
          "y": 30.65,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 23"
        },
        {
          "id": "finished-pallet_rack-24",
          "type": "pallet_rack",
          "x": 96.9,
          "y": 30.65,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 24"
        },
        {
          "id": "finished-pallet_rack-25",
          "type": "pallet_rack",
          "x": 100.35,
          "y": 30.65,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 25"
        },
        {
          "id": "finished-pallet_rack-26",
          "type": "pallet_rack",
          "x": 103.8,
          "y": 30.65,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 26"
        },
        {
          "id": "finished-pallet_rack-27",
          "type": "pallet_rack",
          "x": 107.25,
          "y": 30.65,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 27"
        },
        {
          "id": "finished-pallet_rack-28",
          "type": "pallet_rack",
          "x": 110.7,
          "y": 30.65,
          "width": 2.8,
          "depth": 1.1,
          "height": 5,
          "count": 1,
          "label": "가공 하우징 납품 랙 28"
        },
        {
          "id": "finished-dock_staging-01",
          "type": "dock_staging",
          "x": 89.6,
          "y": 32.8,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "금일 출하 대차 1"
        },
        {
          "id": "finished-dock_staging-02",
          "type": "dock_staging",
          "x": 92.4,
          "y": 32.8,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "금일 출하 대차 2"
        },
        {
          "id": "finished-dock_staging-03",
          "type": "dock_staging",
          "x": 95.2,
          "y": 32.8,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "금일 출하 대차 3"
        },
        {
          "id": "finished-dock_staging-04",
          "type": "dock_staging",
          "x": 98.0,
          "y": 32.8,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "금일 출하 대차 4"
        },
        {
          "id": "finished-dock_staging-05",
          "type": "dock_staging",
          "x": 100.8,
          "y": 32.8,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "금일 출하 대차 5"
        },
        {
          "id": "finished-dock_staging-06",
          "type": "dock_staging",
          "x": 103.6,
          "y": 32.8,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "금일 출하 대차 6"
        }
      ]
    },
    {
      "id": "office",
      "name": "생산·납품 사무실",
      "role": "office",
      "building_id": "support",
      "x": 14,
      "y": 18,
      "width": 18,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "office-office_desks-01",
          "type": "office_desks",
          "x": 15.85,
          "y": 19.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "품질·생산 사무석 1"
        },
        {
          "id": "office-office_desks-02",
          "type": "office_desks",
          "x": 19.15,
          "y": 19.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "품질·생산 사무석 2"
        },
        {
          "id": "office-office_desks-03",
          "type": "office_desks",
          "x": 22.45,
          "y": 19.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "품질·생산 사무석 3"
        },
        {
          "id": "office-office_desks-04",
          "type": "office_desks",
          "x": 25.75,
          "y": 19.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "품질·생산 사무석 4"
        },
        {
          "id": "office-office_desks-05",
          "type": "office_desks",
          "x": 29.05,
          "y": 19.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "품질·생산 사무석 5"
        }
      ]
    },
    {
      "id": "staff",
      "name": "탈의·샤워·휴게",
      "role": "staff",
      "building_id": "support",
      "x": 32,
      "y": 18,
      "width": 14,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "staff-locker_bank-01",
          "type": "locker_bank",
          "x": 33.5,
          "y": 18.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 1"
        },
        {
          "id": "staff-locker_bank-02",
          "type": "locker_bank",
          "x": 36.1,
          "y": 18.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 2"
        },
        {
          "id": "staff-locker_bank-03",
          "type": "locker_bank",
          "x": 40.9,
          "y": 20.75,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 3"
        },
        {
          "id": "staff-locker_bank-04",
          "type": "locker_bank",
          "x": 43.4,
          "y": 20.75,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 4"
        },
        {
          "id": "staff-locker_bank-05",
          "type": "locker_bank",
          "x": 43.9,
          "y": 18.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 5"
        },
        {
          "id": "staff-locker_bank-06",
          "type": "locker_bank",
          "x": 33.5,
          "y": 20.65,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 6"
        },
        {
          "id": "staff-worktable-01",
          "type": "worktable",
          "x": 36.1,
          "y": 21.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "교대 휴게대 1"
        },
        {
          "id": "staff-worktable-02",
          "type": "worktable",
          "x": 38.7,
          "y": 21.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "교대 휴게대 2"
        }
      ]
    },
    {
      "id": "metrology",
      "name": "항온 치수·청정도실",
      "role": "laboratory",
      "building_id": "support",
      "x": 46,
      "y": 18,
      "width": 16,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "metrology-lab_bench-01",
          "type": "lab_bench",
          "x": 47.6,
          "y": 19.05,
          "width": 2,
          "depth": 0.9,
          "height": 1.2,
          "count": 1,
          "label": "측정·표본 검사대 1"
        },
        {
          "id": "metrology-lab_bench-02",
          "type": "lab_bench",
          "x": 50.4,
          "y": 19.05,
          "width": 2,
          "depth": 0.9,
          "height": 1.2,
          "count": 1,
          "label": "측정·표본 검사대 2"
        },
        {
          "id": "metrology-lab_bench-03",
          "type": "lab_bench",
          "x": 53.2,
          "y": 19.05,
          "width": 2,
          "depth": 0.9,
          "height": 1.2,
          "count": 1,
          "label": "측정·표본 검사대 3"
        },
        {
          "id": "metrology-lab_bench-04",
          "type": "lab_bench",
          "x": 56.0,
          "y": 19.05,
          "width": 2,
          "depth": 0.9,
          "height": 1.2,
          "count": 1,
          "label": "측정·표본 검사대 4"
        },
        {
          "id": "metrology-lab_bench-05",
          "type": "lab_bench",
          "x": 58.8,
          "y": 19.05,
          "width": 2,
          "depth": 0.9,
          "height": 1.2,
          "count": 1,
          "label": "측정·표본 검사대 5"
        },
        {
          "id": "metrology-cabinet-01",
          "type": "cabinet",
          "x": 47.2,
          "y": 20.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준링 보관 1"
        },
        {
          "id": "metrology-cabinet-02",
          "type": "cabinet",
          "x": 49.2,
          "y": 20.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준링 보관 2"
        },
        {
          "id": "metrology-cabinet-03",
          "type": "cabinet",
          "x": 51.2,
          "y": 20.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준링 보관 3"
        }
      ]
    },
    {
      "id": "toolroom",
      "name": "금형·스핀들 정비",
      "role": "maintenance",
      "building_id": "support",
      "x": 14,
      "y": 28,
      "width": 26,
      "depth": 14,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "toolroom-workbench-01",
          "type": "workbench",
          "x": 15.85,
          "y": 29.25,
          "width": 2.5,
          "depth": 1.3,
          "height": 1,
          "count": 1,
          "label": "금형 분해·조립 정비대 1"
        },
        {
          "id": "toolroom-workbench-02",
          "type": "workbench",
          "x": 19.15,
          "y": 29.25,
          "width": 2.5,
          "depth": 1.3,
          "height": 1,
          "count": 1,
          "label": "금형 분해·조립 정비대 2"
        },
        {
          "id": "toolroom-workbench-03",
          "type": "workbench",
          "x": 22.45,
          "y": 29.25,
          "width": 2.5,
          "depth": 1.3,
          "height": 1,
          "count": 1,
          "label": "금형 분해·조립 정비대 3"
        },
        {
          "id": "toolroom-workbench-04",
          "type": "workbench",
          "x": 25.75,
          "y": 29.25,
          "width": 2.5,
          "depth": 1.3,
          "height": 1,
          "count": 1,
          "label": "금형 분해·조립 정비대 4"
        },
        {
          "id": "toolroom-workbench-05",
          "type": "workbench",
          "x": 29.05,
          "y": 29.25,
          "width": 2.5,
          "depth": 1.3,
          "height": 1,
          "count": 1,
          "label": "금형 분해·조립 정비대 5"
        },
        {
          "id": "toolroom-bin_rack-01",
          "type": "bin_rack",
          "x": 32.8,
          "y": 29.25,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 1"
        },
        {
          "id": "toolroom-bin_rack-02",
          "type": "bin_rack",
          "x": 35.65,
          "y": 29.25,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 2"
        },
        {
          "id": "toolroom-bin_rack-03",
          "type": "bin_rack",
          "x": 15.7,
          "y": 33.05,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 3"
        },
        {
          "id": "toolroom-bin_rack-04",
          "type": "bin_rack",
          "x": 18.55,
          "y": 33.05,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 4"
        },
        {
          "id": "toolroom-bin_rack-05",
          "type": "bin_rack",
          "x": 21.4,
          "y": 33.05,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 5"
        },
        {
          "id": "toolroom-bin_rack-06",
          "type": "bin_rack",
          "x": 24.25,
          "y": 33.05,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 6"
        },
        {
          "id": "toolroom-bin_rack-07",
          "type": "bin_rack",
          "x": 27.1,
          "y": 33.05,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 7"
        },
        {
          "id": "toolroom-bin_rack-08",
          "type": "bin_rack",
          "x": 29.95,
          "y": 33.05,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 8"
        },
        {
          "id": "toolroom-bin_rack-09",
          "type": "bin_rack",
          "x": 32.8,
          "y": 33.05,
          "width": 2.2,
          "depth": 1.1,
          "height": 3,
          "count": 1,
          "label": "교체 금형·지그 9"
        }
      ]
    },
    {
      "id": "utility",
      "name": "냉각·공압·배전",
      "role": "utility",
      "building_id": "support",
      "x": 40,
      "y": 28,
      "width": 22,
      "depth": 14,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "utility-chiller-01",
          "type": "chiller",
          "x": 42.35,
          "y": 29.6,
          "width": 3.5,
          "depth": 2,
          "height": 2.5,
          "count": 1,
          "label": "공정별 냉각 스키드 1"
        },
        {
          "id": "utility-chiller-02",
          "type": "chiller",
          "x": 46.65,
          "y": 29.6,
          "width": 3.5,
          "depth": 2,
          "height": 2.5,
          "count": 1,
          "label": "공정별 냉각 스키드 2"
        },
        {
          "id": "utility-compressor-01",
          "type": "compressor",
          "x": 51.75,
          "y": 29.35,
          "width": 2.5,
          "depth": 1.5,
          "height": 2,
          "count": 1,
          "label": "중앙 공기압축기 1"
        },
        {
          "id": "utility-compressor-02",
          "type": "compressor",
          "x": 55.05,
          "y": 29.35,
          "width": 2.5,
          "depth": 1.5,
          "height": 2,
          "count": 1,
          "label": "중앙 공기압축기 2"
        },
        {
          "id": "utility-electrical_bank-01",
          "type": "electrical_bank",
          "x": 58.2,
          "y": 28.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 2.2,
          "count": 1,
          "label": "배전반 1"
        },
        {
          "id": "utility-electrical_bank-02",
          "type": "electrical_bank",
          "x": 60.6,
          "y": 28.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 2.2,
          "count": 1,
          "label": "배전반 2"
        },
        {
          "id": "utility-electrical_bank-03",
          "type": "electrical_bank",
          "x": 51.0,
          "y": 30.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 2.2,
          "count": 1,
          "label": "배전반 3"
        },
        {
          "id": "utility-electrical_bank-04",
          "type": "electrical_bank",
          "x": 53.4,
          "y": 30.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 2.2,
          "count": 1,
          "label": "배전반 4"
        },
        {
          "id": "utility-waste_station-01",
          "type": "waste_station",
          "x": 41.7,
          "y": 32.15,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "칩·폐절삭유 분리 1"
        },
        {
          "id": "utility-waste_station-02",
          "type": "waste_station",
          "x": 44.7,
          "y": 32.15,
          "width": 2.2,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "칩·폐절삭유 분리 2"
        }
      ]
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 22,
      "y": 82,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 39,
      "y": 82,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 2,
      "x": 56,
      "y": 82,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 24,
      "y": 57,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 49,
      "y": 57,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 2,
      "x": 24,
      "y": 68,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 3,
      "x": 49,
      "y": 68,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 35,
      "y": 57,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 60,
      "y": 57,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 2,
      "x": 35,
      "y": 68,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 3,
      "x": 60,
      "y": 68,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 79,
      "y": 87,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 90,
      "y": 87,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 76,
      "y": 55,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 84,
      "y": 55,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 2,
      "x": 92,
      "y": 55,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 3,
      "x": 76,
      "y": 63,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 4,
      "x": 84,
      "y": 63,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 5,
      "x": 92,
      "y": 63,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 6,
      "x": 76,
      "y": 71,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 7,
      "x": 84,
      "y": 71,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 8,
      "x": 92,
      "y": 71,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 9,
      "x": 76,
      "y": 79,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 10,
      "x": 84,
      "y": 79,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 11,
      "x": 92,
      "y": 79,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 106,
      "y": 53,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 106,
      "y": 59,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 102,
      "y": 65,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 109,
      "y": 65,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 2,
      "x": 102,
      "y": 71,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 3,
      "x": 109,
      "y": 71,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 106,
      "y": 79,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 106,
      "y": 86,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S02",
      "x": 21.525,
      "y": 53.4,
      "angle": 1.5707963267948966,
      "task_station": "S02 #1 금형 남측 전면에서 인접 내열 인계대로 취출. 트리머까지는 전용 컨베이어가 이송한다. 형판 사이 0.55m 틈에 현재 넓은 툴을 깊이 삽입하는 동작은 별도 개선 대상이다.",
      "task_point": [
        21.525,
        55.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 0
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "handover_point": [
        23.9,
        53.4,
        1.1
      ],
      "task_points": [
        [
          21.525,
          55.5,
          2.7
        ],
        [
          23.9,
          53.4,
          1.1
        ]
      ]
    },
    {
      "definition_index": 0,
      "instance_index": 1,
      "stage_id": "S02",
      "x": 46.525,
      "y": 53.4,
      "angle": 1.5707963267948966,
      "task_station": "S02 #2 금형 남측 전면에서 인접 내열 인계대로 취출. 트리머까지는 전용 컨베이어가 이송한다. 형판 사이 0.55m 틈에 현재 넓은 툴을 깊이 삽입하는 동작은 별도 개선 대상이다.",
      "task_point": [
        46.525,
        55.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 1
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "handover_point": [
        48.9,
        53.4,
        1.1
      ],
      "task_points": [
        [
          46.525,
          55.5,
          2.7
        ],
        [
          48.9,
          53.4,
          1.1
        ]
      ]
    },
    {
      "definition_index": 0,
      "instance_index": 2,
      "stage_id": "S02",
      "x": 21.525,
      "y": 64.4,
      "angle": 1.5707963267948966,
      "task_station": "S02 #3 금형 남측 전면에서 인접 내열 인계대로 취출. 트리머까지는 전용 컨베이어가 이송한다. 형판 사이 0.55m 틈에 현재 넓은 툴을 깊이 삽입하는 동작은 별도 개선 대상이다.",
      "task_point": [
        21.525,
        66.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 2
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "handover_point": [
        23.9,
        64.4,
        1.1
      ],
      "task_points": [
        [
          21.525,
          66.5,
          2.7
        ],
        [
          23.9,
          64.4,
          1.1
        ]
      ]
    },
    {
      "definition_index": 0,
      "instance_index": 3,
      "stage_id": "S02",
      "x": 46.525,
      "y": 64.4,
      "angle": 1.5707963267948966,
      "task_station": "S02 #4 금형 남측 전면에서 인접 내열 인계대로 취출. 트리머까지는 전용 컨베이어가 이송한다. 형판 사이 0.55m 틈에 현재 넓은 툴을 깊이 삽입하는 동작은 별도 개선 대상이다.",
      "task_point": [
        46.525,
        66.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 3
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "handover_point": [
        48.9,
        64.4,
        1.1
      ],
      "task_points": [
        [
          46.525,
          66.5,
          2.7
        ],
        [
          48.9,
          64.4,
          1.1
        ]
      ]
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S02",
      "x": 21.525,
      "y": 60.6,
      "angle": -1.5707963267948966,
      "task_station": "S02 #1 금형 북측 전면. 1.10m 받침대에서 z=2.70m 분사 작업점을 향하며 취출과 인터록 교대. 제어반은 베이스 후면에 배치한다.",
      "task_point": [
        21.525,
        58.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 0
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "mounting_height_m": 1.1
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S02",
      "x": 46.525,
      "y": 60.6,
      "angle": -1.5707963267948966,
      "task_station": "S02 #2 금형 북측 전면. 1.10m 받침대에서 z=2.70m 분사 작업점을 향하며 취출과 인터록 교대. 제어반은 베이스 후면에 배치한다.",
      "task_point": [
        46.525,
        58.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 1
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "mounting_height_m": 1.1
    },
    {
      "definition_index": 1,
      "instance_index": 2,
      "stage_id": "S02",
      "x": 21.525,
      "y": 71.6,
      "angle": -1.5707963267948966,
      "task_station": "S02 #3 금형 북측 전면. 1.10m 받침대에서 z=2.70m 분사 작업점을 향하며 취출과 인터록 교대. 제어반은 베이스 후면에 배치한다.",
      "task_point": [
        21.525,
        69.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 2
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "mounting_height_m": 1.1
    },
    {
      "definition_index": 1,
      "instance_index": 3,
      "stage_id": "S02",
      "x": 46.525,
      "y": 71.6,
      "angle": -1.5707963267948966,
      "task_station": "S02 #4 금형 북측 전면. 1.10m 받침대에서 z=2.70m 분사 작업점을 향하며 취출과 인터록 교대. 제어반은 베이스 후면에 배치한다.",
      "task_point": [
        46.525,
        69.5,
        2.7
      ],
      "host_equipment": {
        "stage_id": "S02",
        "index": 3
      },
      "controller_offset": [
        -1.6,
        1,
        0
      ],
      "mounting_height_m": 1.1
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S05",
      "x": 80,
      "y": 56,
      "angle": 0,
      "task_station": "CNC S05 index 0·1 전면 회전 팔레트의 인계. 14×8m 외곽 지지프레임·바닥 기준 4.8m 빔, 실제 팔레트 높이 2.28m로 Z축 하강. 6m 공칭 도달범위 안의 두 작업점만 담당한다.",
      "gantry_span": [
        14,
        8,
        4.8
      ],
      "task_point": [
        76.27,
        53.75,
        2.28
      ],
      "task_points": [
        [
          76.27,
          53.75,
          2.28
        ],
        [
          84.27,
          53.75,
          2.28
        ]
      ],
      "host_equipment": {
        "stage_id": "S05",
        "index": 0
      },
      "controller_offset": [
        0,
        3.2,
        0
      ],
      "served_equipment": [
        {
          "stage_id": "S05",
          "index": 0
        },
        {
          "stage_id": "S05",
          "index": 1
        }
      ]
    },
    {
      "definition_index": 2,
      "instance_index": 1,
      "stage_id": "S05",
      "x": 88,
      "y": 64,
      "angle": 0,
      "task_station": "CNC S05 index 4·5 전면 회전 팔레트의 인계. 14×8m 외곽 지지프레임·바닥 기준 4.8m 빔, 실제 팔레트 높이 2.28m로 Z축 하강. 6m 공칭 도달범위 안의 두 작업점만 담당한다.",
      "gantry_span": [
        14,
        8,
        4.8
      ],
      "task_point": [
        84.27,
        61.75,
        2.28
      ],
      "task_points": [
        [
          84.27,
          61.75,
          2.28
        ],
        [
          92.27,
          61.75,
          2.28
        ]
      ],
      "host_equipment": {
        "stage_id": "S05",
        "index": 4
      },
      "controller_offset": [
        0,
        3.2,
        0
      ],
      "served_equipment": [
        {
          "stage_id": "S05",
          "index": 4
        },
        {
          "stage_id": "S05",
          "index": 5
        }
      ]
    },
    {
      "definition_index": 2,
      "instance_index": 2,
      "stage_id": "S05",
      "x": 80,
      "y": 78,
      "angle": 0,
      "task_station": "CNC S05 index 9·10 전면 회전 팔레트의 인계. 14×8m 외곽 지지프레임·바닥 기준 4.8m 빔, 실제 팔레트 높이 2.28m로 Z축 하강. 6m 공칭 도달범위 안의 두 작업점만 담당한다.",
      "gantry_span": [
        14,
        8,
        4.8
      ],
      "task_point": [
        76.27,
        77.75,
        2.28
      ],
      "task_points": [
        [
          76.27,
          77.75,
          2.28
        ],
        [
          84.27,
          77.75,
          2.28
        ]
      ],
      "host_equipment": {
        "stage_id": "S05",
        "index": 9
      },
      "controller_offset": [
        0,
        3.2,
        0
      ],
      "served_equipment": [
        {
          "stage_id": "S05",
          "index": 9
        },
        {
          "stage_id": "S05",
          "index": 10
        }
      ]
    },
    {
      "definition_index": 3,
      "instance_index": 0,
      "stage_id": "S04",
      "x": 96,
      "y": 87,
      "angle": 3.141592653589793,
      "task_station": "블라스트 완료 트레이 인계"
    },
    {
      "definition_index": 3,
      "instance_index": 1,
      "stage_id": "S05",
      "x": 95,
      "y": 82,
      "angle": 3.141592653589793,
      "task_station": "CNC 가공 완료 팔레트"
    },
    {
      "definition_index": 3,
      "instance_index": 2,
      "stage_id": "S07",
      "x": 112,
      "y": 73,
      "angle": 3.141592653589793,
      "task_station": "검사 합격 트레이 인계"
    }
  ],
  "logistics": [
    {
      "id": "용해 원료 공급",
      "kind": "forklift",
      "from": "ingot",
      "to": "melt",
      "points": [
        [
          70,
          31,
          0.1
        ],
        [
          67.8,
          31,
          0.1
        ],
        [
          67.8,
          94,
          0.1
        ],
        [
          60,
          94,
          0.1
        ],
        [
          60,
          89,
          0.1
        ]
      ],
      "width": 2.8
    },
    {
      "id": "주조→블라스트",
      "kind": "amr",
      "from": "cast-cells",
      "to": "blast",
      "points": [
        [
          64,
          70,
          0.1
        ],
        [
          69,
          70,
          0.1
        ],
        [
          69,
          87,
          0.1
        ],
        [
          73,
          87,
          0.1
        ]
      ],
      "width": 1.4
    },
    {
      "id": "CNC→세척",
      "kind": "conveyor",
      "from": "cnc",
      "to": "wash",
      "points": [
        [
          94.6,
          63,
          0.95
        ],
        [
          97,
          63,
          0.95
        ],
        [
          97,
          59,
          0.95
        ],
        [
          102,
          59,
          0.95
        ]
      ],
      "width": 0.7
    },
    {
      "id": "완제품 납품 이동",
      "kind": "forklift",
      "from": "pack",
      "to": "finished",
      "points": [
        [
          113,
          82,
          0.1
        ],
        [
          119,
          82,
          0.1
        ],
        [
          119,
          35,
          0.1
        ],
        [
          112,
          35,
          0.1
        ]
      ],
      "width": 2.8
    },
    {
      "id": "교대 출입",
      "kind": "pedestrian",
      "from": "정문",
      "to": "staff",
      "points": [
        [
          40,
          8,
          0.12
        ],
        [
          40,
          19,
          0.12
        ]
      ],
      "width": 1.4
    },
    {
      "id": "공정 인계 S01->S02",
      "kind": "forklift",
      "width": 2.4,
      "from": "S01:0",
      "to": "S02:2",
      "points": [
        [
          16.68,
          82.0,
          0.1
        ],
        [
          12.58,
          82,
          0.1
        ],
        [
          12.58,
          68,
          0.1
        ],
        [
          17.18,
          68.0,
          0.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "용탕은 전용 보온 운반차로 공급한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "공정 인계 S02->S03",
      "kind": "conveyor",
      "width": 0.8,
      "from": "S02:0",
      "to": "S03:0",
      "points": [
        [
          23.9,
          53.4,
          1.1
        ],
        [
          31.2,
          53.4,
          1.1
        ],
        [
          31.2,
          57,
          1.1
        ],
        [
          35,
          57,
          1.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "금형 남측 취출 로봇의 내열 인계대에서 시작하여 주조기 하부 외측으로 우회한 뒤 해당 트리머 입력면에 접근한다."
    },
    {
      "id": "공정 인계 S04->S05",
      "kind": "amr",
      "width": 1.4,
      "from": "S04:1",
      "to": "S05:11",
      "points": [
        [
          90.0,
          84.18,
          0.1
        ],
        [
          90.0,
          82.32,
          0.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "주조·트리밍 셀 또는 후가공 검사 포트의 명시 인계.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "공정 인계 S06->S07",
      "kind": "conveyor",
      "width": 0.8,
      "from": "S06:1",
      "to": "S07:1",
      "points": [
        [
          106,
          59,
          1.1
        ],
        [
          106,
          65,
          1.1
        ],
        [
          109,
          65,
          1.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "주조·트리밍 셀 또는 후가공 검사 포트의 명시 인계."
    },
    {
      "id": "공정 인계 S07->S08",
      "kind": "amr",
      "width": 1.4,
      "from": "S07:3",
      "to": "S08:0",
      "points": [
        [
          109.0,
          73.07,
          0.1
        ],
        [
          109.0,
          76.8501,
          0.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "주조·트리밍 셀 또는 후가공 검사 포트의 명시 인계.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "주조 2셀→전용 트리머",
      "kind": "conveyor",
      "width": 0.8,
      "from": "S02:1",
      "to": "S03:1",
      "points": [
        [
          48.9,
          53.4,
          1.1
        ],
        [
          56.2,
          53.4,
          1.1
        ],
        [
          56.2,
          57,
          1.1
        ],
        [
          60,
          57,
          1.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "금형 남측 취출 로봇의 내열 인계대에서 시작하여 주조기 하부 외측으로 우회한 뒤 해당 트리머 입력면에 접근한다."
    },
    {
      "id": "주조 3셀→전용 트리머",
      "kind": "conveyor",
      "width": 0.8,
      "from": "S02:2",
      "to": "S03:2",
      "points": [
        [
          23.9,
          64.4,
          1.1
        ],
        [
          31.2,
          64.4,
          1.1
        ],
        [
          31.2,
          68,
          1.1
        ],
        [
          35,
          68,
          1.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "금형 남측 취출 로봇의 내열 인계대에서 시작하여 주조기 하부 외측으로 우회한 뒤 해당 트리머 입력면에 접근한다."
    },
    {
      "id": "주조 4셀→전용 트리머",
      "kind": "conveyor",
      "width": 0.8,
      "from": "S02:3",
      "to": "S03:3",
      "points": [
        [
          48.9,
          64.4,
          1.1
        ],
        [
          56.2,
          64.4,
          1.1
        ],
        [
          56.2,
          68,
          1.1
        ],
        [
          60,
          68,
          1.1
        ]
      ],
      "authored_transport": true,
      "routing_note": "금형 남측 취출 로봇의 내열 인계대에서 시작하여 주조기 하부 외측으로 우회한 뒤 해당 트리머 입력면에 접근한다."
    }
  ],
  "yard": {
    "roads": [
      {
        "points": [
          [
            8,
            8
          ],
          [
            122,
            8
          ],
          [
            122,
            97
          ],
          [
            8,
            97
          ],
          [
            8,
            8
          ]
        ],
        "width": 7
      }
    ],
    "docks": [
      {
        "x": 70,
        "y": 31,
        "angle": -1.5707963267948966,
        "building_id": "store",
        "role": "잉곳·반환용기 입고"
      },
      {
        "x": 114,
        "y": 35,
        "angle": 1.5707963267948966,
        "building_id": "store",
        "role": "하우징 납품"
      },
      {
        "x": 48,
        "y": 90,
        "angle": 3.141592653589793,
        "building_id": "foundry",
        "role": "금형 교체"
      }
    ],
    "parking": [
      {
        "x": 18,
        "y": 12,
        "angle": 0,
        "count": 16
      }
    ],
    "gate": {
      "x": 40,
      "y": 8
    },
    "fence": true
  },
  "landmarks": [
    "서북쪽 높은 톱니 지붕 주조동과 실제 pipe_rack 집진 연결대",
    "4개 주조기 옆 취출·트림과 뒤편 분사 로봇으로 만든 4개 연동 셀",
    "CNC 12기가 네 줄로 밀집한 낮은 청색 가공동",
    "남쪽 벽돌 금형·계측 지원동과 좌우로 분리된 원료·완제품 도크"
  ],
  "openings": [
    {
      "id": "opening-1",
      "building_id": "store",
      "x": 70,
      "y": 31.0,
      "width": 3.4,
      "height": 4.3,
      "axis": "y",
      "connects": [
        "ingot",
        "melt"
      ]
    },
    {
      "id": "opening-2",
      "building_id": "store",
      "x": 70,
      "y": 31.0,
      "width": 3.4,
      "height": 4.3,
      "axis": "y",
      "connects": [
        "ingot",
        "melt"
      ],
      "zone_id": "ingot"
    },
    {
      "id": "opening-3",
      "building_id": "foundry",
      "x": 60.0,
      "y": 90,
      "width": 3.4,
      "height": 4.3,
      "axis": "x",
      "connects": [
        "ingot",
        "melt"
      ]
    },
    {
      "id": "opening-4",
      "building_id": "foundry",
      "x": 60.0,
      "y": 90,
      "width": 3.4,
      "height": 4.3,
      "axis": "x",
      "connects": [
        "ingot",
        "melt"
      ],
      "zone_id": "melt"
    },
    {
      "id": "opening-5",
      "building_id": "foundry",
      "x": 66,
      "y": 70.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "cast-cells",
        "blast"
      ]
    },
    {
      "id": "opening-6",
      "building_id": "foundry",
      "x": 66,
      "y": 70.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "cast-cells",
        "blast"
      ],
      "zone_id": "cast-cells"
    },
    {
      "id": "opening-7",
      "building_id": "machining",
      "x": 72,
      "y": 87.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "cast-cells",
        "blast"
      ]
    },
    {
      "id": "opening-8",
      "building_id": "machining",
      "x": 72,
      "y": 87.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "cast-cells",
        "blast"
      ],
      "zone_id": "blast"
    },
    {
      "id": "opening-9",
      "building_id": "machining",
      "x": 98,
      "y": 59.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "cnc",
        "wash"
      ],
      "zone_id": "cnc"
    },
    {
      "id": "opening-10",
      "building_id": "machining",
      "x": 98,
      "y": 59.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "cnc",
        "wash"
      ],
      "zone_id": "wash"
    },
    {
      "id": "opening-11",
      "building_id": "machining",
      "x": 114,
      "y": 82.0,
      "width": 3.4,
      "height": 4.3,
      "axis": "y",
      "connects": [
        "pack",
        "finished"
      ]
    },
    {
      "id": "opening-12",
      "building_id": "machining",
      "x": 114,
      "y": 82.0,
      "width": 3.4,
      "height": 4.3,
      "axis": "y",
      "connects": [
        "pack",
        "finished"
      ],
      "zone_id": "pack"
    },
    {
      "id": "opening-13",
      "building_id": "store",
      "x": 114,
      "y": 35.0,
      "width": 3.4,
      "height": 4.3,
      "axis": "y",
      "connects": [
        "pack",
        "finished"
      ]
    },
    {
      "id": "opening-14",
      "building_id": "store",
      "x": 114,
      "y": 35.0,
      "width": 3.4,
      "height": 4.3,
      "axis": "y",
      "connects": [
        "pack",
        "finished"
      ],
      "zone_id": "finished"
    },
    {
      "id": "opening-15",
      "building_id": "support",
      "x": 40.0,
      "y": 18,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "정문",
        "staff"
      ]
    },
    {
      "id": "opening-16",
      "building_id": "support",
      "x": 40.0,
      "y": 18,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "정문",
        "staff"
      ],
      "zone_id": "staff"
    },
    {
      "id": "routing-r1-017",
      "building_id": "foundry",
      "x": 14,
      "y": 82.0,
      "width": 3.2,
      "height": 3.5,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S01:0",
        "S02:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-018",
      "building_id": "foundry",
      "x": 14,
      "y": 82.0,
      "width": 3.2,
      "height": 3.5,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S01:0",
        "S02:2"
      ],
      "kind": "material_door",
      "zone_id": "melt"
    },
    {
      "id": "routing-r1-019",
      "building_id": "foundry",
      "x": 14,
      "y": 68.0,
      "width": 3.2,
      "height": 3.5,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S01:0",
        "S02:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-020",
      "building_id": "foundry",
      "x": 14,
      "y": 68.0,
      "width": 3.2,
      "height": 3.5,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S01:0",
        "S02:2"
      ],
      "kind": "material_door",
      "zone_id": "cast-cells"
    },
    {
      "id": "routing-r1-021",
      "building_id": "machining",
      "x": 90.0,
      "y": 84,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S04:1",
        "S05:11"
      ],
      "kind": "material_door",
      "zone_id": "cnc"
    },
    {
      "id": "routing-r1-022",
      "building_id": "machining",
      "x": 90.0,
      "y": 84,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S04:1",
        "S05:11"
      ],
      "kind": "material_door",
      "zone_id": "blast"
    },
    {
      "id": "routing-r1-023",
      "building_id": "machining",
      "x": 106.0,
      "y": 62,
      "width": 1.15,
      "height": 1.6,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:1",
        "S07:1"
      ],
      "kind": "process_transfer",
      "zone_id": "wash"
    },
    {
      "id": "routing-r1-024",
      "building_id": "machining",
      "x": 106.0,
      "y": 62,
      "width": 1.15,
      "height": 1.6,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:1",
        "S07:1"
      ],
      "kind": "process_transfer",
      "zone_id": "inspect"
    },
    {
      "id": "routing-r1-025",
      "building_id": "machining",
      "x": 109.0,
      "y": 75,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S07:3",
        "S08:0"
      ],
      "kind": "material_door",
      "zone_id": "inspect"
    }
  ],
  "density": {
    "intent": "설비 바닥면적 883㎡ 대비 생산·포장 3760㎡로 23.5%를 확보한다. 주조 고열 간격, 금형 교환, CNC 정비 통로를 포함한 제조 면적이며 창고·지원 기능도 해당 생산능력에 맞춰 축소했다.",
    "production_area_m2": 3760,
    "storage_area_m2": 1056,
    "support_area_m2": 1152,
    "circulation_area_m2": 0
  },
  "authoring_note": "개별 배치안. 형상·동작·피난·법정 안전설계 검수 및 시각 검수는 별도 수행해야 하며 공개 릴리스 승인 아님.",
  "routing_design_note": "용해→주조 전용 보온차, 주조 4셀→트리머 4셀 직접 인계, 세척→검사→포장 연결을 추가했다.",
  "robot_workcell_revision": 1
}
