{
  "factory_id": "O02",
  "design_revision": 2,
  "design_story": "해든은 일반 정제 배치를 다루는 소규모 다품종 제조동과 포장동을 분리했다. 서쪽 계량·과립·건조 구역에서 시작한 분말은 밀폐 용기 인계로 정립·혼합·타정 구역으로 넘어간다. 코팅실은 타정과 포장 사이에 두어 배치 혼입을 막고, 최종 블리스터 인쇄·중량 검사 후 창고로 나간다. 공조·집진 서비스는 북쪽으로 모아 작업자 탈의 출입과 겹치지 않도록 한다. 외관은 흰 낮은 제조동, 청색 포장동, 붉은 작은 품질동으로 구분하고 입고 원료와 완제품 도크의 전면을 반대로 두었다. 이 모델은 실제 허가 시설의 인증을 재현하지 않는 합성 설계다.",
  "site": {
    "width": 161,
    "depth": 88
  },
  "buildings": [
    {
      "id": "granule",
      "name": "계량·습식과립·유동층 건조동",
      "role": "production",
      "polygon": [
        [
          14,
          42
        ],
        [
          80.5,
          42
        ],
        [
          80.5,
          49.5
        ],
        [
          14,
          49.5
        ]
      ],
      "height": 7,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.84,
          0.86,
          0.82
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "tablet",
      "name": "정립·혼합·타정·코팅동",
      "role": "production",
      "polygon": [
        [
          86.5,
          42
        ],
        [
          149.0,
          42
        ],
        [
          149.0,
          49.5
        ],
        [
          86.5,
          49.5
        ]
      ],
      "height": 7,
      "roof": {
        "type": "shed",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.76,
          0.8,
          0.75
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "pack",
      "name": "블리스터·표시·케이스 검사동",
      "role": "production",
      "polygon": [
        [
          86.5,
          54.5
        ],
        [
          104.1,
          54.5
        ],
        [
          104.1,
          73.9
        ],
        [
          86.5,
          73.9
        ]
      ],
      "height": 7,
      "roof": {
        "type": "gable",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.57,
          0.69,
          0.76
        ],
        "accent": [
          0.15,
          0.3,
          0.35
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "approved",
      "name": "원료·포장재 승인 대기 창고",
      "role": "warehouse",
      "polygon": [
        [
          14,
          14
        ],
        [
          50,
          14
        ],
        [
          50,
          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": [
        [
          56,
          14
        ],
        [
          96.0,
          14
        ],
        [
          96.0,
          36.0
        ],
        [
          56,
          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
      }
    },
    {
      "id": "dispatch-stock",
      "name": "정제 완제품 출하 창고",
      "role": "warehouse",
      "polygon": [
        [
          102.0,
          14
        ],
        [
          149.0,
          14
        ],
        [
          149.0,
          36
        ],
        [
          102.0,
          36
        ]
      ],
      "height": 7.5,
      "roof": {
        "type": "gable",
        "axis": "y",
        "pitch": 0.15
      },
      "facade": {
        "color": [
          0.62,
          0.67,
          0.64
        ],
        "accent": [
          0.22,
          0.32,
          0.32
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    }
  ],
  "zones": [
    {
      "id": "granule",
      "name": "계량·습식과립·유동층 건조동",
      "role": "process",
      "building_id": "granule",
      "x": 14,
      "y": 42,
      "width": 66.5,
      "depth": 7.5,
      "stage_ids": [
        "S01",
        "S02",
        "S03"
      ],
      "fixtures": [
        {
          "id": "granule-cabinet-01",
          "type": "cabinet",
          "x": 15.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "배치 계량 도구·필터 1"
        },
        {
          "id": "granule-cabinet-02",
          "type": "cabinet",
          "x": 17.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "배치 계량 도구·필터 2"
        },
        {
          "id": "granule-cabinet-03",
          "type": "cabinet",
          "x": 19.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "배치 계량 도구·필터 3"
        },
        {
          "id": "granule-cabinet-04",
          "type": "cabinet",
          "x": 21.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "배치 계량 도구·필터 4"
        },
        {
          "id": "granule-cabinet-05",
          "type": "cabinet",
          "x": 23.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "배치 계량 도구·필터 5"
        },
        {
          "id": "granule-cabinet-06",
          "type": "cabinet",
          "x": 25.2,
          "y": 42.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "배치 계량 도구·필터 6"
        },
        {
          "id": "granule-wash_station-01",
          "type": "wash_station",
          "x": 38.9,
          "y": 43.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.5,
          "count": 1,
          "label": "용기·도구 세척 1"
        },
        {
          "id": "granule-wash_station-02",
          "type": "wash_station",
          "x": 59.7,
          "y": 43.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.5,
          "count": 1,
          "label": "용기·도구 세척 2"
        },
        {
          "id": "granule-worktable-01",
          "type": "worktable",
          "x": 43.925,
          "y": 42.925,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "배치 문서·용기 인계대 1"
        },
        {
          "id": "granule-worktable-02",
          "type": "worktable",
          "x": 50.075,
          "y": 42.925,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "배치 문서·용기 인계대 2"
        },
        {
          "id": "granule-worktable-03",
          "type": "worktable",
          "x": 56.225,
          "y": 42.925,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "배치 문서·용기 인계대 3"
        }
      ]
    },
    {
      "id": "tablet",
      "name": "정립·혼합·타정·코팅동",
      "role": "process",
      "building_id": "tablet",
      "x": 86.5,
      "y": 42,
      "width": 62.5,
      "depth": 7.5,
      "stage_ids": [
        "S04",
        "S05",
        "S06"
      ],
      "fixtures": [
        {
          "id": "tablet-bin_rack-01",
          "type": "bin_rack",
          "x": 88.0,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "정제 금형·IBC 소도구 1"
        },
        {
          "id": "tablet-bin_rack-02",
          "type": "bin_rack",
          "x": 90.45,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "정제 금형·IBC 소도구 2"
        },
        {
          "id": "tablet-bin_rack-03",
          "type": "bin_rack",
          "x": 92.9,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "정제 금형·IBC 소도구 3"
        },
        {
          "id": "tablet-bin_rack-04",
          "type": "bin_rack",
          "x": 95.35,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "정제 금형·IBC 소도구 4"
        },
        {
          "id": "tablet-bin_rack-05",
          "type": "bin_rack",
          "x": 97.8,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "정제 금형·IBC 소도구 5"
        },
        {
          "id": "tablet-bin_rack-06",
          "type": "bin_rack",
          "x": 100.25,
          "y": 43.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "정제 금형·IBC 소도구 6"
        },
        {
          "id": "tablet-worktable-01",
          "type": "worktable",
          "x": 104.7,
          "y": 42.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "정제 공정 표본 1"
        },
        {
          "id": "tablet-worktable-02",
          "type": "worktable",
          "x": 107.1,
          "y": 42.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "정제 공정 표본 2"
        },
        {
          "id": "tablet-worktable-03",
          "type": "worktable",
          "x": 109.5,
          "y": 42.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "정제 공정 표본 3"
        },
        {
          "id": "robot-0-0-handover",
          "type": "workbench",
          "x": 90.5,
          "y": 47.65,
          "width": 1.2,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "밀폐 IBC 도킹 전 고정대 S04:0"
        },
        {
          "id": "robot-0-1-handover",
          "type": "workbench",
          "x": 103.5,
          "y": 47.65,
          "width": 1.2,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "밀폐 IBC 도킹 전 고정대 S04:2"
        }
      ]
    },
    {
      "id": "pack",
      "name": "블리스터·표시·케이스 검사동",
      "role": "process",
      "building_id": "pack",
      "x": 86.5,
      "y": 54.5,
      "width": 17.6,
      "depth": 19.4,
      "stage_ids": [
        "S07",
        "S08"
      ],
      "fixtures": [
        {
          "id": "pack-cabinet-01",
          "type": "cabinet",
          "x": 87.7,
          "y": 55.4,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "표시 자재·인쇄 기준 1"
        },
        {
          "id": "pack-cabinet-02",
          "type": "cabinet",
          "x": 89.7,
          "y": 55.4,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "표시 자재·인쇄 기준 2"
        },
        {
          "id": "pack-cabinet-03",
          "type": "cabinet",
          "x": 91.7,
          "y": 55.4,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "표시 자재·인쇄 기준 3"
        },
        {
          "id": "pack-cabinet-04",
          "type": "cabinet",
          "x": 93.7,
          "y": 55.4,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "표시 자재·인쇄 기준 4"
        },
        {
          "id": "pack-cabinet-05",
          "type": "cabinet",
          "x": 95.7,
          "y": 55.4,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "표시 자재·인쇄 기준 5"
        },
        {
          "id": "pack-cabinet-06",
          "type": "cabinet",
          "x": 97.7,
          "y": 55.4,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "표시 자재·인쇄 기준 6"
        },
        {
          "id": "pack-bin_rack-01",
          "type": "bin_rack",
          "x": 100.25,
          "y": 55.6,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "승인 블리스터·케이스 자재 1"
        },
        {
          "id": "pack-product_bins-01",
          "type": "product_bins",
          "x": 91.825,
          "y": 67.125,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "표시 자재 로트 공급 1"
        },
        {
          "id": "pack-product_bins-02",
          "type": "product_bins",
          "x": 93.875,
          "y": 67.125,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "표시 자재 로트 공급 2"
        },
        {
          "id": "pack-product_bins-03",
          "type": "product_bins",
          "x": 89.775,
          "y": 61.275,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "표시 자재 로트 공급 3"
        },
        {
          "id": "pack-product_bins-04",
          "type": "product_bins",
          "x": 89.775,
          "y": 67.125,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "표시 자재 로트 공급 4"
        },
        {
          "id": "robot-1-0-supply-jig",
          "type": "workbench",
          "x": 92.5,
          "y": 60.35,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "포장 트레이 SCARA S07:0 전용 방향·품번 정렬 치구"
        },
        {
          "id": "robot-1-1-supply-jig",
          "type": "workbench",
          "x": 92.5,
          "y": 72.75,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "포장 트레이 SCARA S07:2 전용 방향·품번 정렬 치구"
        }
      ]
    },
    {
      "id": "approved",
      "name": "원료·포장재 승인 대기 창고",
      "role": "warehouse",
      "building_id": "approved",
      "x": 14,
      "y": 14,
      "width": 36,
      "depth": 22,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "approved-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": "approved-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": "approved-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": "approved-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": "approved-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": "approved-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": "approved-pallet_rack-07",
          "type": "pallet_rack",
          "x": 34.75,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 7"
        },
        {
          "id": "approved-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": "approved-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": "approved-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": "approved-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": "approved-pallet_rack-12",
          "type": "pallet_rack",
          "x": 15.85,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 12"
        },
        {
          "id": "approved-pallet_rack-13",
          "type": "pallet_rack",
          "x": 19.0,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 13"
        },
        {
          "id": "approved-pallet_rack-14",
          "type": "pallet_rack",
          "x": 22.15,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 14"
        },
        {
          "id": "approved-pallet_rack-15",
          "type": "pallet_rack",
          "x": 25.3,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 15"
        },
        {
          "id": "approved-pallet_rack-16",
          "type": "pallet_rack",
          "x": 28.45,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 16"
        },
        {
          "id": "approved-pallet_rack-17",
          "type": "pallet_rack",
          "x": 31.6,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 17"
        },
        {
          "id": "approved-pallet_rack-18",
          "type": "pallet_rack",
          "x": 34.75,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 18"
        },
        {
          "id": "approved-pallet_rack-19",
          "type": "pallet_rack",
          "x": 37.9,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 19"
        },
        {
          "id": "approved-pallet_rack-20",
          "type": "pallet_rack",
          "x": 41.05,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "배치별 승인 원료·포장재 20"
        },
        {
          "id": "approved-cabinet-01",
          "type": "cabinet",
          "x": 15.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "보관 표본·라벨 1"
        },
        {
          "id": "approved-cabinet-02",
          "type": "cabinet",
          "x": 17.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "보관 표본·라벨 2"
        },
        {
          "id": "approved-cabinet-03",
          "type": "cabinet",
          "x": 19.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "보관 표본·라벨 3"
        },
        {
          "id": "approved-cabinet-04",
          "type": "cabinet",
          "x": 21.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "보관 표본·라벨 4"
        },
        {
          "id": "approved-cabinet-05",
          "type": "cabinet",
          "x": 23.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "보관 표본·라벨 5"
        },
        {
          "id": "approved-cabinet-06",
          "type": "cabinet",
          "x": 25.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "보관 표본·라벨 6"
        }
      ]
    },
    {
      "id": "o02-office",
      "name": "생산·품질 사무실",
      "role": "office",
      "building_id": "support",
      "x": 56,
      "y": 14,
      "width": 16.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o02-office-office_desks-01",
          "type": "office_desks",
          "x": 57.85,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 1"
        },
        {
          "id": "o02-office-office_desks-02",
          "type": "office_desks",
          "x": 61.15,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 2"
        },
        {
          "id": "o02-office-office_desks-03",
          "type": "office_desks",
          "x": 64.45,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 3"
        }
      ]
    },
    {
      "id": "o02-staff",
      "name": "교대 탈의·휴게",
      "role": "staff",
      "building_id": "support",
      "x": 72.0,
      "y": 14,
      "width": 12.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o02-staff-locker_bank-01",
          "type": "locker_bank",
          "x": 73.5,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 1"
        },
        {
          "id": "o02-staff-locker_bank-02",
          "type": "locker_bank",
          "x": 76.1,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 2"
        },
        {
          "id": "o02-staff-locker_bank-03",
          "type": "locker_bank",
          "x": 78.7,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 3"
        },
        {
          "id": "o02-staff-locker_bank-04",
          "type": "locker_bank",
          "x": 81.3,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 4"
        },
        {
          "id": "o02-staff-worktable-01",
          "type": "worktable",
          "x": 73.4,
          "y": 17.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "휴게 테이블 1"
        }
      ]
    },
    {
      "id": "o02-lab",
      "name": "원료·정제 품질시험",
      "role": "laboratory",
      "building_id": "support",
      "x": 84.0,
      "y": 14,
      "width": 12.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o02-lab-lab_bench-01",
          "type": "lab_bench",
          "x": 85.5,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "원료·정제 품질시험 1"
        },
        {
          "id": "o02-lab-lab_bench-02",
          "type": "lab_bench",
          "x": 88.1,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "원료·정제 품질시험 2"
        },
        {
          "id": "o02-lab-lab_bench-03",
          "type": "lab_bench",
          "x": 90.7,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "원료·정제 품질시험 3"
        }
      ]
    },
    {
      "id": "o02-maint",
      "name": "타정 금형·밸브 정비",
      "role": "maintenance",
      "building_id": "support",
      "x": 56,
      "y": 25.0,
      "width": 20.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o02-maint-workbench-01",
          "type": "workbench",
          "x": 57.6,
          "y": 26.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "타정 금형·밸브 정비 1"
        },
        {
          "id": "o02-maint-workbench-02",
          "type": "workbench",
          "x": 60.4,
          "y": 26.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "타정 금형·밸브 정비 2"
        },
        {
          "id": "o02-maint-workbench-03",
          "type": "workbench",
          "x": 63.2,
          "y": 26.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "타정 금형·밸브 정비 3"
        },
        {
          "id": "o02-maint-bin_rack-01",
          "type": "bin_rack",
          "x": 67.3,
          "y": 26.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 1"
        },
        {
          "id": "o02-maint-bin_rack-02",
          "type": "bin_rack",
          "x": 69.75,
          "y": 26.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 2"
        },
        {
          "id": "o02-maint-bin_rack-03",
          "type": "bin_rack",
          "x": 72.2,
          "y": 26.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 3"
        }
      ]
    },
    {
      "id": "o02-utility",
      "name": "공조·집진·압축공기",
      "role": "utility",
      "building_id": "support",
      "x": 76.0,
      "y": 25.0,
      "width": 20.0,
      "depth": 11.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o02-utility-compressor-01",
          "type": "compressor",
          "x": 77.85,
          "y": 26.35,
          "width": 2.5,
          "depth": 1.5,
          "height": 2,
          "count": 1,
          "label": "공압 공급 1"
        },
        {
          "id": "o02-utility-chiller-01",
          "type": "chiller",
          "x": 81.9,
          "y": 26.5,
          "width": 3,
          "depth": 1.8,
          "height": 2.3,
          "count": 1,
          "label": "공정 냉각 1"
        },
        {
          "id": "o02-utility-electrical_bank-01",
          "type": "electrical_bank",
          "x": 86.55,
          "y": 25.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 1"
        },
        {
          "id": "o02-utility-electrical_bank-02",
          "type": "electrical_bank",
          "x": 88.85,
          "y": 25.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 2"
        },
        {
          "id": "o02-utility-electrical_bank-03",
          "type": "electrical_bank",
          "x": 91.15,
          "y": 25.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 3"
        }
      ]
    },
    {
      "id": "dispatch-stock",
      "name": "정제 완제품 출하 창고",
      "role": "warehouse",
      "building_id": "dispatch-stock",
      "x": 102.0,
      "y": 14,
      "width": 47.0,
      "depth": 22,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "dispatch-stock-pallet_rack-01",
          "type": "pallet_rack",
          "x": 103.8,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 1"
        },
        {
          "id": "dispatch-stock-pallet_rack-02",
          "type": "pallet_rack",
          "x": 106.85,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 2"
        },
        {
          "id": "dispatch-stock-pallet_rack-03",
          "type": "pallet_rack",
          "x": 109.9,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 3"
        },
        {
          "id": "dispatch-stock-pallet_rack-04",
          "type": "pallet_rack",
          "x": 112.95,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 4"
        },
        {
          "id": "dispatch-stock-pallet_rack-05",
          "type": "pallet_rack",
          "x": 116.0,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 5"
        },
        {
          "id": "dispatch-stock-pallet_rack-06",
          "type": "pallet_rack",
          "x": 119.05,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 6"
        },
        {
          "id": "dispatch-stock-pallet_rack-07",
          "type": "pallet_rack",
          "x": 122.1,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 7"
        },
        {
          "id": "dispatch-stock-pallet_rack-08",
          "type": "pallet_rack",
          "x": 127.7,
          "y": 21.0,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 8"
        },
        {
          "id": "dispatch-stock-pallet_rack-09",
          "type": "pallet_rack",
          "x": 128.2,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 9"
        },
        {
          "id": "dispatch-stock-pallet_rack-10",
          "type": "pallet_rack",
          "x": 131.25,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 10"
        },
        {
          "id": "dispatch-stock-pallet_rack-11",
          "type": "pallet_rack",
          "x": 134.3,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 11"
        },
        {
          "id": "dispatch-stock-pallet_rack-12",
          "type": "pallet_rack",
          "x": 137.35,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 12"
        },
        {
          "id": "dispatch-stock-pallet_rack-13",
          "type": "pallet_rack",
          "x": 140.4,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 13"
        },
        {
          "id": "dispatch-stock-pallet_rack-14",
          "type": "pallet_rack",
          "x": 143.45,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 14"
        },
        {
          "id": "dispatch-stock-pallet_rack-15",
          "type": "pallet_rack",
          "x": 146.5,
          "y": 15.2,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 15"
        },
        {
          "id": "dispatch-stock-pallet_rack-16",
          "type": "pallet_rack",
          "x": 103.8,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 16"
        },
        {
          "id": "dispatch-stock-pallet_rack-17",
          "type": "pallet_rack",
          "x": 106.85,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 17"
        },
        {
          "id": "dispatch-stock-pallet_rack-18",
          "type": "pallet_rack",
          "x": 109.9,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 18"
        },
        {
          "id": "dispatch-stock-pallet_rack-19",
          "type": "pallet_rack",
          "x": 112.95,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 19"
        },
        {
          "id": "dispatch-stock-pallet_rack-20",
          "type": "pallet_rack",
          "x": 116.0,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 20"
        },
        {
          "id": "dispatch-stock-pallet_rack-21",
          "type": "pallet_rack",
          "x": 119.05,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 21"
        },
        {
          "id": "dispatch-stock-pallet_rack-22",
          "type": "pallet_rack",
          "x": 122.1,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 22"
        },
        {
          "id": "dispatch-stock-pallet_rack-23",
          "type": "pallet_rack",
          "x": 125.2,
          "y": 19.5,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 23"
        },
        {
          "id": "dispatch-stock-pallet_rack-24",
          "type": "pallet_rack",
          "x": 128.2,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 24"
        },
        {
          "id": "dispatch-stock-pallet_rack-25",
          "type": "pallet_rack",
          "x": 131.25,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 25"
        },
        {
          "id": "dispatch-stock-pallet_rack-26",
          "type": "pallet_rack",
          "x": 134.3,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 26"
        },
        {
          "id": "dispatch-stock-pallet_rack-27",
          "type": "pallet_rack",
          "x": 137.35,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 27"
        },
        {
          "id": "dispatch-stock-pallet_rack-28",
          "type": "pallet_rack",
          "x": 140.4,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 28"
        },
        {
          "id": "dispatch-stock-pallet_rack-29",
          "type": "pallet_rack",
          "x": 143.45,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 29"
        },
        {
          "id": "dispatch-stock-pallet_rack-30",
          "type": "pallet_rack",
          "x": 146.5,
          "y": 18.9,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 30"
        },
        {
          "id": "dispatch-stock-pallet_rack-31",
          "type": "pallet_rack",
          "x": 103.8,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 31"
        },
        {
          "id": "dispatch-stock-pallet_rack-32",
          "type": "pallet_rack",
          "x": 106.85,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 32"
        },
        {
          "id": "dispatch-stock-pallet_rack-33",
          "type": "pallet_rack",
          "x": 109.9,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 33"
        },
        {
          "id": "dispatch-stock-pallet_rack-34",
          "type": "pallet_rack",
          "x": 112.95,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 34"
        },
        {
          "id": "dispatch-stock-pallet_rack-35",
          "type": "pallet_rack",
          "x": 116.0,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 35"
        },
        {
          "id": "dispatch-stock-pallet_rack-36",
          "type": "pallet_rack",
          "x": 119.05,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 36"
        },
        {
          "id": "dispatch-stock-pallet_rack-37",
          "type": "pallet_rack",
          "x": 122.1,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 37"
        },
        {
          "id": "dispatch-stock-pallet_rack-38",
          "type": "pallet_rack",
          "x": 125.15,
          "y": 22.6,
          "width": 2.4,
          "depth": 1.0,
          "height": 4.5,
          "count": 1,
          "label": "배치별 완제품 케이스 38"
        }
      ]
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 17.5,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 23.0,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 2,
      "x": 28.5,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 3,
      "x": 34.0,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 43.25,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 49.25,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 2,
      "x": 55.25,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 64.75,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 70.75,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 2,
      "x": 76.75,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 90.5,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 97.0,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 2,
      "x": 103.5,
      "y": 45.5,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 112.75,
      "y": 45.25,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 117.75,
      "y": 45.25,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 2,
      "x": 122.75,
      "y": 45.25,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 132.0,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 138.5,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 2,
      "x": 145.0,
      "y": 45.75,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 92.5,
      "y": 58.0,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 92.5,
      "y": 64.2,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 2,
      "x": 92.5,
      "y": 70.4,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 100.1,
      "y": 58.0,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 100.1,
      "y": 64.2,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 2,
      "x": 100.1,
      "y": 70.4,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S04",
      "x": 90.5,
      "y": 45.5,
      "angle": 0,
      "task_station": "정립·최종 혼합 #1: IBC container 상측 클램프 인계 ↔ 밀폐 IBC 도킹 전 고정대 S04:0. 지지기둥은 설비·기물·수송 폭 바깥이며 형상별 전용 툴로 수직 접근 후 높은 위치에서 이송한다. 원기계와 로봇 전체 동작 간섭은 별도 검수한다.",
      "host_equipment": {
        "stage_id": "S04",
        "index": 0
      },
      "gantry_span": [
        2.8,
        6.28,
        5.7
      ],
      "task_point": [
        90.5,
        45.5,
        3.2203500000000003
      ],
      "task_points": [
        [
          90.7,
          47.49,
          1.35
        ],
        [
          90.5,
          45.5,
          3.2203500000000003
        ]
      ],
      "task_fixture_id": "robot-0-0-handover",
      "controller_offset": [
        0.7,
        3.0900000000000003,
        0
      ],
      "target_basis": "IBC container 상측 클램프 인계"
    },
    {
      "definition_index": 0,
      "instance_index": 1,
      "stage_id": "S04",
      "x": 103.5,
      "y": 45.5,
      "angle": 0,
      "task_station": "정립·최종 혼합 #3: IBC container 상측 클램프 인계 ↔ 밀폐 IBC 도킹 전 고정대 S04:2. 지지기둥은 설비·기물·수송 폭 바깥이며 형상별 전용 툴로 수직 접근 후 높은 위치에서 이송한다. 원기계와 로봇 전체 동작 간섭은 별도 검수한다.",
      "host_equipment": {
        "stage_id": "S04",
        "index": 2
      },
      "gantry_span": [
        2.8,
        6.28,
        5.7
      ],
      "task_point": [
        103.5,
        45.5,
        3.2203500000000003
      ],
      "task_points": [
        [
          103.7,
          47.49,
          1.35
        ],
        [
          103.5,
          45.5,
          3.2203500000000003
        ]
      ],
      "task_fixture_id": "robot-0-1-handover",
      "controller_offset": [
        0.7,
        3.0900000000000003,
        0
      ],
      "target_basis": "IBC container 상측 클램프 인계"
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S07",
      "x": 93.1,
      "y": 60.050000000000004,
      "angle": 2.9084128529429747,
      "task_station": "포장 트레이 SCARA S07:0 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.6m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        92.7,
        60.145,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S07",
        "index": 0
      },
      "task_fixture_id": "robot-1-0-supply-jig",
      "controller_offset": [
        1.252899043189106,
        -0.2985699040020628,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S07",
      "x": 93.1,
      "y": 72.45,
      "angle": 2.9084128529429747,
      "task_station": "포장 트레이 SCARA S07:2 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.6m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        92.7,
        72.545,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S07",
        "index": 2
      },
      "task_fixture_id": "robot-1-1-supply-jig",
      "controller_offset": [
        1.252899043189106,
        -0.2985699040020628,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 100.1,
      "y": 72.9,
      "angle": -1.5707963267948966,
      "task_station": "표시·중량·케이스 검사 3호의 북측 작업면. 밀봉 케이스를 로트별 팔레트에 적재한다."
    }
  ],
  "logistics": [
    {
      "id": "S01→S02",
      "kind": "amr",
      "from": "S01:3",
      "to": "S02:0",
      "points": [
        [
          36.32,
          45.75,
          0.1
        ],
        [
          40.68,
          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:0",
      "points": [
        [
          57.82,
          45.75,
          0.1
        ],
        [
          62.18,
          45.75,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S03→S04",
      "kind": "amr",
      "from": "S03:2",
      "to": "S04:0",
      "points": [
        [
          79.32,
          45.5,
          0.1
        ],
        [
          87.68,
          45.5,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S04→S05",
      "kind": "amr",
      "from": "S04:2",
      "to": "S05:0",
      "points": [
        [
          106.32,
          45.25,
          0.1
        ],
        [
          110.68,
          45.25,
          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": [
        [
          124.82,
          45.75,
          0.1
        ],
        [
          129.18,
          45.75,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S06→S07",
      "kind": "amr",
      "from": "S06:0",
      "to": "S07:0",
      "points": [
        [
          132.0,
          48.32,
          0.1
        ],
        [
          132.0,
          60.17,
          0.1
        ],
        [
          96.9728,
          60.17,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S07→S08",
      "kind": "conveyor",
      "from": "S07:0",
      "to": "S08:0",
      "points": [
        [
          92.5,
          58,
          1.1
        ],
        [
          100.1,
          58,
          1.1
        ]
      ],
      "width": 0.5,
      "routing_note": "3개 블리스터 포장열별 완성 팩을 같은 높이의 표시·중량 검사기로 직접 이송하는 짧은 컨베이어. 1.6m 기계 간격을 AMR 주차장으로 사용하지 않는다.",
      "authored_transport": true
    },
    {
      "id": "원료 도크→입고 인계 1",
      "kind": "amr",
      "width": 1.4,
      "from": "raw-dock",
      "to": "approved",
      "points": [
        [
          14,
          25.0,
          0.1
        ],
        [
          18.0,
          25.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "입고 인계→초공정 1",
      "kind": "amr",
      "width": 1.4,
      "from": "approved",
      "to": "S01:0",
      "points": [
        [
          18.0,
          25.0,
          0.1
        ],
        [
          13.03,
          25.0,
          0.1
        ],
        [
          13.03,
          45.5,
          0.1
        ],
        [
          15.18,
          45.5,
          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": "dispatch-stock",
      "points": [
        [
          102.92,
          58.0,
          0.1
        ],
        [
          114.92,
          58.0,
          0.1
        ],
        [
          114.92,
          36.92,
          0.1
        ],
        [
          101.03,
          36.92,
          0.1
        ],
        [
          101.03,
          17.48,
          0.1
        ],
        [
          125.5,
          17.48,
          0.1
        ],
        [
          125.5,
          18.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "출하 대기→완제품 도크 2",
      "kind": "amr",
      "width": 1.4,
      "from": "dispatch-stock",
      "to": "shipping-dock",
      "points": [
        [
          125.5,
          18.0,
          0.1
        ],
        [
          125.5,
          14,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "정문→교대 탈의·휴게",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "gate",
      "to": "o02-staff",
      "points": [
        [
          80.5,
          7,
          0.1
        ],
        [
          83.02,
          7,
          0.1
        ],
        [
          83.02,
          19.5,
          0.1
        ],
        [
          78.0,
          19.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o02-staff→o02-office",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o02-staff",
      "to": "o02-office",
      "points": [
        [
          78.0,
          19.5,
          0.1
        ],
        [
          64.0,
          19.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o02-staff→o02-lab",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o02-staff",
      "to": "o02-lab",
      "points": [
        [
          78.0,
          19.5,
          0.1
        ],
        [
          90.0,
          19.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o02-staff→o02-maint",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o02-staff",
      "to": "o02-maint",
      "points": [
        [
          78.0,
          19.5,
          0.1
        ],
        [
          73.92,
          19.5,
          0.1
        ],
        [
          73.92,
          30.5,
          0.1
        ],
        [
          66.0,
          30.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o02-staff→o02-utility",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o02-staff",
      "to": "o02-utility",
      "points": [
        [
          78.0,
          19.5,
          0.1
        ],
        [
          84.98,
          19.5,
          0.1
        ],
        [
          84.98,
          30.5,
          0.1
        ],
        [
          86.0,
          30.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "블리스터 2열→최종 검사",
      "kind": "conveyor",
      "from": "S07:1",
      "to": "S08:1",
      "points": [
        [
          92.5,
          64.2,
          1.1
        ],
        [
          100.1,
          64.2,
          1.1
        ]
      ],
      "width": 0.5,
      "routing_note": "3개 블리스터 포장열별 완성 팩을 같은 높이의 표시·중량 검사기로 직접 이송하는 짧은 컨베이어. 1.6m 기계 간격을 AMR 주차장으로 사용하지 않는다.",
      "authored_transport": true
    },
    {
      "id": "블리스터 3열→최종 검사",
      "kind": "conveyor",
      "from": "S07:2",
      "to": "S08:2",
      "points": [
        [
          92.5,
          70.4,
          1.1
        ],
        [
          100.1,
          70.4,
          1.1
        ]
      ],
      "width": 0.5,
      "routing_note": "3개 블리스터 포장열별 완성 팩을 같은 높이의 표시·중량 검사기로 직접 이송하는 짧은 컨베이어. 1.6m 기계 간격을 AMR 주차장으로 사용하지 않는다.",
      "authored_transport": true
    }
  ],
  "yard": {
    "roads": [
      {
        "points": [
          [
            7,
            7
          ],
          [
            154,
            7
          ],
          [
            154,
            81
          ],
          [
            7,
            81
          ],
          [
            7,
            7
          ]
        ],
        "width": 6
      }
    ],
    "docks": [
      {
        "x": 14,
        "y": 25.0,
        "angle": -1.5707963267948966,
        "building_id": "approved",
        "role": "원료·구매부품 입고 도크 — 원료·포장재 승인 대기 창고 도크"
      },
      {
        "x": 125.5,
        "y": 14,
        "angle": 0,
        "building_id": "dispatch-stock",
        "role": "정제 완제품 출하 창고 출하"
      }
    ],
    "parking": [
      {
        "x": 15,
        "y": 79.9,
        "angle": 0,
        "count": 20
      }
    ],
    "gate": {
      "x": 80.5,
      "y": 7
    },
    "fence": true
  },
  "landmarks": [
    "서쪽 흰 제조 매스와 북측 서비스면",
    "밀폐용기 인계가 짧은 정립·타정·코팅동",
    "높이가 다른 청색 블리스터 포장동",
    "승인 원료·표시 자재 랙과 독립 품질 지원 전면",
    "정제 완제품 출하 창고을 갖춘 실제 랙·전용대 출하 전면"
  ],
  "openings": [
    {
      "id": "opening-1",
      "building_id": "granule",
      "x": 80.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ]
    },
    {
      "id": "opening-2",
      "building_id": "granule",
      "x": 80.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ],
      "zone_id": "granule"
    },
    {
      "id": "opening-3",
      "building_id": "tablet",
      "x": 86.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ]
    },
    {
      "id": "opening-4",
      "building_id": "tablet",
      "x": 86.5,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S03",
        "S04"
      ],
      "zone_id": "tablet"
    },
    {
      "id": "opening-5",
      "building_id": "tablet",
      "x": 149.0,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ]
    },
    {
      "id": "opening-6",
      "building_id": "tablet",
      "x": 149.0,
      "y": 42.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ],
      "zone_id": "tablet"
    },
    {
      "id": "opening-7",
      "building_id": "pack",
      "x": 86.5,
      "y": 55.3,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ]
    },
    {
      "id": "opening-8",
      "building_id": "pack",
      "x": 86.5,
      "y": 55.3,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ],
      "zone_id": "pack"
    },
    {
      "id": "routing-r1-009",
      "building_id": "granule",
      "x": 80.5,
      "y": 45.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S03:2",
        "S04:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-010",
      "building_id": "tablet",
      "x": 86.5,
      "y": 45.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S03:2",
        "S04:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-011",
      "building_id": "granule",
      "x": 80.5,
      "y": 45.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S03:2",
        "S04:0"
      ],
      "kind": "material_door",
      "zone_id": "granule"
    },
    {
      "id": "routing-r1-012",
      "building_id": "tablet",
      "x": 86.5,
      "y": 45.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S03:2",
        "S04:0"
      ],
      "kind": "material_door",
      "zone_id": "tablet"
    },
    {
      "id": "routing-r1-013",
      "building_id": "tablet",
      "x": 132.0,
      "y": 49.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:0",
        "S07:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-014",
      "building_id": "tablet",
      "x": 132.0,
      "y": 49.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:0",
        "S07:0"
      ],
      "kind": "material_door",
      "zone_id": "tablet"
    },
    {
      "id": "routing-r1-015",
      "building_id": "pack",
      "x": 104.1,
      "y": 60.17,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S06:0",
        "S07:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-016",
      "building_id": "pack",
      "x": 104.1,
      "y": 60.17,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S06:0",
        "S07:0"
      ],
      "kind": "material_door",
      "zone_id": "pack"
    },
    {
      "id": "routing-r1-017",
      "building_id": "approved",
      "x": 14,
      "y": 25.0,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "raw-dock",
        "approved"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-018",
      "building_id": "granule",
      "x": 14,
      "y": 45.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "approved",
        "S01:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-019",
      "building_id": "granule",
      "x": 14,
      "y": 45.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "approved",
        "S01:0"
      ],
      "kind": "material_door",
      "zone_id": "granule"
    },
    {
      "id": "routing-r1-020",
      "building_id": "pack",
      "x": 104.1,
      "y": 58.0,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:0",
        "dispatch-stock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-021",
      "building_id": "pack",
      "x": 104.1,
      "y": 58.0,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:0",
        "dispatch-stock"
      ],
      "kind": "material_door",
      "zone_id": "pack"
    },
    {
      "id": "routing-r1-022",
      "building_id": "tablet",
      "x": 114.92,
      "y": 42,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:0",
        "dispatch-stock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-023",
      "building_id": "tablet",
      "x": 114.92,
      "y": 49.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:0",
        "dispatch-stock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-024",
      "building_id": "tablet",
      "x": 114.92,
      "y": 42,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:0",
        "dispatch-stock"
      ],
      "kind": "material_door",
      "zone_id": "tablet"
    },
    {
      "id": "routing-r1-025",
      "building_id": "tablet",
      "x": 114.92,
      "y": 49.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:0",
        "dispatch-stock"
      ],
      "kind": "material_door",
      "zone_id": "tablet"
    },
    {
      "id": "routing-r1-026",
      "building_id": "dispatch-stock",
      "x": 102.0,
      "y": 17.48,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:0",
        "dispatch-stock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-027",
      "building_id": "dispatch-stock",
      "x": 125.5,
      "y": 14,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "dispatch-stock",
        "shipping-dock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-028",
      "building_id": "support",
      "x": 83.02,
      "y": 14,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "gate",
        "o02-staff"
      ],
      "kind": "pedestrian_door"
    },
    {
      "id": "routing-r1-029",
      "building_id": "support",
      "x": 83.02,
      "y": 14,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "gate",
        "o02-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-staff"
    },
    {
      "id": "routing-r1-030",
      "building_id": "support",
      "x": 72.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o02-staff",
        "o02-office"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-office"
    },
    {
      "id": "routing-r1-031",
      "building_id": "support",
      "x": 72.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o02-staff",
        "o02-office"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-staff"
    },
    {
      "id": "routing-r1-032",
      "building_id": "support",
      "x": 84.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o02-staff",
        "o02-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-staff"
    },
    {
      "id": "routing-r1-033",
      "building_id": "support",
      "x": 84.0,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o02-staff",
        "o02-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-lab"
    },
    {
      "id": "routing-r1-034",
      "building_id": "support",
      "x": 73.92,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o02-staff",
        "o02-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-staff"
    },
    {
      "id": "routing-r1-035",
      "building_id": "support",
      "x": 73.92,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o02-staff",
        "o02-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-maint"
    },
    {
      "id": "routing-r1-036",
      "building_id": "support",
      "x": 84.98,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o02-staff",
        "o02-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-lab"
    },
    {
      "id": "routing-r1-037",
      "building_id": "support",
      "x": 84.98,
      "y": 25.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o02-staff",
        "o02-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o02-utility"
    }
  ],
  "density": {
    "intent": "설비 바닥 308.25㎡ / 제조 구획 1308.94㎡ = 23.55%. 개별 생산 셀의 서비스 간격·공정 인계와 실제 원부자재·정비·검사 시설을 먼저 구성했다. 빈 바닥을 채우기 위한 임의 장식 상자를 사용하지 않는다.",
    "production_area_m2": 1308.94,
    "storage_area_m2": 1826.0,
    "support_area_m2": 880.0,
    "circulation_area_m2": 0
  },
  "authoring_note": "개별 배치안. 형상·동작·피난·법정 안전설계 검수 및 시각 검수는 별도 수행해야 하며 공개 릴리스 승인 아님.",
  "routing_revision": 2,
  "routing_design_note": " 3개 블리스터 포장·검사열의 1.6m 간격은 직접 컨베이어로 잇고 차량 인계로 표현하지 않는다."
}
