{
  "manifestSchemaVersion": 1,
  "generator": "emitAgentDeliveryBundle",
  "generatedAtIso": "2026-07-05T18:25:00.000Z",
  "loop": {
    "loopId": "a1f0c2e4-0001-4a10-9b00-0000000000a1",
    "brandId": 2,
    "brandSlug": "professor_protein",
    "contentMode": "short_form_video",
    "platform": "tiktok"
  },
  "video": {
    "storageKey": "/<PRIVATE_OBJECT_DIR>/video-jobs/a1f0c2e4-0001-4a10-9b00-0000000000a1/render/final.mp4",
    "relativeUrl": "/objects/video-jobs/a1f0c2e4-0001-4a10-9b00-0000000000a1/render/final.mp4",
    "contentUrl": "https://creationloop.ai/objects/video-jobs/a1f0c2e4-0001-4a10-9b00-0000000000a1/render/final.mp4",
    "contentUrlOrigin": "resolved",
    "durationMs": 24000,
    "durationIso8601": "PT24S",
    "contentType": "video/mp4",
    "sha256": null,
    "bytes": null,
    "width": 1080,
    "height": 1920
  },
  "captions": {
    "format": "webvtt",
    "storageKeyFilename": "captions.vtt",
    "timed": true,
    "source": "segment_bounds",
    "cueCount": 4
  },
  "segments": [
    {
      "index": 0,
      "startSec": 0,
      "endSec": 5,
      "durationSec": 5,
      "summary": "Late afternoon slump. An empty desk, focus draining."
    },
    {
      "index": 1,
      "startSec": 5,
      "endSec": 10,
      "durationSec": 5,
      "summary": "A hand reaches for a Professor Protein peanut butter cup on the desk.",
      "text": "Real fuel. No crash."
    },
    {
      "index": 2,
      "startSec": 10,
      "endSec": 18,
      "durationSec": 8,
      "summary": "Hero shot. The cup held up, the workspace snapping into focus."
    },
    {
      "index": 3,
      "startSec": 18,
      "endSec": 24,
      "durationSec": 6,
      "summary": "Wide closing shot. Work shipped, the wordmark endcard resolves."
    }
  ],
  "entityTags": [
    { "type": "brand", "value": "Professor Protein" },
    { "type": "brand_slug", "value": "professor_protein" },
    { "type": "product", "value": "Professor Protein peanut butter cup" },
    { "type": "category", "value": "protein snack" },
    { "type": "audience", "value": "focused creators and gym-goers" },
    { "type": "topic", "value": "afternoon focus without the crash" },
    { "type": "pillar", "value": "real fuel" },
    { "type": "pillar", "value": "clean energy" },
    { "type": "pillar", "value": "no crash" },
    { "type": "keyword", "value": "proteinsnack" },
    { "type": "keyword", "value": "focusfuel" },
    { "type": "keyword", "value": "professorprotein" }
  ],
  "claims": [
    {
      "text": "No crash",
      "receipt": {
        "source": "video_jobs.scene_plan.hashtagSynthesisCheck",
        "id": null,
        "boundBy": "job_id",
        "loopId": "a1f0c2e4-0001-4a10-9b00-0000000000a1",
        "verdict": null,
        "resolved": false,
        "resolveSql": "SELECT scene_plan->'hashtagSynthesisCheck' FROM video_jobs WHERE id = 'a1f0c2e4-0001-4a10-9b00-0000000000a1';"
      }
    }
  ],
  "provenance": {
    "loopId": "a1f0c2e4-0001-4a10-9b00-0000000000a1",
    "brandId": 2,
    "brandSlug": "professor_protein",
    "contentMode": "short_form_video",
    "platform": "tiktok",
    "gateVerdict": {
      "source": "creative_quality_evaluations",
      "id": null,
      "boundBy": "video_job_id",
      "loopId": "a1f0c2e4-0001-4a10-9b00-0000000000a1",
      "verdict": null,
      "resolved": false,
      "resolveSql": "SELECT id, verdict, overall_score, status, created_at FROM creative_quality_evaluations WHERE video_job_id = 'a1f0c2e4-0001-4a10-9b00-0000000000a1' ORDER BY created_at DESC LIMIT 1;"
    },
    "spendReceipt": {
      "source": "adapter_usage",
      "boundBy": "job_id",
      "loopId": "a1f0c2e4-0001-4a10-9b00-0000000000a1",
      "totalEstimatedCents": null,
      "rowCount": null,
      "resolved": false,
      "resolveSql": "SELECT provider, count(*) AS rows, COALESCE(SUM(estimated_cost_cents),0) AS cents FROM adapter_usage WHERE job_id = 'a1f0c2e4-0001-4a10-9b00-0000000000a1' GROUP BY provider ORDER BY cents DESC;"
    },
    "claimGate": null
  },
  "videoObjectRef": {
    "filename": "videoobject.jsonld",
    "ingestedByListing": false
  },
  "config": {
    "version": 1,
    "listing": {
      "maxVideoDurationSec": 120,
      "acceptedAspectRatios": ["9:16", "1:1", "16:9"],
      "maxWidthPx": 1920,
      "maxHeightPx": 1920,
      "container": "mp4",
      "videoCodec": "h264",
      "audioCodec": "aac",
      "maxFileSizeBytes": 52428800,
      "videoDelivery": "hosted_url",
      "embedProvider": null,
      "ingestsVideoObjectJsonLd": false
    },
    "unresolved": [],
    "founderReplaceFields": [
      "listing.maxVideoDurationSec",
      "listing.acceptedAspectRatios",
      "listing.maxWidthPx",
      "listing.maxHeightPx",
      "listing.container",
      "listing.videoCodec",
      "listing.audioCodec",
      "listing.maxFileSizeBytes",
      "listing.videoDelivery",
      "listing.embedProvider",
      "listing.ingestsVideoObjectJsonLd",
      "publishing.publicBaseUrl"
    ]
  },
  "notes": [
    "Fixture bundle authored by CreationLoop to exercise the public permalink surface against the MCE manifest schema (version 1). Replace with the live MCE-emitted bundle when the fetch seam lands.",
    "Receipt ids are bound by loop id and resolve in the MCE source ledgers via the resolveSql fields; no CL process reads an MCE database."
  ]
}
