{
  "schema_version": "cell-manifest.v1",
  "cell_id": "D1-FUTURE-MSLA-04",
  "claim": "future-cell-simulation",
  "audience_experience": {
    "start_behavior": "explicit-user-start-after-required-assets",
    "completion_behavior": "hold-final-frame-with-review-actions",
    "technical_review": [
      "trace",
      "components",
      "sources"
    ],
    "telemetry_policy": "manifest-backed-simulation-state-only",
    "physical_validation": "required"
  },
  "printer": {
    "type": "open-frame custom-msla",
    "prototype_basis": "OS1 open-source DLP source CAD components with conceptual 16K LCD conversion",
    "cad_source": "OS1 CERN-OHL-S-2.0 STEP components",
    "enclosure": "none; orange safety hoods removed",
    "build_window_stack": [
      "UV engine",
      "LCD build window",
      "opaque mask/support plate",
      "resin volume"
    ],
    "pixel_field": "15360x8640",
    "logical_pixel_count": 132710400,
    "rendering": "procedural GPU exposure field; no individual beam objects",
    "calibration_status": "physical-survey-required",
    "workflow": [
      "PRINTING",
      "DRAINING",
      "WASHING",
      "DEPLATING",
      "CURING",
      "STAGED"
    ],
    "batch_order": [
      "A1",
      "B1",
      "A2",
      "B2"
    ],
    "footprint_m": [
      1.095,
      1.095
    ],
    "build_plate_m": [
      0.762,
      0.69
    ]
  },
  "printer_supports": [
    {
      "id": "printer-table-A",
      "manufacturer": "Thorlabs",
      "visual_basis": "ScienceDesk SDA90120 active-isolation workstation",
      "position": [
        -0.705,
        0,
        -2.19
      ],
      "half_extents": [
        0.63,
        0.75,
        0.57
      ],
      "independently_isolated": true
    },
    {
      "id": "printer-table-B",
      "manufacturer": "Thorlabs",
      "visual_basis": "ScienceDesk SDA90120 active-isolation workstation",
      "position": [
        0.705,
        0,
        -2.19
      ],
      "half_extents": [
        0.63,
        0.75,
        0.57
      ],
      "independently_isolated": true
    }
  ],
  "process_line": {
    "shared": true,
    "facing": "+Z toward assembly table",
    "station_order": [
      "PRINT A/B",
      "WASH 01",
      "DE-PLATE 01",
      "UV CURE 01",
      "ASSEMBLY STAGING"
    ],
    "horizontal_carrier_y": 1.623,
    "support_tables": [
      {
        "id": "wash-support",
        "position": [
          -2.1,
          0.0,
          -4.035
        ],
        "half_extents": [
          0.81,
          0.693,
          0.63
        ],
        "surface_y": 0.693,
        "legged": true,
        "independently_isolated": true
      },
      {
        "id": "deplate-support",
        "position": [
          0.0,
          0.0,
          -4.035
        ],
        "half_extents": [
          0.96,
          0.693,
          0.66
        ],
        "surface_y": 0.693,
        "legged": true,
        "independently_isolated": true
      },
      {
        "id": "cure-support",
        "position": [
          2.19,
          0.0,
          -4.125
        ],
        "half_extents": [
          1.11,
          0.693,
          1.05
        ],
        "surface_y": 0.693,
        "legged": true,
        "independently_isolated": true
      }
    ],
    "stations": [
      {
        "id": "WASH 01",
        "role": "wash",
        "position": [
          -2.1,
          0.693,
          -4.035
        ],
        "visual": "single large keyed IPA immersion tank with recirculation and drain dwell",
        "single_bath": true,
        "plaque_alignment": "front-centerline",
        "shuttle_interface": "keyed build-plate handle",
        "half_extents": [
          0.78,
          0.6,
          0.696
        ]
      },
      {
        "id": "DE-PLATE 01",
        "role": "deplate",
        "position": [
          0.0,
          0.693,
          -4.035
        ],
        "full_plate_capacity": true,
        "dual_carrier_parking": true,
        "positive_location": [
          "tapered pins",
          "opposed clamps",
          "open plate nest",
          "linear blade guide"
        ],
        "integrated_lerobot_arms": 2,
        "deplate_arms_only": true,
        "plaque_alignment": "front-centerline",
        "operations": [
          "plate locate",
          "clamp",
          "dual-raft separation",
          "dual-arm pick-and-place preassembly",
          "fixture verification"
        ],
        "print_lane_contract": "left-arm cassettes NW/SW on left raft; right-arm cassettes NE/SE on right raft; maximum five actors per lane",
        "tray_output_count": 8,
        "half_extents": [
          0.915,
          0.54,
          0.705
        ],
        "retention": "perimeter-only; no crossbars through printed actors",
        "rack_datum": [
          0,
          1.263,
          -3.105
        ]
      },
      {
        "id": "UV CURE 01",
        "role": "cure",
        "position": [
          2.19,
          0.693,
          -4.095
        ],
        "rack_datum": [
          2.19,
          1.521,
          -4.095
        ],
        "room_control": "controlled dark room",
        "window": false,
        "door": false,
        "plaque_alignment": "front-centerline",
        "cassette_capacity": 4,
        "tray_capacity": 8,
        "rack_clearance_envelope": [
          2,
          1.3,
          2
        ],
        "half_extents": [
          1.11,
          0.825,
          1.05
        ]
      }
    ],
    "shuttles": [
      {
        "id": "process-shuttle-01",
        "count": 1,
        "role": "exclusive build-plate, cassette-rack, and cassette transfer",
        "payload_ownership": "one rigid payload at a time",
        "interfaces": [
          "build-plate handle",
          "cassette-rack handle",
          "two-drawer cassette handle"
        ],
        "collision_checked": true
      }
    ],
    "process_handlers": [
      {
        "id": "deplate-left",
        "model": "LeRobot SO-101",
        "role": "left support-raft removal and actor pick-place preassembly",
        "operation_scope": "deplate-preassembly-only",
        "base": [
          -0.21,
          1.23,
          -3.75
        ],
        "base_yaw": 0,
        "integrated_station": "DE-PLATE 01",
        "independently_isolated": true,
        "source_scale": 1,
        "positioner": "XYZ slide; base follows task within native arm reach"
      },
      {
        "id": "deplate-right",
        "model": "LeRobot SO-101",
        "role": "right support-raft removal and actor pick-place preassembly",
        "operation_scope": "deplate-preassembly-only",
        "base": [
          0.21,
          1.23,
          -3.75
        ],
        "base_yaw": 3.141593,
        "integrated_station": "DE-PLATE 01",
        "independently_isolated": true,
        "source_scale": 1,
        "positioner": "XYZ slide; base follows task within native arm reach"
      }
    ]
  },
  "batch_contract": {
    "count": 4,
    "order": [
      "A1",
      "B1",
      "A2",
      "B2"
    ],
    "plate_reuse": {
      "plate-A": [
        "A1",
        "A2"
      ],
      "plate-B": [
        "B1",
        "B2"
      ]
    },
    "batches": [
      {
        "id": "A1",
        "plate": "plate-A",
        "reuse_cycle": 1,
        "actor_count": 10,
        "trays": [
          "tray-NW-1",
          "tray-NE-1",
          "tray-SW-1",
          "tray-SE-1"
        ],
        "tray_allocations": {
          "tray-NW-1": 3,
          "tray-NE-1": 2,
          "tray-SW-1": 2,
          "tray-SE-1": 3
        }
      },
      {
        "id": "B1",
        "plate": "plate-B",
        "reuse_cycle": 1,
        "actor_count": 10,
        "trays": [
          "tray-NW-1",
          "tray-NE-1",
          "tray-SW-1",
          "tray-SE-1"
        ],
        "tray_allocations": {
          "tray-NW-1": 2,
          "tray-NE-1": 3,
          "tray-SW-1": 3,
          "tray-SE-1": 2
        }
      },
      {
        "id": "A2",
        "plate": "plate-A",
        "reuse_cycle": 2,
        "actor_count": 10,
        "trays": [
          "tray-NW-2",
          "tray-NE-2",
          "tray-SW-2",
          "tray-SE-2"
        ],
        "tray_allocations": {
          "tray-NW-2": 3,
          "tray-NE-2": 2,
          "tray-SW-2": 2,
          "tray-SE-2": 3
        }
      },
      {
        "id": "B2",
        "plate": "plate-B",
        "reuse_cycle": 2,
        "actor_count": 9,
        "trays": [
          "tray-NW-2",
          "tray-NE-2",
          "tray-SW-2",
          "tray-SE-2"
        ],
        "tray_allocations": {
          "tray-NW-2": 2,
          "tray-NE-2": 3,
          "tray-SW-2": 3,
          "tray-SE-2": 1
        }
      }
    ]
  },
  "carriers": [
    {
      "id": "plate-A",
      "printer": 0,
      "persistent": true,
      "sole_build_plate": true,
      "reuse_count": 2,
      "batches": [
        "A1",
        "A2"
      ]
    },
    {
      "id": "plate-B",
      "printer": 1,
      "persistent": true,
      "sole_build_plate": true,
      "reuse_count": 2,
      "batches": [
        "B1",
        "B2"
      ]
    }
  ],
  "trays": [
    {
      "id": "tray-NW-1",
      "batches": [
        "A1",
        "B1"
      ],
      "actor_count": 5,
      "cassette": "cassette-NW",
      "assigned_arm": "xarm-left",
      "rigid_payload": true
    },
    {
      "id": "tray-NE-1",
      "batches": [
        "A1",
        "B1"
      ],
      "actor_count": 5,
      "cassette": "cassette-NE",
      "assigned_arm": "xarm-right",
      "rigid_payload": true
    },
    {
      "id": "tray-SW-1",
      "batches": [
        "A1",
        "B1"
      ],
      "actor_count": 5,
      "cassette": "cassette-SW",
      "assigned_arm": "xarm-left",
      "rigid_payload": true
    },
    {
      "id": "tray-SE-1",
      "batches": [
        "A1",
        "B1"
      ],
      "actor_count": 5,
      "cassette": "cassette-SE",
      "assigned_arm": "xarm-right",
      "rigid_payload": true
    },
    {
      "id": "tray-NW-2",
      "batches": [
        "A2",
        "B2"
      ],
      "actor_count": 5,
      "cassette": "cassette-NW",
      "assigned_arm": "xarm-left",
      "rigid_payload": true
    },
    {
      "id": "tray-NE-2",
      "batches": [
        "A2",
        "B2"
      ],
      "actor_count": 5,
      "cassette": "cassette-NE",
      "assigned_arm": "xarm-right",
      "rigid_payload": true
    },
    {
      "id": "tray-SW-2",
      "batches": [
        "A2",
        "B2"
      ],
      "actor_count": 5,
      "cassette": "cassette-SW",
      "assigned_arm": "xarm-left",
      "rigid_payload": true
    },
    {
      "id": "tray-SE-2",
      "batches": [
        "A2",
        "B2"
      ],
      "actor_count": 4,
      "cassette": "cassette-SE",
      "assigned_arm": "xarm-right",
      "rigid_payload": true
    }
  ],
  "cassettes": [
    {
      "id": "cassette-NW",
      "assigned_arm": "xarm-left",
      "trays": [
        "tray-NW-1",
        "tray-NW-2"
      ],
      "shelves": 2,
      "slots_per_shelf": 5,
      "actor_capacity": 10,
      "rigid_payload": true
    },
    {
      "id": "cassette-NE",
      "assigned_arm": "xarm-right",
      "trays": [
        "tray-NE-1",
        "tray-NE-2"
      ],
      "shelves": 2,
      "slots_per_shelf": 5,
      "actor_capacity": 10,
      "rigid_payload": true
    },
    {
      "id": "cassette-SW",
      "assigned_arm": "xarm-left",
      "trays": [
        "tray-SW-1",
        "tray-SW-2"
      ],
      "shelves": 2,
      "slots_per_shelf": 5,
      "actor_capacity": 10,
      "rigid_payload": true
    },
    {
      "id": "cassette-SE",
      "assigned_arm": "xarm-right",
      "trays": [
        "tray-SE-1",
        "tray-SE-2"
      ],
      "shelves": 2,
      "slots_per_shelf": 5,
      "actor_capacity": 9,
      "rigid_payload": true
    }
  ],
  "arms": [
    {
      "id": "xarm-left",
      "model": "UFACTORY xArm 6",
      "role": "assembly-only",
      "base": [
        -0.69,
        1.08,
        0
      ],
      "independently_isolated": true,
      "validated": false,
      "source_scale": 1,
      "linear_axis": {
        "axis": "z",
        "travel_m": [
          -1.3,
          1.3
        ],
        "support_x_m": -0.9,
        "mount": "cantilever above table from floor-supported outboard rail"
      }
    },
    {
      "id": "xarm-right",
      "model": "UFACTORY xArm 6",
      "role": "assembly-only",
      "base": [
        0.69,
        1.08,
        0
      ],
      "independently_isolated": true,
      "validated": false,
      "source_scale": 1,
      "linear_axis": {
        "axis": "z",
        "travel_m": [
          -1.3,
          1.3
        ],
        "support_x_m": 0.9,
        "mount": "cantilever above table from floor-supported outboard rail"
      }
    }
  ],
  "static_geometry": {
    "table": {
      "center": [
        0,
        0,
        0
      ],
      "half_extents": [
        0.75,
        0.45,
        1
      ],
      "surface_y": 0.9,
      "sizing": "minimum 1.5 x 2.0 m; expands to source mesh bounds plus 0.10 m per edge",
      "registration": "lowest point of all 39 actors plus 0.025 m deck clearance",
      "independently_isolated": true
    },
    "staging_tables": [
      {
        "center": [
          -1.14,
          0.18,
          0.65
        ],
        "half_extents": [
          0.264,
          0.51,
          0.387
        ],
        "loaded_payload_half_extent_x": 0.3,
        "legged": true,
        "independently_isolated": true
      },
      {
        "center": [
          1.14,
          0.18,
          0.65
        ],
        "half_extents": [
          0.264,
          0.51,
          0.387
        ],
        "loaded_payload_half_extent_x": 0.3,
        "legged": true,
        "independently_isolated": true
      },
      {
        "center": [
          -1.14,
          0.18,
          -0.65
        ],
        "half_extents": [
          0.264,
          0.51,
          0.387
        ],
        "loaded_payload_half_extent_x": 0.3,
        "legged": true,
        "independently_isolated": true
      },
      {
        "center": [
          1.14,
          0.18,
          -0.65
        ],
        "half_extents": [
          0.264,
          0.51,
          0.387
        ],
        "loaded_payload_half_extent_x": 0.3,
        "legged": true,
        "independently_isolated": true
      }
    ],
    "minimum_clearance": 0.025,
    "assembly_waypoint_reach_limit": 0.92,
    "clearance_scope": "assembly metric geometry; rear concept equipment retains its independent presentation dimensions"
  },
  "part_contract": {
    "count": 39,
    "identity_rule": "one lifecycle actor per source visual",
    "states": [
      "PRINTING",
      "DRAINING",
      "WASHING",
      "DEPLATING",
      "CURING",
      "STAGED",
      "HELD",
      "MATED"
    ],
    "runtime_substate_order": [
      "WAITING_TO_PRINT",
      "PRINTING",
      "DRAIN_QUEUE",
      "DRAINING",
      "SHUTTLE_ACQUIRE",
      "TRANSFER_TO_WASH",
      "WASHING",
      "TRANSFER_TO_DEPLATE",
      "DEPLATING",
      "RETURN_TO_PRINTER",
      "CURE_QUEUE",
      "RACK_TRANSFER",
      "RACK_CLAMPING",
      "CURING",
      "UV_COOLDOWN",
      "TRAY_DELIVERY",
      "STAGED",
      "ASSEMBLING",
      "COMMISSIONING",
      "PARKED"
    ],
    "substates": {
      "PRINTING": [
        "EXPOSING",
        "SETTLING",
        "PEELING",
        "FINAL_LIFT"
      ],
      "DRAINING": [
        "DRAINING",
        "SHUTTLE_ACQUIRE",
        "TRANSFER_TO_WASH"
      ],
      "WASHING": [
        "WASH_IMMERSION",
        "WASH_AGITATION",
        "WASH_DRAIN",
        "TRANSFER_TO_DEPLATE"
      ],
      "DEPLATING": [
        "PLATE_LOCATING",
        "PLATE_CLAMPING",
        "DUAL_RAFT_SEPARATION",
        "DUAL_PICK_PLACE_PREASSEMBLY",
        "FIXTURE_VERIFY",
        "PLATE_RELEASE",
        "EMPTY_PLATE_RETURN"
      ],
      "CURING": [
        "RACK_TRANSFER",
        "RACK_CLAMPING",
        "CURING",
        "UV_COOLDOWN",
        "TRAY_DELIVERY"
      ],
      "STAGED": [
        "CASSETTE_STAGED"
      ],
      "HELD": [
        "PREGRASP",
        "GRASP",
        "LIFT",
        "TRAVERSE",
        "PREINSERT",
        "INSERT",
        "RELEASE",
        "RETREAT"
      ],
      "MATED": [
        "MATED"
      ]
    },
    "dimensions": {
      "units": "metres",
      "source_scale": 1,
      "lifecycle_scale": "constant; no enlargement after printing",
      "stl_conversion": "source URDF millimetre-to-metre transform"
    }
  },
  "scene_units": "metres"
}
