///|
/// These hand-authored results demonstrate the public API. The real backend
/// execution example is scripts/check_backends.mjs.
fn demo_reports() -> Array[@parity.ParityReport] {
  let passing = @parity.compare_scenario({
    schema_version: 1,
    name: "line-ending-portability",
    expected_targets: ["wasm", "js"],
    observations: [
      { target: "wasm", exit_code: 0, stdout: "{\"sum\":3}\r\n", stderr: "", },
      { target: "js", exit_code: 0, stdout: "{\"sum\":3}\n", stderr: "", },
    ],
    policy: @parity.ComparePolicy::strict(),
  })

  // Identical backends can still be wrong. Reviewed expectations catch that.
  let common_regression = @parity.compare_contract_scenario({
    scenario: {
      schema_version: 1,
      name: "shared-result-regression",
      expected_targets: ["wasm", "js"],
      observations: [
        { target: "wasm", exit_code: 0, stdout: "{\"sum\":4}\n", stderr: "", },
        { target: "js", exit_code: 0, stdout: "{\"sum\":4}\n", stderr: "", },
      ],
      policy: @parity.ComparePolicy::strict(),
    },
    expectations: [
      { target: "wasm", exit_code: 0, stdout: "{\"sum\":3}\n", stderr: "", },
      { target: "js", exit_code: 0, stdout: "{\"sum\":3}\n", stderr: "", },
    ],
  })

  let incomplete = @parity.compare_scenario({
    schema_version: 1,
    name: "missing-native-observation",
    expected_targets: ["wasm", "js", "native"],
    observations: [
      { target: "wasm", exit_code: 0, stdout: "ok\n", stderr: "", },
      { target: "js", exit_code: 0, stdout: "ok\n", stderr: "", },
    ],
    policy: @parity.ComparePolicy::strict(),
  })
  [passing, common_regression, incomplete]
}

///|
fn main {
  for report in demo_reports() {
    println(@parity.report_to_json(report))
  }
}