{
  "factory_id": "A08",
  "design_revision": 2,
  "design_story": "모아는 고정자와 회전자를 다른 물류 갈래에서 만들고 동쪽 베어링 조립에서 합치는 구동모터 공장이다. 남쪽 고정자동에서는 구리 도체 성형부터 레이저 접합까지 같은 방향으로 이동하고 북쪽 끝의 함침 셀만 별도 배기를 갖춘다. 회전자 밸런싱동은 진동 전달을 줄인 낮은 콘크리트 매스로 고정자동과 떨어진다. 두 부품 흐름을 받은 합류동 끝에 절연·회전 시험 셀 네 개를 두어 전기 시험과 부품 공급이 엇갈리지 않는다. 구리 코일·강판·완제품 모터는 중량과 오염 조건에 맞춰 다른 랙을 쓰며 고객별 시험 치구는 시험동 벽 가까이에 보관한다.",
  "site": {
    "width": 112,
    "depth": 108
  },
  "buildings": [
    {
      "id": "stator",
      "name": "헤어핀 성형·삽입·레이저 접합동",
      "role": "production",
      "polygon": [
        [
          14,
          42
        ],
        [
          51.5,
          42
        ],
        [
          51.5,
          66.2
        ],
        [
          14,
          66.2
        ]
      ],
      "height": 6.2,
      "roof": {
        "type": "sawtooth",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.6,
          0.7,
          0.71
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "varnish",
      "name": "함침·경화·고정자 검사동",
      "role": "production",
      "polygon": [
        [
          14,
          71.2
        ],
        [
          43.0,
          71.2
        ],
        [
          43.0,
          80.2
        ],
        [
          14,
          80.2
        ]
      ],
      "height": 7.5,
      "roof": {
        "type": "shed",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.42,
          0.52,
          0.55
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "rotor",
      "name": "회전자·밸런싱 별동",
      "role": "production",
      "polygon": [
        [
          57.5,
          42
        ],
        [
          74.5,
          42
        ],
        [
          74.5,
          57.6
        ],
        [
          57.5,
          57.6
        ]
      ],
      "height": 6.2,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.67,
          0.68,
          0.66
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "concrete",
        "window_band_height": 0.85
      }
    },
    {
      "id": "merge",
      "name": "베어링 합류·전기시험·포장동",
      "role": "production",
      "polygon": [
        [
          57.5,
          62.6
        ],
        [
          95.0,
          62.6
        ],
        [
          95.0,
          93.4
        ],
        [
          57.5,
          93.4
        ]
      ],
      "height": 8,
      "roof": {
        "type": "gable",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.67,
          0.75,
          0.73
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "motor-parts",
      "name": "구리·강판·모터 전용대 창고",
      "role": "warehouse",
      "polygon": [
        [
          14,
          14
        ],
        [
          54,
          14
        ],
        [
          54,
          36
        ],
        [
          14,
          36
        ]
      ],
      "height": 7.5,
      "roof": {
        "type": "gable",
        "axis": "y",
        "pitch": 0.15
      },
      "facade": {
        "color": [
          0.59,
          0.65,
          0.64
        ],
        "accent": [
          0.17,
          0.32,
          0.34
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "support",
      "name": "전기·치수·정비 지원동",
      "role": "support",
      "polygon": [
        [
          60,
          14
        ],
        [
          100.0,
          14
        ],
        [
          100.0,
          36.0
        ],
        [
          60,
          36.0
        ]
      ],
      "height": 5.5,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.1
      },
      "facade": {
        "color": [
          0.65,
          0.45,
          0.34
        ],
        "accent": [
          0.2,
          0.28,
          0.3
        ],
        "material": "brick",
        "window_band_height": 0.85
      }
    }
  ],
  "zones": [
    {
      "id": "stator",
      "name": "헤어핀 성형·삽입·레이저 접합동",
      "role": "process",
      "building_id": "stator",
      "x": 14,
      "y": 42,
      "width": 37.5,
      "depth": 24.2,
      "stage_ids": [
        "S01",
        "S02",
        "S03"
      ],
      "fixtures": [
        {
          "id": "stator-cabinet-01",
          "type": "cabinet",
          "x": 15.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 1"
        },
        {
          "id": "stator-cabinet-02",
          "type": "cabinet",
          "x": 17.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 2"
        },
        {
          "id": "stator-cabinet-03",
          "type": "cabinet",
          "x": 19.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 3"
        },
        {
          "id": "stator-cabinet-04",
          "type": "cabinet",
          "x": 21.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 4"
        },
        {
          "id": "stator-cabinet-05",
          "type": "cabinet",
          "x": 23.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 5"
        },
        {
          "id": "stator-cabinet-06",
          "type": "cabinet",
          "x": 25.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 6"
        },
        {
          "id": "stator-cabinet-07",
          "type": "cabinet",
          "x": 27.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 7"
        },
        {
          "id": "stator-cabinet-08",
          "type": "cabinet",
          "x": 29.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "도체·절연지·레이저 치구 8"
        },
        {
          "id": "stator-workbench-01",
          "type": "workbench",
          "x": 33.7,
          "y": 43.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "접합 표본 준비 1"
        },
        {
          "id": "stator-workbench-02",
          "type": "workbench",
          "x": 36.3,
          "y": 43.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "접합 표본 준비 2"
        },
        {
          "id": "stator-workbench-03",
          "type": "workbench",
          "x": 38.9,
          "y": 43.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "접합 표본 준비 3"
        },
        {
          "id": "stator-worktable-01",
          "type": "worktable",
          "x": 21.375,
          "y": 62.425,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "헤어핀 용접 표본·치구 준비 1"
        },
        {
          "id": "stator-worktable-02",
          "type": "worktable",
          "x": 21.375,
          "y": 60.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "헤어핀 용접 표본·치구 준비 2"
        },
        {
          "id": "stator-worktable-03",
          "type": "worktable",
          "x": 37.775,
          "y": 58.525,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "헤어핀 용접 표본·치구 준비 3"
        },
        {
          "id": "stator-worktable-04",
          "type": "worktable",
          "x": 31.625,
          "y": 58.525,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "헤어핀 용접 표본·치구 준비 4"
        },
        {
          "id": "robot-0-0-supply-jig",
          "type": "workbench",
          "x": 18.0,
          "y": 47.85,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "헤어핀 공급 SCARA S01:0 전용 방향·품번 정렬 치구"
        },
        {
          "id": "robot-0-1-supply-jig",
          "type": "workbench",
          "x": 31.0,
          "y": 47.85,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "헤어핀 공급 SCARA S01:2 전용 방향·품번 정렬 치구"
        },
        {
          "id": "robot-0-2-supply-jig",
          "type": "workbench",
          "x": 18.0,
          "y": 54.05,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "헤어핀 공급 SCARA S01:3 전용 방향·품번 정렬 치구"
        },
        {
          "id": "robot-0-3-supply-jig",
          "type": "workbench",
          "x": 31.0,
          "y": 54.05,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "헤어핀 공급 SCARA S01:5 전용 방향·품번 정렬 치구"
        }
      ]
    },
    {
      "id": "varnish",
      "name": "함침·경화·고정자 검사동",
      "role": "process",
      "building_id": "varnish",
      "x": 14,
      "y": 71.2,
      "width": 29.0,
      "depth": 9.0,
      "stage_ids": [
        "S04"
      ],
      "fixtures": [
        {
          "id": "varnish-pipe_rack-01",
          "type": "pipe_rack",
          "x": 16.6,
          "y": 72.3,
          "width": 4,
          "depth": 1,
          "height": 4,
          "count": 1,
          "label": "함침 진공·배기 배관 1"
        },
        {
          "id": "varnish-pipe_rack-02",
          "type": "pipe_rack",
          "x": 21.4,
          "y": 72.3,
          "width": 4,
          "depth": 1,
          "height": 4,
          "count": 1,
          "label": "함침 진공·배기 배관 2"
        },
        {
          "id": "varnish-worktable-01",
          "type": "worktable",
          "x": 25.0,
          "y": 72.15,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "수지 점도·시편 1"
        },
        {
          "id": "varnish-worktable-02",
          "type": "worktable",
          "x": 27.4,
          "y": 72.15,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "수지 점도·시편 2"
        }
      ]
    },
    {
      "id": "rotor",
      "name": "회전자·밸런싱 별동",
      "role": "process",
      "building_id": "rotor",
      "x": 57.5,
      "y": 42,
      "width": 17.0,
      "depth": 15.6,
      "stage_ids": [
        "S05"
      ],
      "fixtures": [
        {
          "id": "rotor-bin_rack-01",
          "type": "bin_rack",
          "x": 59.0,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "자석·회전자 치구 1"
        },
        {
          "id": "rotor-bin_rack-02",
          "type": "bin_rack",
          "x": 61.45,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "자석·회전자 치구 2"
        },
        {
          "id": "rotor-bin_rack-03",
          "type": "bin_rack",
          "x": 63.9,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "자석·회전자 치구 3"
        },
        {
          "id": "rotor-bin_rack-04",
          "type": "bin_rack",
          "x": 66.35,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "자석·회전자 치구 4"
        },
        {
          "id": "rotor-bin_rack-05",
          "type": "bin_rack",
          "x": 68.8,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "자석·회전자 치구 5"
        },
        {
          "id": "rotor-lab_bench-01",
          "type": "lab_bench",
          "x": 72.0,
          "y": 43.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "밸런싱 기준축 1"
        },
        {
          "id": "rotor-lab_bench-02",
          "type": "lab_bench",
          "x": 59.0,
          "y": 49.3,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "밸런싱 기준축 2"
        }
      ]
    },
    {
      "id": "merge",
      "name": "베어링 합류·전기시험·포장동",
      "role": "process",
      "building_id": "merge",
      "x": 57.5,
      "y": 62.6,
      "width": 37.5,
      "depth": 30.8,
      "stage_ids": [
        "S06",
        "S07",
        "S08"
      ],
      "fixtures": [
        {
          "id": "merge-cabinet-01",
          "type": "cabinet",
          "x": 58.7,
          "y": 63.5,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "절연·진동 시험 어댑터 1"
        },
        {
          "id": "merge-cabinet-02",
          "type": "cabinet",
          "x": 60.7,
          "y": 63.5,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "절연·진동 시험 어댑터 2"
        },
        {
          "id": "merge-cabinet-03",
          "type": "cabinet",
          "x": 62.7,
          "y": 63.5,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "절연·진동 시험 어댑터 3"
        },
        {
          "id": "merge-cabinet-04",
          "type": "cabinet",
          "x": 64.7,
          "y": 63.5,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "절연·진동 시험 어댑터 4"
        },
        {
          "id": "merge-cabinet-05",
          "type": "cabinet",
          "x": 66.7,
          "y": 63.5,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "절연·진동 시험 어댑터 5"
        },
        {
          "id": "merge-cabinet-06",
          "type": "cabinet",
          "x": 68.7,
          "y": 63.5,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "절연·진동 시험 어댑터 6"
        },
        {
          "id": "merge-dock_staging-01",
          "type": "dock_staging",
          "x": 78.7,
          "y": 63.9,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "완제품 모터 운반대 1"
        },
        {
          "id": "merge-dock_staging-02",
          "type": "dock_staging",
          "x": 81.5,
          "y": 63.9,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "완제품 모터 운반대 2"
        },
        {
          "id": "merge-dock_staging-03",
          "type": "dock_staging",
          "x": 84.3,
          "y": 63.9,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "완제품 모터 운반대 3"
        },
        {
          "id": "merge-dock_staging-04",
          "type": "dock_staging",
          "x": 87.1,
          "y": 63.9,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "완제품 모터 운반대 4"
        },
        {
          "id": "merge-product_bins-01",
          "type": "product_bins",
          "x": 75.125,
          "y": 63.525,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "베어링·하우징 청정 키트 1"
        },
        {
          "id": "merge-product_bins-02",
          "type": "product_bins",
          "x": 73.075,
          "y": 63.525,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "베어링·하우징 청정 키트 2"
        },
        {
          "id": "merge-product_bins-03",
          "type": "product_bins",
          "x": 75.125,
          "y": 69.375,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "베어링·하우징 청정 키트 3"
        },
        {
          "id": "merge-product_bins-04",
          "type": "product_bins",
          "x": 75.125,
          "y": 75.225,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "베어링·하우징 청정 키트 4"
        },
        {
          "id": "merge-product_bins-05",
          "type": "product_bins",
          "x": 60.775,
          "y": 69.375,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "베어링·하우징 청정 키트 5"
        },
        {
          "id": "robot-2-0-handover",
          "type": "workbench",
          "x": 65.7,
          "y": 68.25,
          "width": 1.2,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "회전자·하우징 조립 전 정렬대 S06:1"
        },
        {
          "id": "robot-2-1-handover",
          "type": "workbench",
          "x": 65.7,
          "y": 74.45,
          "width": 1.2,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "회전자·하우징 조립 전 정렬대 S06:4"
        }
      ]
    },
    {
      "id": "motor-parts",
      "name": "구리·강판·모터 전용대 창고",
      "role": "warehouse",
      "building_id": "motor-parts",
      "x": 14,
      "y": 14,
      "width": 40,
      "depth": 22,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "motor-parts-pallet_rack-01",
          "type": "pallet_rack",
          "x": 15.85,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 1"
        },
        {
          "id": "motor-parts-pallet_rack-02",
          "type": "pallet_rack",
          "x": 19.0,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 2"
        },
        {
          "id": "motor-parts-pallet_rack-03",
          "type": "pallet_rack",
          "x": 22.15,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 3"
        },
        {
          "id": "motor-parts-pallet_rack-04",
          "type": "pallet_rack",
          "x": 25.3,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 4"
        },
        {
          "id": "motor-parts-pallet_rack-05",
          "type": "pallet_rack",
          "x": 28.45,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 5"
        },
        {
          "id": "motor-parts-pallet_rack-06",
          "type": "pallet_rack",
          "x": 31.6,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 6"
        },
        {
          "id": "motor-parts-pallet_rack-07",
          "type": "pallet_rack",
          "x": 34.75,
          "y": 21.0,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 7"
        },
        {
          "id": "motor-parts-pallet_rack-08",
          "type": "pallet_rack",
          "x": 37.9,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 8"
        },
        {
          "id": "motor-parts-pallet_rack-09",
          "type": "pallet_rack",
          "x": 41.05,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 9"
        },
        {
          "id": "motor-parts-pallet_rack-10",
          "type": "pallet_rack",
          "x": 44.2,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 10"
        },
        {
          "id": "motor-parts-pallet_rack-11",
          "type": "pallet_rack",
          "x": 47.35,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 11"
        },
        {
          "id": "motor-parts-pallet_rack-12",
          "type": "pallet_rack",
          "x": 50.5,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 12"
        },
        {
          "id": "motor-parts-pallet_rack-13",
          "type": "pallet_rack",
          "x": 15.85,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 13"
        },
        {
          "id": "motor-parts-pallet_rack-14",
          "type": "pallet_rack",
          "x": 19.0,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 14"
        },
        {
          "id": "motor-parts-pallet_rack-15",
          "type": "pallet_rack",
          "x": 22.15,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 15"
        },
        {
          "id": "motor-parts-pallet_rack-16",
          "type": "pallet_rack",
          "x": 25.3,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 16"
        },
        {
          "id": "motor-parts-pallet_rack-17",
          "type": "pallet_rack",
          "x": 28.45,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 17"
        },
        {
          "id": "motor-parts-pallet_rack-18",
          "type": "pallet_rack",
          "x": 31.6,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 18"
        },
        {
          "id": "motor-parts-pallet_rack-19",
          "type": "pallet_rack",
          "x": 37.75,
          "y": 21.0,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 19"
        },
        {
          "id": "motor-parts-pallet_rack-20",
          "type": "pallet_rack",
          "x": 37.9,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 20"
        },
        {
          "id": "motor-parts-pallet_rack-21",
          "type": "pallet_rack",
          "x": 41.05,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 21"
        },
        {
          "id": "motor-parts-pallet_rack-22",
          "type": "pallet_rack",
          "x": 44.2,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "구리·적층 코어 22"
        },
        {
          "id": "motor-parts-floor_pallets-01",
          "type": "floor_pallets",
          "x": 49.2,
          "y": 18.0,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 1"
        },
        {
          "id": "motor-parts-floor_pallets-02",
          "type": "floor_pallets",
          "x": 52.0,
          "y": 18.0,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 2"
        },
        {
          "id": "motor-parts-floor_pallets-03",
          "type": "floor_pallets",
          "x": 15.6,
          "y": 20.7,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 3"
        },
        {
          "id": "motor-parts-floor_pallets-04",
          "type": "floor_pallets",
          "x": 18.4,
          "y": 20.7,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 4"
        },
        {
          "id": "motor-parts-floor_pallets-05",
          "type": "floor_pallets",
          "x": 21.2,
          "y": 20.7,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 5"
        },
        {
          "id": "motor-parts-floor_pallets-06",
          "type": "floor_pallets",
          "x": 24.0,
          "y": 20.7,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 6"
        },
        {
          "id": "motor-parts-floor_pallets-07",
          "type": "floor_pallets",
          "x": 26.8,
          "y": 20.7,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 7"
        },
        {
          "id": "motor-parts-floor_pallets-08",
          "type": "floor_pallets",
          "x": 29.6,
          "y": 20.7,
          "width": 2,
          "depth": 1.4,
          "height": 1.4,
          "count": 1,
          "label": "모터 반환 운반대 8"
        }
      ]
    },
    {
      "id": "a08-office",
      "name": "생산·품질 사무실",
      "role": "office",
      "building_id": "support",
      "x": 60,
      "y": 14,
      "width": 16.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "a08-office-office_desks-01",
          "type": "office_desks",
          "x": 61.85,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 1"
        },
        {
          "id": "a08-office-office_desks-02",
          "type": "office_desks",
          "x": 65.15,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 2"
        },
        {
          "id": "a08-office-office_desks-03",
          "type": "office_desks",
          "x": 68.45,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 3"
        }
      ]
    },
    {
      "id": "a08-staff",
      "name": "교대 탈의·휴게",
      "role": "staff",
      "building_id": "support",
      "x": 76.0,
      "y": 14,
      "width": 12.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "a08-staff-locker_bank-01",
          "type": "locker_bank",
          "x": 77.5,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 1"
        },
        {
          "id": "a08-staff-locker_bank-02",
          "type": "locker_bank",
          "x": 80.1,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 2"
        },
        {
          "id": "a08-staff-locker_bank-03",
          "type": "locker_bank",
          "x": 82.7,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 3"
        },
        {
          "id": "a08-staff-locker_bank-04",
          "type": "locker_bank",
          "x": 85.3,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 4"
        },
        {
          "id": "a08-staff-worktable-01",
          "type": "worktable",
          "x": 77.4,
          "y": 17.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "휴게 테이블 1"
        }
      ]
    },
    {
      "id": "a08-lab",
      "name": "절연·접합 표본실",
      "role": "laboratory",
      "building_id": "support",
      "x": 88.0,
      "y": 14,
      "width": 12.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "a08-lab-lab_bench-01",
          "type": "lab_bench",
          "x": 89.5,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "절연·접합 표본실 1"
        },
        {
          "id": "a08-lab-lab_bench-02",
          "type": "lab_bench",
          "x": 92.1,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "절연·접합 표본실 2"
        },
        {
          "id": "a08-lab-lab_bench-03",
          "type": "lab_bench",
          "x": 94.7,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "절연·접합 표본실 3"
        }
      ]
    },
    {
      "id": "a08-maint",
      "name": "레이저·밸런싱 치구 정비",
      "role": "maintenance",
      "building_id": "support",
      "x": 60,
      "y": 25.0,
      "width": 20.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "a08-maint-workbench-01",
          "type": "workbench",
          "x": 61.6,
          "y": 26.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "레이저·밸런싱 치구 정비 1"
        },
        {
          "id": "a08-maint-workbench-02",
          "type": "workbench",
          "x": 64.4,
          "y": 26.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "레이저·밸런싱 치구 정비 2"
        },
        {
          "id": "a08-maint-workbench-03",
          "type": "workbench",
          "x": 67.2,
          "y": 26.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "레이저·밸런싱 치구 정비 3"
        },
        {
          "id": "a08-maint-bin_rack-01",
          "type": "bin_rack",
          "x": 71.3,
          "y": 26.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 1"
        },
        {
          "id": "a08-maint-bin_rack-02",
          "type": "bin_rack",
          "x": 73.75,
          "y": 26.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 2"
        },
        {
          "id": "a08-maint-bin_rack-03",
          "type": "bin_rack",
          "x": 76.2,
          "y": 26.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 3"
        }
      ]
    },
    {
      "id": "a08-utility",
      "name": "공압·배전·냉각",
      "role": "utility",
      "building_id": "support",
      "x": 80.0,
      "y": 25.0,
      "width": 20.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "a08-utility-compressor-01",
          "type": "compressor",
          "x": 81.85,
          "y": 26.35,
          "width": 2.5,
          "depth": 1.5,
          "height": 2,
          "count": 1,
          "label": "공압 공급 1"
        },
        {
          "id": "a08-utility-chiller-01",
          "type": "chiller",
          "x": 85.9,
          "y": 26.5,
          "width": 3,
          "depth": 1.8,
          "height": 2.3,
          "count": 1,
          "label": "공정 냉각 1"
        },
        {
          "id": "a08-utility-electrical_bank-01",
          "type": "electrical_bank",
          "x": 90.55,
          "y": 25.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 1"
        },
        {
          "id": "a08-utility-electrical_bank-02",
          "type": "electrical_bank",
          "x": 92.85,
          "y": 25.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 2"
        },
        {
          "id": "a08-utility-electrical_bank-03",
          "type": "electrical_bank",
          "x": 95.15,
          "y": 25.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 3"
        }
      ]
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 18.0,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 24.5,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 2,
      "x": 31.0,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 3,
      "x": 18.0,
      "y": 51.7,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 4,
      "x": 24.5,
      "y": 51.7,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 5,
      "x": 31.0,
      "y": 51.7,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 41.0,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 47.5,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 2,
      "x": 41.0,
      "y": 52.45,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 3,
      "x": 47.5,
      "y": 52.45,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 18.0,
      "y": 62.2,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 24.5,
      "y": 62.2,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 2,
      "x": 31.0,
      "y": 62.2,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 3,
      "x": 37.5,
      "y": 62.2,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 19.5,
      "y": 75.7,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 28.5,
      "y": 75.7,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 2,
      "x": 37.5,
      "y": 75.7,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 62.0,
      "y": 46.0,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 70.0,
      "y": 46.0,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 2,
      "x": 62.0,
      "y": 53.6,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 3,
      "x": 70.0,
      "y": 53.6,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 61.5,
      "y": 66.1,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 68.0,
      "y": 66.1,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 2,
      "x": 74.5,
      "y": 66.1,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 3,
      "x": 61.5,
      "y": 72.3,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 4,
      "x": 68.0,
      "y": 72.3,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 5,
      "x": 74.5,
      "y": 72.3,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 62.5,
      "y": 81.8,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 71.5,
      "y": 81.8,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 2,
      "x": 62.5,
      "y": 89.4,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 3,
      "x": 71.5,
      "y": 89.4,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 83.0,
      "y": 81.3,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 90.5,
      "y": 81.3,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S01",
      "x": 18.6,
      "y": 47.550000000000004,
      "angle": 2.908412852942981,
      "task_station": "헤어핀 공급 SCARA S01:0 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.8m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        18.2,
        47.645,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S01",
        "index": 0
      },
      "task_fixture_id": "robot-0-0-supply-jig",
      "controller_offset": [
        1.2528990431891145,
        -0.2985699040020682,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 0,
      "instance_index": 1,
      "stage_id": "S01",
      "x": 31.6,
      "y": 47.550000000000004,
      "angle": 2.908412852942981,
      "task_station": "헤어핀 공급 SCARA S01:2 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.8m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        31.2,
        47.645,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S01",
        "index": 2
      },
      "task_fixture_id": "robot-0-1-supply-jig",
      "controller_offset": [
        1.2528990431891145,
        -0.2985699040020682,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 0,
      "instance_index": 2,
      "stage_id": "S01",
      "x": 18.6,
      "y": 53.75,
      "angle": 2.908412852942981,
      "task_station": "헤어핀 공급 SCARA S01:3 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.8m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        18.2,
        53.845,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S01",
        "index": 3
      },
      "task_fixture_id": "robot-0-2-supply-jig",
      "controller_offset": [
        1.2528990431891145,
        -0.2985699040020682,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 0,
      "instance_index": 3,
      "stage_id": "S01",
      "x": 31.6,
      "y": 53.75,
      "angle": 2.908412852942981,
      "task_station": "헤어핀 공급 SCARA S01:5 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.8m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        31.2,
        53.845,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S01",
        "index": 5
      },
      "task_fixture_id": "robot-0-3-supply-jig",
      "controller_offset": [
        1.2528990431891145,
        -0.2985699040020682,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S03",
      "x": 18.0,
      "y": 65.45,
      "angle": -1.5707963267948966,
      "task_station": "끝단 성형·레이저 접합 1호의 북측 작업면. 고정자를 접합·함침 지그 사이 이송한다."
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S03",
      "x": 24.5,
      "y": 65.45,
      "angle": -1.5707963267948966,
      "task_station": "끝단 성형·레이저 접합 2호의 북측 작업면. 고정자를 접합·함침 지그 사이 이송한다."
    },
    {
      "definition_index": 1,
      "instance_index": 2,
      "stage_id": "S03",
      "x": 31.0,
      "y": 65.45,
      "angle": -1.5707963267948966,
      "task_station": "끝단 성형·레이저 접합 3호의 북측 작업면. 고정자를 접합·함침 지그 사이 이송한다."
    },
    {
      "definition_index": 1,
      "instance_index": 3,
      "stage_id": "S03",
      "x": 37.5,
      "y": 65.45,
      "angle": -1.5707963267948966,
      "task_station": "끝단 성형·레이저 접합 4호의 북측 작업면. 고정자를 접합·함침 지그 사이 이송한다."
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S06",
      "x": 65.7,
      "y": 66.1,
      "angle": 0,
      "task_station": "하우징·베어링 합류 조립 #2: 프레임과 공정 헤드 외측의 실제 입력 컨베이어 ↔ 회전자·하우징 조립 전 정렬대 S06:1. 지지기둥은 설비·기물·수송 폭 바깥이며 형상별 전용 툴로 수직 접근 후 높은 위치에서 이송한다. 원기계와 로봇 전체 동작 간섭은 별도 검수한다.",
      "host_equipment": {
        "stage_id": "S06",
        "index": 1
      },
      "gantry_span": [
        4.0,
        5.08,
        5.2
      ],
      "task_point": [
        65.7,
        66.1,
        1.2225
      ],
      "task_points": [
        [
          65.9,
          68.09,
          1.35
        ],
        [
          65.7,
          66.1,
          1.2225
        ]
      ],
      "task_fixture_id": "robot-2-0-handover",
      "controller_offset": [
        1.3,
        2.49,
        0
      ],
      "target_basis": "프레임과 공정 헤드 외측의 실제 입력 컨베이어"
    },
    {
      "definition_index": 2,
      "instance_index": 1,
      "stage_id": "S06",
      "x": 65.7,
      "y": 72.3,
      "angle": 0,
      "task_station": "하우징·베어링 합류 조립 #5: 프레임과 공정 헤드 외측의 실제 입력 컨베이어 ↔ 회전자·하우징 조립 전 정렬대 S06:4. 지지기둥은 설비·기물·수송 폭 바깥이며 형상별 전용 툴로 수직 접근 후 높은 위치에서 이송한다. 원기계와 로봇 전체 동작 간섭은 별도 검수한다.",
      "host_equipment": {
        "stage_id": "S06",
        "index": 4
      },
      "gantry_span": [
        2.8,
        5.08,
        5.2
      ],
      "task_point": [
        65.7,
        72.3,
        1.2225
      ],
      "task_points": [
        [
          65.9,
          74.29,
          1.35
        ],
        [
          65.7,
          72.3,
          1.2225
        ]
      ],
      "task_fixture_id": "robot-2-1-handover",
      "controller_offset": [
        0.7,
        -2.49,
        0
      ],
      "target_basis": "프레임과 공정 헤드 외측의 실제 입력 컨베이어"
    }
  ],
  "logistics": [
    {
      "id": "S01→S02",
      "kind": "amr",
      "from": "S01:2",
      "to": "S02:0",
      "points": [
        [
          33.82,
          45.75,
          0.1
        ],
        [
          38.18,
          45.75,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S02→S03",
      "kind": "amr",
      "from": "S02:2",
      "to": "S03:3",
      "points": [
        [
          41.0,
          55.02,
          0.1
        ],
        [
          41.0,
          62.2,
          0.1
        ],
        [
          40.32,
          62.2,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S03→S04",
      "kind": "amr",
      "from": "S03:3",
      "to": "S04:2",
      "points": [
        [
          37.5,
          65.02,
          0.1
        ],
        [
          37.5,
          72.88,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S04→S06",
      "kind": "amr",
      "from": "S04:2",
      "to": "S06:3",
      "points": [
        [
          37.5,
          72.88,
          0.1
        ],
        [
          37.5,
          72.3,
          0.1
        ],
        [
          58.68,
          72.3,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S06→S07",
      "kind": "amr",
      "from": "S06:3",
      "to": "S07:0",
      "points": [
        [
          61.5,
          74.62,
          0.1
        ],
        [
          61.5,
          78.98,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S07→S08",
      "kind": "amr",
      "from": "S07:1",
      "to": "S08:0",
      "points": [
        [
          75.32,
          81.3,
          0.1
        ],
        [
          79.68,
          81.3,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S05→S06",
      "kind": "amr",
      "from": "S05:2",
      "to": "S06:0",
      "points": [
        [
          58.68,
          53.6,
          0.1
        ],
        [
          56.53,
          53.6,
          0.1
        ],
        [
          56.53,
          66.1,
          0.1
        ],
        [
          58.68,
          66.1,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "원료 도크→입고 인계 1",
      "kind": "amr",
      "width": 1.4,
      "from": "raw-dock",
      "to": "motor-parts",
      "points": [
        [
          34.0,
          14,
          0.1
        ],
        [
          34.0,
          18.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "입고 인계→초공정 1",
      "kind": "amr",
      "width": 1.4,
      "from": "motor-parts",
      "to": "S01:2",
      "points": [
        [
          34.0,
          18.0,
          0.1
        ],
        [
          34.0,
          17.48,
          0.1
        ],
        [
          46.37,
          17.48,
          0.1
        ],
        [
          46.37,
          41.03,
          0.1
        ],
        [
          31.0,
          41.03,
          0.1
        ],
        [
          31.0,
          43.18,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "최종검사→완제품 출하 2",
      "kind": "amr",
      "width": 1.4,
      "from": "S08:0",
      "to": "shipping-dock",
      "points": [
        [
          79.68,
          81.3,
          0.1
        ],
        [
          76.25,
          81.3,
          0.1
        ],
        [
          76.25,
          93.4,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "정문→교대 탈의·휴게",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "gate",
      "to": "a08-staff",
      "points": [
        [
          56.0,
          7,
          0.1
        ],
        [
          56.0,
          19.5,
          0.1
        ],
        [
          82.0,
          19.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 a08-staff→a08-office",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "a08-staff",
      "to": "a08-office",
      "points": [
        [
          82.0,
          19.5,
          0.1
        ],
        [
          68.0,
          19.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 a08-staff→a08-lab",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "a08-staff",
      "to": "a08-lab",
      "points": [
        [
          82.0,
          19.5,
          0.1
        ],
        [
          94.0,
          19.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 a08-staff→a08-maint",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "a08-staff",
      "to": "a08-maint",
      "points": [
        [
          82.0,
          19.5,
          0.1
        ],
        [
          77.92,
          19.5,
          0.1
        ],
        [
          77.92,
          30.5,
          0.1
        ],
        [
          70.0,
          30.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 a08-staff→a08-utility",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "a08-staff",
      "to": "a08-utility",
      "points": [
        [
          82.0,
          19.5,
          0.1
        ],
        [
          88.98,
          19.5,
          0.1
        ],
        [
          88.98,
          30.5,
          0.1
        ],
        [
          90.0,
          30.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    }
  ],
  "yard": {
    "roads": [
      {
        "points": [
          [
            7,
            7
          ],
          [
            105,
            7
          ],
          [
            105,
            101
          ],
          [
            7,
            101
          ],
          [
            7,
            7
          ]
        ],
        "width": 6
      }
    ],
    "docks": [
      {
        "x": 34.0,
        "y": 14,
        "angle": 0,
        "building_id": "motor-parts",
        "role": "원료·구매부품 입고 도크 — 구리·강판·모터 전용대 창고 도크"
      },
      {
        "building_id": "merge",
        "role": "완제품 전용 출하 도크",
        "x": 76.25,
        "y": 93.4,
        "angle": 3.141592653589793
      }
    ],
    "parking": [
      {
        "x": 15,
        "y": 99.4,
        "angle": 0,
        "count": 20
      }
    ],
    "gate": {
      "x": 56.0,
      "y": 7
    },
    "fence": true
  },
  "landmarks": [
    "길게 이어지는 고정자 톱니 지붕",
    "진공 배관 랙이 붙은 별도 함침동",
    "낮은 콘크리트 회전자 밸런싱동",
    "고정자·회전자 흐름이 만나는 동측 시험동"
  ],
  "openings": [
    {
      "id": "opening-1",
      "building_id": "stator",
      "x": 51.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ]
    },
    {
      "id": "opening-2",
      "building_id": "stator",
      "x": 51.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ],
      "zone_id": "stator"
    },
    {
      "id": "opening-3",
      "building_id": "varnish",
      "x": 14,
      "y": 72.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ]
    },
    {
      "id": "opening-4",
      "building_id": "varnish",
      "x": 14,
      "y": 72.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ],
      "zone_id": "varnish"
    },
    {
      "id": "opening-5",
      "building_id": "varnish",
      "x": 43.0,
      "y": 72.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S06"
      ]
    },
    {
      "id": "opening-6",
      "building_id": "varnish",
      "x": 43.0,
      "y": 72.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S06"
      ],
      "zone_id": "varnish"
    },
    {
      "id": "opening-7",
      "building_id": "stator",
      "x": 45.0,
      "y": 66.2,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "S04",
        "S06"
      ]
    },
    {
      "id": "opening-8",
      "building_id": "stator",
      "x": 45.0,
      "y": 66.2,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "S04",
        "S06"
      ],
      "zone_id": "stator"
    },
    {
      "id": "opening-9",
      "building_id": "stator",
      "x": 51.5,
      "y": 59.6,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S06"
      ]
    },
    {
      "id": "opening-10",
      "building_id": "stator",
      "x": 51.5,
      "y": 59.6,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S06"
      ],
      "zone_id": "stator"
    },
    {
      "id": "opening-11",
      "building_id": "merge",
      "x": 57.5,
      "y": 63.4,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S06"
      ]
    },
    {
      "id": "opening-12",
      "building_id": "merge",
      "x": 57.5,
      "y": 63.4,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S06"
      ],
      "zone_id": "merge"
    },
    {
      "id": "opening-13",
      "building_id": "rotor",
      "x": 74.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S05",
        "S06"
      ]
    },
    {
      "id": "opening-14",
      "building_id": "rotor",
      "x": 74.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S05",
        "S06"
      ],
      "zone_id": "rotor"
    },
    {
      "id": "routing-r1-015",
      "building_id": "stator",
      "x": 37.5,
      "y": 66.2,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S03:3",
        "S04:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-016",
      "building_id": "varnish",
      "x": 37.5,
      "y": 71.2,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S03:3",
        "S04:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-017",
      "building_id": "stator",
      "x": 37.5,
      "y": 66.2,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S03:3",
        "S04:2"
      ],
      "kind": "material_door",
      "zone_id": "stator"
    },
    {
      "id": "routing-r1-018",
      "building_id": "varnish",
      "x": 37.5,
      "y": 71.2,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S03:3",
        "S04:2"
      ],
      "kind": "material_door",
      "zone_id": "varnish"
    },
    {
      "id": "routing-r1-019",
      "building_id": "varnish",
      "x": 43.0,
      "y": 72.3,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S04:2",
        "S06:3"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-020",
      "building_id": "merge",
      "x": 57.5,
      "y": 72.3,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S04:2",
        "S06:3"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-021",
      "building_id": "varnish",
      "x": 43.0,
      "y": 72.3,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S04:2",
        "S06:3"
      ],
      "kind": "material_door",
      "zone_id": "varnish"
    },
    {
      "id": "routing-r1-022",
      "building_id": "merge",
      "x": 57.5,
      "y": 72.3,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S04:2",
        "S06:3"
      ],
      "kind": "material_door",
      "zone_id": "merge"
    },
    {
      "id": "routing-r1-023",
      "building_id": "rotor",
      "x": 57.5,
      "y": 53.6,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S05:2",
        "S06:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-024",
      "building_id": "rotor",
      "x": 57.5,
      "y": 53.6,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S05:2",
        "S06:0"
      ],
      "kind": "material_door",
      "zone_id": "rotor"
    },
    {
      "id": "routing-r1-025",
      "building_id": "merge",
      "x": 57.5,
      "y": 66.1,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S05:2",
        "S06:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-026",
      "building_id": "merge",
      "x": 57.5,
      "y": 66.1,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S05:2",
        "S06:0"
      ],
      "kind": "material_door",
      "zone_id": "merge"
    },
    {
      "id": "routing-r1-027",
      "building_id": "motor-parts",
      "x": 34.0,
      "y": 14,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "raw-dock",
        "motor-parts"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-028",
      "building_id": "motor-parts",
      "x": 46.37,
      "y": 36,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "motor-parts",
        "S01:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-029",
      "building_id": "stator",
      "x": 31.0,
      "y": 42,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "motor-parts",
        "S01:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-030",
      "building_id": "stator",
      "x": 31.0,
      "y": 42,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "motor-parts",
        "S01:2"
      ],
      "kind": "material_door",
      "zone_id": "stator"
    },
    {
      "id": "routing-r1-031",
      "building_id": "merge",
      "x": 76.25,
      "y": 93.4,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:0",
        "shipping-dock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-032",
      "building_id": "merge",
      "x": 76.25,
      "y": 93.4,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:0",
        "shipping-dock"
      ],
      "kind": "material_door",
      "zone_id": "merge"
    },
    {
      "id": "routing-r1-033",
      "building_id": "support",
      "x": 60,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "a08-staff"
      ],
      "kind": "pedestrian_door"
    },
    {
      "id": "routing-r1-034",
      "building_id": "support",
      "x": 76.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "a08-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-office"
    },
    {
      "id": "routing-r1-035",
      "building_id": "support",
      "x": 60,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "a08-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-office"
    },
    {
      "id": "routing-r1-036",
      "building_id": "support",
      "x": 76.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "a08-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-staff"
    },
    {
      "id": "routing-r1-037",
      "building_id": "support",
      "x": 88.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "a08-staff",
        "a08-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-staff"
    },
    {
      "id": "routing-r1-038",
      "building_id": "support",
      "x": 88.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "a08-staff",
        "a08-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-lab"
    },
    {
      "id": "routing-r1-039",
      "building_id": "support",
      "x": 77.92,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "a08-staff",
        "a08-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-staff"
    },
    {
      "id": "routing-r1-040",
      "building_id": "support",
      "x": 77.92,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "a08-staff",
        "a08-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-maint"
    },
    {
      "id": "routing-r1-041",
      "building_id": "support",
      "x": 88.98,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "a08-staff",
        "a08-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-lab"
    },
    {
      "id": "routing-r1-042",
      "building_id": "support",
      "x": 88.98,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "a08-staff",
        "a08-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "a08-utility"
    }
  ],
  "density": {
    "intent": "설비 바닥 542.00㎡ / 제조 구획 2588.70㎡ = 20.94%. 개별 생산 셀의 서비스 간격·공정 인계와 실제 원부자재·정비·검사 시설을 먼저 구성했다. 빈 바닥을 채우기 위한 임의 장식 상자를 사용하지 않는다.",
    "production_area_m2": 2588.7,
    "storage_area_m2": 880,
    "support_area_m2": 880.0,
    "circulation_area_m2": 0
  },
  "authoring_note": "개별 배치안. 형상·동작·피난·법정 안전설계 검수 및 시각 검수는 별도 수행해야 하며 공개 릴리스 승인 아님.",
  "routing_revision": 2
}
