{
  "id": "ESV-S03-SOP-01",
  "asset_id": "s03",
  "title": "Capsule service bay module exchange and recovery",
  "purpose": "Rehearse exchanging the upper service bay module while preserving connector identity, harness routing and door clearance. Resolve a deliberately conflicting connector instruction before the capsule is handed back.",
  "prerequisites": "Use the inert, unpressurised capsule concept on its cradle. Supply a reviewed training mapping for the two connector banks, saved module poses and a detached parking position. Live electrical work and pressure systems are outside this exercise.",
  "steps": [
    {
      "number": 1,
      "title": "Confirm the work configuration",
      "labels": [
        "capsule",
        "cradle",
        "service_bay"
      ],
      "action": "Match the capsule, cradle and service bay to the saved starting state. Record the asset and task revision before opening the work package.",
      "check": "The learner identifies all three objects and the correct model version."
    },
    {
      "number": 2,
      "title": "Establish the isolated state",
      "labels": [
        "bay_upper_connector_bank",
        "bay_lower_connector_bank",
        "bay_harness_left"
      ],
      "action": "Select both connector banks and acknowledge the scenario supplied unpowered state. Identify the harness that must remain undisturbed.",
      "check": "Isolation is an explicit scenario or instrument record; appearance is insufficient."
    },
    {
      "number": 3,
      "title": "Release the service door",
      "labels": [
        "door",
        "door_latch_upper",
        "door_latch_lower"
      ],
      "action": "Release the two simulated door latches in the authored sequence. Retain the door in its closed pose until both releases are recorded.",
      "check": "A retained latch prevents the opening step and produces a clear hold."
    },
    {
      "number": 4,
      "title": "Open the access envelope",
      "labels": [
        "door",
        "hinge_upper",
        "hinge_lower",
        "door_tube"
      ],
      "action": "Move the door through the reviewed training opening animation. Keep its tube connection inside the declared clearance envelope.",
      "check": "The animation uses authored geometry and axes, not an inferred physical hinge rating."
    },
    {
      "number": 5,
      "title": "Identify the replacement target",
      "labels": [
        "bay_upper_module",
        "bay_middle_module",
        "bay_lower_module"
      ],
      "action": "Select the upper module and compare its identity with the task card. Preserve the middle and lower modules in their starting states.",
      "check": "Choosing a neighbouring module is rejected before any disconnection."
    },
    {
      "number": 6,
      "title": "Resolve the connector discrepancy",
      "labels": [
        "bay_upper_connector_bank",
        "bay_lower_connector_bank",
        "bay_upper_module"
      ],
      "action": "Present an instruction naming the lower connector bank for the upper module. Place a hold, capture both labels and obtain the reviewed training correction.",
      "check": "Continuing with the lower bank is a critical error; the correction must be recorded."
    },
    {
      "number": 7,
      "title": "Release the module connections",
      "labels": [
        "bay_upper_connector_bank",
        "bay_harness_right",
        "bay_upper_module"
      ],
      "action": "Disconnect the reviewed training interface and park the associated harness using its authored stowed state. Keep the door tube and neighbouring bank untouched.",
      "check": "Module movement remains blocked until the required disconnect and stow events exist."
    },
    {
      "number": 8,
      "title": "Withdraw the upper module",
      "labels": [
        "bay_upper_module",
        "bay_rail",
        "bay_silver_rim"
      ],
      "action": "Move the upper module along the authored rail path to its supported parking pose. Compare its envelope with the bay rim throughout the path.",
      "check": "A misaligned withdrawal branches to stop and restore the last accepted pose."
    },
    {
      "number": 9,
      "title": "Seat the replacement configuration",
      "labels": [
        "bay_upper_module",
        "bay_rail",
        "bay_gold_rim"
      ],
      "action": "Return the same module mesh as the reviewed replacement state. Align it with the saved rail datum and confirm its seated pose.",
      "check": "The replacement identity is scenario metadata; the mesh does not establish a real spare."
    },
    {
      "number": 10,
      "title": "Reconnect and restore the harness",
      "labels": [
        "bay_upper_connector_bank",
        "bay_harness_right",
        "bay_harness_left"
      ],
      "action": "Reconnect the corrected upper bank and restore the right harness. Compare the untouched left harness with its baseline.",
      "check": "The correct bank, route and module seating must all pass before closure."
    },
    {
      "number": 11,
      "title": "Restore the service door",
      "labels": [
        "door",
        "door_tube",
        "door_latch_upper",
        "door_latch_lower"
      ],
      "action": "Restore the tube clearance, close the door and engage both latches. Reject closure if the parked harness still occupies the door envelope.",
      "check": "Latch states and door pose are recorded separately; a closed appearance is insufficient."
    },
    {
      "number": 12,
      "title": "Complete the module handover",
      "labels": [
        "bay_upper_module",
        "bay_upper_connector_bank",
        "door",
        "cradle"
      ],
      "action": "Submit the module identity, connector correction, final poses and closure evidence. Hand the simulated capsule back in its approved training configuration.",
      "check": "Completion requires resolved holds, intact neighbouring states and the full action sequence."
    }
  ],
  "assessment": "Score component identification 25, dependency order 20, discrepancy handling 20, restored configuration 20 and evidence 15. Wrong bank selection after the hold or module withdrawal before disconnection prevents completion.",
  "authoring_notes": "Bind every label to the actual S03 GLB mesh. Author module withdrawal and door motion as reviewed keyframes, with explicit envelopes and parking states. Engineering isolation, real spare identification and connector pin functions must come from programme sources.",
  "model_version": 3,
  "model_url": "https://eonspaceventures.com/models/s03-capsule.glb",
  "model_session": "https://mirrordirect.eonaiventures.com/s/01M5QZKEDB10Q0GJA8YVT3BT95",
  "model_sha256": "da0f3042218288a1b55f740bfe168108f97cb447b39f6fffa3674e348a715b08",
  "status": "simulation authoring specification",
  "executed": false
}
