{
  "_comment": "Trimmed excerpt of the real production manifest's structure, kept alongside the ticket so a retry can target exactly the right nodes. Most of the 23 scenes and their internal node IDs have been removed; two remain for illustration.",
  "slug": "example-documentary",
  "sourceTicketId": 0,
  "totalClips": 118,
  "audio": {
    "durationSec": 755.1,
    "mp3": "REDACTED",
    "srt": "REDACTED"
  },
  "pipeline": {
    "requestId": 0,
    "voiceNodeId": 0,
    "built": true,
    "assembleNodeId": 0,
    "gateNodeId": 0,
    "publishNodeId": 0,
    "callbackNodeId": 0
  },
  "segments": [
    {
      "scene": 1,
      "chapter": 1,
      "imageNodeId": 0,
      "clipNodeIds": [0, 0, 0, 0, 0, 0],
      "startSec": 0.1,
      "durationSec": 58.6,
      "status": "preserved"
    },
    {
      "scene": 2,
      "chapter": 1,
      "imageNodeId": 0,
      "clipNodeIds": [0, 0, 0, 0, 0],
      "startSec": 58.7,
      "durationSec": 35.6,
      "status": "retried",
      "retryReason": "clip generated in the wrong orientation, blocked the downstream merge step"
    }
  ],
  "notes": [
    "The real manifest records one entry per narrated scene, each with its own image node and list of clip nodes, so a diagnosis can point at the exact nodes to retry instead of a whole scene or the whole production.",
    "A 'status' field per segment (preserved, retried, waiting) is not present in the original file but is added here to show how the preserve/retry/wait/validate matrix maps onto this structure in practice.",
    "totalClips reflects a mid-recovery checkpoint, not necessarily the final published count. Treat any single number in a manifest as a snapshot at the time it was written."
  ]
}
