///|
/// Additional support scenarios cover long-running tickets and operator safety.
fn extend_scenarios(cases : Array[Scenario]) -> Array[Scenario] {
  cases.push({
    id: "support-triage-assignment-resolution",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Triage", "Assign", "Resolve"],
    expected_state: "Resolved",
    expected_successes: 3,
    expected_rejections: 0,
  })
  cases.push({
    id: "support-request-customer-reply",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Triage", "Assign", "RequestInfo", "CustomerReply", "Resolve"],
    expected_state: "Resolved",
    expected_successes: 5,
    expected_rejections: 0,
  })
  cases.push({
    id: "support-escalation-resolution",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Triage", "Assign", "Escalate", "Resolve"],
    expected_state: "Resolved",
    expected_successes: 4,
    expected_rejections: 0,
  })
  cases.push({
    id: "support-escalation-reopen-close",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: [
      "Triage", "Assign", "Escalate", "Resolve", "Reopen", "Assign", "Resolve", "Close",
    ],
    expected_state: "Closed",
    expected_successes: 8,
    expected_rejections: 0,
  })
  cases.push({
    id: "support-cancel-before-triage",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Cancel", "Triage"],
    expected_state: "Cancelled",
    expected_successes: 1,
    expected_rejections: 1,
  })
  cases.push({
    id: "support-double-cancel",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Cancel", "Cancel"],
    expected_state: "Cancelled",
    expected_successes: 1,
    expected_rejections: 1,
  })
  cases.push({
    id: "support-waiting-unknown-reply",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: [
      "Triage", "Assign", "CustomerReply", "RequestInfo", "CustomerReply", "Resolve",
    ],
    expected_state: "Resolved",
    expected_successes: 5,
    expected_rejections: 1,
  })
  cases.push({
    id: "support-resolve-before-update",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Triage", "Assign", "Resolve"],
    expected_state: "Resolved",
    expected_successes: 3,
    expected_rejections: 0,
  })
  cases.push({
    id: "support-reopen-after-close",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Triage", "Assign", "Resolve", "Close", "Reopen"],
    expected_state: "Closed",
    expected_successes: 4,
    expected_rejections: 1,
  })
  cases.push({
    id: "support-escalate-without-assignment",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: ["Triage", "Escalate", "Assign", "Escalate", "Resolve"],
    expected_state: "Resolved",
    expected_successes: 4,
    expected_rejections: 1,
  })
  cases.push({
    id: "support-long-reopen-loop",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: [
      "Triage", "Assign", "Resolve", "Reopen", "Assign", "Resolve", "Reopen", "Assign",
      "Resolve", "Close",
    ],
    expected_state: "Closed",
    expected_successes: 10,
    expected_rejections: 0,
  })
  cases.push({
    id: "support-terminal-event-storm",
    family: "support",
    initial: "Open",
    initial_context: 0,
    events: [
      "Triage", "Assign", "Resolve", "Close", "Resolve", "Assign", "Cancel",
    ],
    expected_state: "Closed",
    expected_successes: 4,
    expected_rejections: 3,
  })
  cases
}