{
  "schemaVersion": 1,
  "mode": "synthetic-study",
  "recording": {
    "path": "examples/transfer/input/recording.mp4",
    "sha256": "c79bfcc77e0d05c43cbc3cd8ce3d8087cbf375c4d67e93c7b5728cf66a9a005b"
  },
  "intake": {
    "path": "examples/transfer/intake/intake.json",
    "sha256": "c6d0110e2ad584c2eba10e35416f816380e3d33f88d9a189eb02852599a2c6b0"
  },
  "transcript": {
    "path": "examples/transfer/transcript.json",
    "sha256": "85948382bf7fb1c0b3d07c98329f171f781956247ac6b19f381b69f4fa45601e"
  },
  "timing": {
    "worksheet": {
      "path": "examples/transfer/timing-private.json",
      "sha256": "8141fa98e1ec0bc40b8d7a359383d552bd84e47888386e424ac873ecd8c0b11f"
    },
    "nominalReactionSeconds": 0.65,
    "evidenceKind": "synthetic-fixture",
    "tailObservation": {
      "path": "examples/transfer/tail-observations.json",
      "sha256": "895fec060f1836aa45be39a93a4082a02dba7bbac7f10b7f6610f9fc8d16eb68"
    },
    "cueDescription": "At 2.000 s, the original title cuts to the loaded Moss Ledger application."
  },
  "identity": {
    "title": "Make the result easy to check.",
    "label": "MOSS LEDGER / SYNTHETIC STUDY",
    "accent": "#3d6646"
  },
  "exportProfile": {
    "width": 1280,
    "height": 720,
    "fps": 30,
    "container": "mp4",
    "codec": "h264",
    "pixelFormat": "yuv420p",
    "color": "bt709",
    "audio": false
  },
  "approval": {
    "state": "synthetic-only"
  },
  "captures": [
    {
      "id": "moss",
      "manifest": {
        "path": "public/transfer/moss/capture.json",
        "sha256": "c551757c27d852e303fae05f7de292fc09aa9d2d47e6c167e77a0676cef1aecf"
      },
      "objectId": "ridge-loop",
      "settledSourceSeconds": 12,
      "verification": {
        "status": "verified",
        "kind": "synthetic-fixture",
        "runtime": "Local examples/transfer/demo.html",
        "version": "e7170b6ff4fac3fb5ff48c458908a1c29f41ec734bffb39b7efe556cb79a0bfc",
        "permission": "Original synthetic local test only; no external account or service",
        "instructionsRead": "PRODUCTION_PACKET.md and the self-contained fixture source",
        "expected": "Ridge loop shows 9 stops and 2 closures after a genuine wait",
        "actual": "Ridge loop shows 9 stops and 2 closures after a genuine wait",
        "evidence": {
          "path": "examples/transfer/capture-observations.json",
          "sha256": "402fa66c58c452452a03d1630f9f97a93fd654ba173f8a41d5449c4e22563c77"
        }
      }
    }
  ],
  "beats": [
    {
      "id": "build-and-check",
      "title": "Nine stops. Two closures.",
      "recordingStartSeconds": 7,
      "recordingEndSeconds": 18,
      "recordingProofSeconds": 14,
      "proofLocalFrame": 180,
      "durationInFrames": 270,
      "minimumReadingFrames": 90,
      "captureId": "moss",
      "objectId": "ridge-loop",
      "reference": {
        "studyUrl": "https://openai-film-fieldnotes-100.pages.dev/videos/films/codex-first-look/",
        "sourceIntervalSeconds": [
          121,
          130
        ],
        "evidenceKind": "source-observation",
        "rationale": "Show actual action, completion and an unchanging reading interval. Native app motion is enough here.",
        "alternative": "A camera push during result arrival would compete with the result; keep the camera still."
      },
      "motion": {
        "kind": "hold",
        "actionFrame": 15,
        "changeFrame": 45,
        "zoom": 1,
        "focusX": 0.5,
        "focusY": 0.5,
        "evidenceKind": "proposed-edit"
      },
      "segments": [
        {
          "fromFrame": 0,
          "endFrame": 90,
          "sourceStartSeconds": 0.6,
          "mode": "play"
        },
        {
          "fromFrame": 90,
          "endFrame": 180,
          "sourceStartSeconds": 9,
          "mode": "play"
        },
        {
          "fromFrame": 180,
          "endFrame": 270,
          "sourceStartSeconds": 12,
          "mode": "hold"
        }
      ],
      "omissions": [
        {
          "afterLocalFrame": 90,
          "sourceStartSeconds": 3.6,
          "sourceEndSeconds": 9,
          "reason": "The actual wait cannot fit the fixed narration. Preserve initiation and actual arrival; omit only the middle wait.",
          "disclosure": "5.4 s wait omitted"
        }
      ]
    },
    {
      "id": "same-route-detail",
      "title": "Keep the same route in view.",
      "recordingStartSeconds": 21,
      "recordingEndSeconds": 27,
      "recordingProofSeconds": 23,
      "proofLocalFrame": 60,
      "durationInFrames": 240,
      "minimumReadingFrames": 150,
      "captureId": "moss",
      "objectId": "ridge-loop",
      "reference": {
        "studyUrl": "https://openai-film-fieldnotes-100.pages.dev/videos/motion/#codex-review-reframe",
        "sourceIntervalSeconds": [
          92.5,
          98
        ],
        "evidenceKind": "source-observation",
        "rationale": "The wide proof is already established. One push brings the same route and counts closer, then stops.",
        "alternative": "Atlas 72\u201376 s supplies a contrasting hard reframe. A hard cut is valid, but the gentle push makes retained identity easier to follow here."
      },
      "motion": {
        "kind": "push",
        "actionFrame": 15,
        "changeFrame": 45,
        "zoom": 1.4,
        "focusX": 0.6,
        "focusY": 0.51,
        "evidenceKind": "proposed-edit"
      },
      "segments": [
        {
          "fromFrame": 0,
          "endFrame": 240,
          "sourceStartSeconds": 12,
          "mode": "hold"
        }
      ],
      "omissions": []
    }
  ]
}
