///|
fn contract() -> @moonvcr.ResponseContract {
  {
    allowed_statuses: [200, 201],
    required_headers: ["content-type", "x-api-version"],
    required_header_values: [
      { name: "content-type", expected_value: "application/json", },
      { name: "x-api-version", expected_value: "2026-09", },
    ],
    body_kind: Some(@moonvcr.ExpectTextBody),
    json_fields: [
      { path: "/id", expected_kind: @moonvcr.JsonNumber, },
      { path: "/state", expected_kind: @moonvcr.JsonString, },
    ],
    optional_json_fields: [
      { path: "/note", expected_kind: @moonvcr.JsonString, },
    ],
    json_array_elements: [
      { path: "/items", expected_kind: @moonvcr.JsonObject, },
    ],
  }
}

///|
fn main {
  let response : @moonvcr.Response = {
    status: 201,
    headers: [
      { name: "Content-Type", value: "application/json", },
      { name: "X-Api-Version", value: "2026-09", },
    ],
    body: @moonvcr.Text(
      "{\"id\":42,\"state\":\"created\",\"items\":[{\"sku\":\"demo\"}]}",
    ),
  }
  let report = response.validate_contract(contract())
  guard report.is_valid() else { abort(report.summary()) }
  println(
    "order compatibility contract passed status headers JSON array optional-field",
  )
}