{
  "scenarios": [
    {
      "id": "supported_passive_contact_hypothesis",
      "expected_verdict": "SUPPORTED",
      "hypothesis": {
        "claim_id": "passive-contact-stays-anchored",
        "claim_text": "When the passive contact fixture remains anchored, audio, vision, and contact evidence repeat exactly.",
        "domain": "passive_tabletop",
        "basis_trace_hashes": ["basis-passive-contact", "basis-vision-anchor", "basis-passive-contact"]
      },
      "frames": [
        {
          "tick": 10,
          "expected": {
            "audio:left_tone": {
              "modality": "audio",
              "signal": {"id": "scenario_left_tone", "kind": "tone", "ms": 240, "hz": 180, "sweep": 0, "amp": 0.4}
            },
            "vision:corner": {
              "modality": "vision",
              "signal": {"id": "scenario_corner", "kind": "corner", "size": 32}
            }
          },
          "actual": "same"
        },
        {
          "tick": 11,
          "expected": {
            "sensorimotor:contact": {
              "modality": "sensorimotor",
              "signal": {
                "id": "scenario_contact",
                "pose_q": [10, -4, 3],
                "velocity_q": [1, 0, -1],
                "force_torque_q": [2, 3, 5],
                "contact_q": [1, 0, 1, 0],
                "actuator_state_q": [7, 8]
              }
            }
          },
          "actual": "same"
        }
      ]
    },
    {
      "id": "falsified_passive_contact_hypothesis",
      "expected_verdict": "FALSIFIED",
      "hypothesis": {
        "claim_id": "passive-contact-breaks-on-release",
        "claim_text": "A released passive contact fixture should continue to emit the original contact evidence.",
        "domain": "passive_tabletop",
        "basis_trace_hashes": ["basis-contact-release"]
      },
      "frames": [
        {
          "tick": 20,
          "expected": {
            "sensorimotor:contact": {
              "modality": "sensorimotor",
              "signal": {
                "id": "scenario_contact_expected",
                "pose_q": [10, -4, 3],
                "velocity_q": [1, 0, -1],
                "force_torque_q": [2, 3, 5],
                "contact_q": [1, 0, 1, 0],
                "actuator_state_q": [7, 8]
              }
            }
          },
          "actual": {
            "sensorimotor:contact": {
              "modality": "sensorimotor",
              "signal": {
                "id": "scenario_contact_actual",
                "pose_q": [10, -4, 3],
                "velocity_q": [1, 0, -1],
                "force_torque_q": [2, 3, 5],
                "contact_q": [0, 0, 0, 0],
                "actuator_state_q": [7, 8]
              }
            }
          }
        }
      ]
    }
  ]
}
