{
  "schema_version": "1.0.0",
  "model_id": "002",
  "catalog_model_id": "jbnx-m-002",
  "slug": "joey-nguyen",
  "name": "Joey Nguyen",
  "version": "0.5.0",
  "canonical_url": "https://www.jbnx.io/design/m/002",
  "character_type": "real_person_digital_twin",
  "age_direction": {
    "value": "mid-40s",
    "basis": "owner spec, 2026-10-28"
  },
  "status": "ACTIVE ANCHOR • SEED LOCKED",
  "production_status": "v0.5.0_reference_pack_complete",
  "theme": "Capture OS",
  "tokens": "/design/m/002/tokens.json",
  "catalog_entry": "/design/m/002/catalog.json",
  "authority": {
    "primary_asset_id": "joey-face-source-v004",
    "previous_primary_asset_id": "joey-face-source-v003",
    "body_asset_id": "joey-body-000-v005",
    "seed_asset_id": "joey-ref-c001-seed",
    "rule": "Joey's own photos are the identity originals and win any conflict. v0.5.0 takes its look from the portrait Joey uploaded on 2026-11-08 and the polished version he picked (round 5, P2), and its full set of angles from the character sheet he picked (V3). Likeness is checked with ArcFace against six of his real photos; his eye decides.",
    "geometry_note": "All eight angles are generated; no turnaround photo exists. The owner photos win any conflict.",
    "identity_reference": "assets/anchor-c001-seed-front.jpg (seed) plus the 12 further reference photos in assets[] — all from the owner's 'Joey Only' Google Photos album, shared by the owner for this project.",
    "approved_look_asset_id": "joey-look-p2-v005"
  },
  "identity": {
    "face": "East/Southeast Asian man in his mid-40s. Broad lower face with a soft, rounded jaw and chin; natural fullness beside the nose and mouth; narrow, slightly hooded eyes; wide nose base with a rounded tip; thin upper lip; his real age, never younger. Follow his real photos and the approved look (round-5 P2).",
    "hair": "Short tapered sides; top styled up into separate, messy, matte spikes at the height in the mirror photo (anchor-u01) — not taller, not glossy.",
    "facial_hair": "Strictly clean-shaven. No facial hair, no goatee — in every variant, every frame.",
    "eyes": "Direct eye-level gaze in anchor framing.",
    "eyewear": "None in Variants A and C. Modern clear-frame glasses in Variant B only.",
    "expression": "Calm and professional. His smile is a relaxed closed-mouth half smile, lips together; never a toothy or posed grin (owner, 2026-11-08: 'i don't smile like the other 2').",
    "build": "Slim, fit build: lean shoulders and arms, flat stomach, narrow waist (mirror photo, anchor-u01). Never heavier, rounder or wider.",
    "wardrobe": "Signature look (Variant A and the reference pack): black polo buttoned to the top button, open black blazer, black trousers, black dress shoes. Never an open collar."
  },
  "locked_features": [
    "facial proportions",
    "clean-shaven rule (no facial hair, no goatee)",
    "short dark hair",
    "apparent age (mid-40s)",
    "variant wardrobe assignments",
    "variant eyewear assignments"
  ],
  "shot_variables": [
    "scene",
    "script / narration",
    "camera framing (16:9 or 9:16)",
    "lighting within Capture OS"
  ],
  "capture_standard": {
    "framing": "Variant A medium close-up; Variant B chest-up; Variant C waist-up, 3/4 angle",
    "camera_height": "eye level",
    "lens": "85mm f/1.8 (full-frame prime)",
    "background": "reference pack: seamless medium slate-grey studio backdrop and floor; variant anchors: Capture OS deep navy, as specified",
    "lighting": "Capture OS: soft neutral key light, warm gold (#D4AF37) rim/hair light",
    "expression": "calm professional or his closed-mouth half smile, direct eye contact",
    "gaze": "direct at camera",
    "pitch_degrees": 0,
    "roll_degrees": 0,
    "texture": "natural skin detail; no beauty filter",
    "wardrobe": "Per variant — see variants[]",
    "pose": "Reference pack: upright neutral stance, arms relaxed at the sides, feet flat on one floor plane. Variant A/B facing camera; Variant C 3/4 body angle facing camera.",
    "reference_outfit": "Variant A (Executive) full body: black short-sleeve pique polo with every button fastened, open tailored black blazer, slim black trousers, black leather dress shoes."
  },
  "variants": [
    {
      "id": "m/002-a",
      "name": "Executive",
      "wardrobe": "Black short-sleeve pique polo, every button fastened to the top, under an open black blazer; black trousers",
      "detailed_wardrobe": "Joey's own everyday look (owner, 2026-11-08: 'im usually in black polo with black blazer and black pants'; 'i never unbutton top two'): black pique polo buttoned to the top button, tailored black blazer worn open, slim black trousers, black leather dress shoes.",
      "facial_hair": "Clean-shaven",
      "eyewear": "None",
      "aspect_ratios": [
        "16:9",
        "9:16"
      ],
      "slot_asset": "assets/anchor-slot-a.svg",
      "expected_anchor_asset": "assets/joey-anchor-a-v005.jpg",
      "expected_loop_asset": "assets/joey-loop-a-v001.mp4",
      "asset_status": "generated_accepted_by_owner",
      "reference_primary": "assets/anchor-u04-balcony.jpg",
      "reference_assets": [
        "assets/anchor-u04-balcony.jpg",
        "assets/anchor-u05-owner-portrait.jpg",
        "assets/anchor-c001-seed-front.jpg",
        "assets/anchor-u01-mirror.jpg"
      ],
      "reference_status": "Anchored to the owner's real photos (identity) and his approved look (round-5 P2 from his uploaded portrait), 2026-11-08.",
      "anchor_asset": "assets/joey-anchor-a-v005.jpg",
      "anchor_asset_id": "joey-anchor-a-v005",
      "anchor_note": "v0.5.0 anchor, generated from the approved look; ArcFace 0.704 against six of his real photos.",
      "loop_status": "not_made; motion baselines use Variant A"
    },
    {
      "id": "m/002-b",
      "name": "Studio Architect",
      "wardrobe": "Dark navy technical overshirt over black crew tee",
      "detailed_wardrobe": "Structured dark navy technical overshirt over a matte black crew neck tee",
      "facial_hair": "Clean-shaven",
      "eyewear": "Modern clear-frame glasses",
      "aspect_ratios": [
        "16:9",
        "9:16"
      ],
      "slot_asset": "assets/anchor-slot-b.svg",
      "expected_anchor_asset": "assets/joey-anchor-b-v005.jpg",
      "expected_loop_asset": "assets/joey-loop-b-v001.mp4",
      "asset_status": "generated_accepted_by_owner",
      "reference_primary": "assets/anchor-u04-balcony.jpg",
      "reference_assets": [
        "assets/anchor-u04-balcony.jpg",
        "assets/anchor-u05-owner-portrait.jpg",
        "assets/anchor-c001-seed-front.jpg",
        "assets/anchor-u01-mirror.jpg"
      ],
      "reference_status": "Anchored to the owner's real photos (identity) and his approved look (round-5 P2 from his uploaded portrait), 2026-11-08.",
      "anchor_asset": "assets/joey-anchor-b-v005.jpg",
      "anchor_asset_id": "joey-anchor-b-v005",
      "anchor_note": "v0.5.0 anchor, generated from the approved look; ArcFace 0.659 against six of his real photos.",
      "loop_status": "not_made; motion baselines use Variant A"
    },
    {
      "id": "m/002-c",
      "name": "Keynote Presenter",
      "wardrobe": "Midnight-navy quarter-zip sweater",
      "detailed_wardrobe": "Fitted midnight-navy quarter-zip sweater",
      "facial_hair": "Clean-shaven",
      "eyewear": "None",
      "aspect_ratios": [
        "16:9",
        "9:16"
      ],
      "slot_asset": "assets/anchor-slot-c.svg",
      "expected_anchor_asset": "assets/joey-anchor-c-v005.jpg",
      "expected_loop_asset": "assets/joey-loop-c-v001.mp4",
      "asset_status": "generated_accepted_by_owner",
      "reference_primary": "assets/anchor-u04-balcony.jpg",
      "reference_assets": [
        "assets/anchor-u04-balcony.jpg",
        "assets/anchor-u05-owner-portrait.jpg",
        "assets/anchor-c001-seed-front.jpg",
        "assets/anchor-u01-mirror.jpg"
      ],
      "reference_status": "Anchored to the owner's real photos (identity) and his approved look (round-5 P2 from his uploaded portrait), 2026-11-08.",
      "anchor_asset": "assets/joey-anchor-c-v005.jpg",
      "anchor_asset_id": "joey-anchor-c-v005",
      "anchor_note": "v0.5.0 anchor, generated from the approved look; ArcFace 0.712 against six of his real photos.",
      "loop_status": "not_made; motion baselines use Variant A"
    }
  ],
  "pipeline_metadata": {
    "recommended_voice": "Eleven Multilingual v2 (Custom Clone)",
    "stability": 0.55,
    "similarity": 0.75,
    "style": 0.08,
    "speaker_boost": true,
    "key_secret": "ELEVENLABS_KEY",
    "key_locations": [
      "Supabase Edge Function Secrets — jbnx project (ref ngjmqdzpnhwpybtssykz)",
      "Supabase Edge Function Secrets — fedm8 project",
      "Railway variable (owner-set 2026-10-28)"
    ],
    "key_status": "present_unverified_pending_injected_runtime_healthcheck"
  },
  "generation_prompt_template": "Generate {shot} of the same man. Image 1 (joey-look-p2-v005, approved look) and image 2 (joey-face-000-v005) set his face; images 3-5 are his real photos (anchor-u04 balcony, anchor-c001, anchor-u01 mirror — reversed) and win any conflict. Keep his face exactly: soft rounded jaw, natural cheek fullness, narrow hooded eyes, wide nose base, thin upper lip, his real age. Image 6 (nearest v0.5.0 body angle) sets his slim build and outfit. Hair: short sides, separate matte spikes, not taller than in the mirror photo. Strictly clean-shaven. Smile, if any, is closed-mouth with lips together. Wardrobe: {variant wardrobe}; eyewear only in Variant B (clear frames). Scene: {scene}. Lighting: Capture OS soft neutral key with a warm gold rim light. Photorealistic, natural skin texture, sharp focus; never slimmed, smoothed or younger. One person only, no text, no watermark.",
  "anchor_prompts": {
    "m/002-a": "Photorealistic studio portrait of Joey Nguyen, East/Southeast Asian man in his mid-40s, short dark spiked hair, strictly clean-shaven, no facial hair, no goatee. Wearing a black short-sleeve pique polo buttoned to the top button under an open tailored black blazer. Shot on full-frame 85mm f/1.8 lens, eye-level medium close-up, calm professional expression with a relaxed closed-mouth half smile, direct eye contact. Capture OS lighting: soft neutral key light, warm gold rim light (#D4AF37) on shoulder, dark deep-navy architectural background out of focus. --ar 16:9 --style raw",
    "m/002-b": "Photorealistic studio portrait of Joey Nguyen, East/Southeast Asian man in his mid-40s, short dark slightly spiked hair, strictly clean-shaven, no facial hair, no goatee. Wearing modern clear-frame glasses, structured dark navy technical overshirt over a matte black crew neck tee. Shot on 85mm f/1.8 prime lens, chest-up framing, direct eye-level gaze, relaxed approachable expression. Modern dark-mode studio backdrop (#0B132B) with subtle warm gold ambient accent lighting. --ar 16:9 --style raw",
    "m/002-c": "Photorealistic portrait of Joey Nguyen, East/Southeast Asian man in his mid-40s, short dark textured hair, strictly clean-shaven, no facial hair, no goatee. Wearing a fitted midnight-navy quarter-zip sweater. Shot on 85mm f/1.8 lens, waist-up framing, 3/4 body angle facing camera, clean dark navy-to-charcoal studio gradient background, crisp studio key light with warm gold hair light. --ar 16:9 --style raw"
  },
  "avoid": [
    "facial hair",
    "goatee",
    "beard stubble",
    "identity drift",
    "wrong eyewear for the variant",
    "beauty filter",
    "wide-angle distortion",
    "invented text or captions in frame",
    "body slimming, bulking or lengthening",
    "younger, older or thinner face",
    "shifted hairline or changed hair volume",
    "under-eye bags or puffiness",
    "neat, slicked or pompadour hair",
    "toothy, open-mouth or posed grin",
    "open collar or unbuttoned polo",
    "glossy or extra-tall hair",
    "younger or airbrushed skin",
    "narrower, slimmer or more tapered face than his real photos"
  ],
  "release_checks": [
    "Clean-shaven in every frame — reject any facial hair.",
    "Eyewear matches the variant (B only).",
    "Face matches the accepted anchor / owner identity reference.",
    "Wardrobe and Capture OS lighting match the variant spec.",
    "Record generator, version, seed and settings in production-ledger.json.",
    "Any spoken line matches a line Joey approved, in the voice Joey approved.",
    "Identity stays stable through motion, speech, blinks and the final frame."
  ],
  "assets": [
    {
      "id": "joey-anchor-slot-a-v001",
      "path": "assets/anchor-slot-a.svg",
      "role": "asset_slot_placeholder",
      "status": "archived",
      "version": "001",
      "notes": "Labeled slot only. NOT a photo of Joey Nguyen. Reference photos are wired (see the joey-ref-* assets); this slot still stands for the generated anchor, expected: assets/joey-anchor-a-v001.png.",
      "superseded_by": "joey-anchor-a-v003"
    },
    {
      "id": "joey-anchor-slot-b-v001",
      "path": "assets/anchor-slot-b.svg",
      "role": "asset_slot_placeholder",
      "status": "archived",
      "version": "001",
      "notes": "Labeled slot only. NOT a photo of Joey Nguyen. Reference photos are wired (see the joey-ref-* assets); this slot still stands for the generated anchor, expected: assets/joey-anchor-b-v001.png.",
      "superseded_by": "joey-anchor-b-v003"
    },
    {
      "id": "joey-anchor-slot-c-v001",
      "path": "assets/anchor-slot-c.svg",
      "role": "asset_slot_placeholder",
      "status": "archived",
      "version": "001",
      "notes": "Labeled slot only. NOT a photo of Joey Nguyen. Reference photos are wired (see the joey-ref-* assets); this slot still stands for the generated anchor, expected: assets/joey-anchor-c-v001.png.",
      "superseded_by": "joey-anchor-c-v003"
    },
    {
      "id": "joey-ref-c001-seed",
      "path": "assets/anchor-c001-seed-front.jpg",
      "role": "identity_reference_seed",
      "status": "reference_photo",
      "version": "001",
      "sha256": "eaeec94cf62ad4ba747888c6bb604afd7dead09cac7088d5ed9e141c6928e584",
      "size_bytes": 4364001,
      "dimensions_px": [
        4000,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipP5wXgZiGPUizMHaoVsyUuf3Qd8TOkqLDqJZXkP",
      "captured_on": "2026-10-01",
      "jev_score_out_of_4": 3.68,
      "notes": "Seed front reference. No hat, no glasses, clean-shaven, daylight balcony, face large, neutral. Most recent clean front shot.",
      "preservation": "original_pixels_metadata_stripped",
      "original_sha256": "22c13ea612228331e7d84970b81fd566fca050b120ccb39292735ce5ac3d7b1f",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "method": "EXIF/GPS and XMP removed without re-encoding (pixels identical; orientation tag kept).",
        "reason": "The original file carried GPS location data."
      }
    },
    {
      "id": "joey-ref-c027",
      "path": "assets/anchor-c027-profile.jpg",
      "role": "identity_reference_profile",
      "status": "reference_photo",
      "version": "001",
      "sha256": "97b95c550a01c194831facbd2f9a5eb72dc327f420ed929a649b533c70b3b1e6",
      "size_bytes": 3125003,
      "dimensions_px": [
        3000,
        4000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipPjydrXhCDBn17fyJ05TQMJle55MmciPY6qQfxv",
      "captured_on": "2026-01-26",
      "jev_score_out_of_4": 3.04,
      "notes": "Clean side profile, face very large, sharp haircut detail, hoodie.",
      "preservation": "original_pixels_metadata_stripped",
      "original_sha256": "35adae30a9754d85e4d1c71f2e9af59f32a52779934a4256cca24b7a4c96857f",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "method": "EXIF/GPS and XMP removed without re-encoding (pixels identical; orientation tag kept).",
        "reason": "The original file carried GPS location data."
      }
    },
    {
      "id": "joey-ref-c025",
      "path": "assets/anchor-c025-front-coat.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "e154d6185387a46a71638008c64b91dc7ab1462feabeeb18ce36046a459ca9fa",
      "size_bytes": 1102336,
      "dimensions_px": [
        1316,
        2567
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipMyfBF25ExlQOeIWVN7EYshFvEKmMrHsaOY22r6",
      "captured_on": "2026-02-13",
      "jev_score_out_of_4": 2.59,
      "notes": "Front, brown coat over dark, museum hall; crop left half to solo. Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "8c0673412dfc1f5c045c52bf24c12952af9fd2e8df276fef2e89938aa316a47f",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          271,
          433,
          1587,
          3000
        ],
        "pixelated_face_boxes_px": [
          [
            1381,
            1368,
            1587,
            2682
          ]
        ],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-ref-c010",
      "path": "assets/anchor-c010-front-smile.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "d40b21b649a8a2f5373e273f51f004065688929933680ca35c4ea7ea6e627e86",
      "size_bytes": 1130680,
      "dimensions_px": [
        1149,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipMw6njL3DXVZG452YPe09uXv6FWH1QsT4AGS3WD",
      "captured_on": "2026-08-14",
      "jev_score_out_of_4": 2.34,
      "notes": "Front smile, mint polo, restaurant; others at frame edges, croppable. Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "9de907685137d9f92fb2f111d2bf62a30f14c21a39b0fd25ee0a1e1626ff511f",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          0,
          0,
          1149,
          3000
        ],
        "pixelated_face_boxes_px": [
          [
            1090,
            644,
            1149,
            1467
          ]
        ],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-ref-c039",
      "path": "assets/anchor-c039-executive-blazer.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "205153ce0797d587622c5a956f7a9c33c89ce18a77ffe702b28e60b515021442",
      "size_bytes": 729618,
      "dimensions_px": [
        1158,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipMOlXLkEB81miGuHbbTfc9_24GYm3voRMxDoJWE",
      "captured_on": "2025-11-08",
      "jev_score_out_of_4": 2.18,
      "notes": "Variant A wardrobe reference: brown blazer over dark tee, theater. Closest wardrobe match to Executive; NOT the midnight-navy blazer spec shot (gap). Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "2ec4e958f29ae1973a32d853056f6078b7b79c575ae4d11884e0500a393a7524",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          2194,
          0,
          3352,
          3000
        ],
        "pixelated_face_boxes_px": [
          [
            2194,
            149,
            2299,
            421
          ],
          [
            2981,
            429,
            3329,
            868
          ],
          [
            3273,
            431,
            3352,
            1168
          ],
          [
            3277,
            280,
            3352,
            714
          ],
          [
            2194,
            709,
            2430,
            2131
          ],
          [
            2319,
            253,
            2529,
            532
          ],
          [
            2417,
            197,
            2546,
            354
          ],
          [
            2919,
            338,
            3062,
            578
          ]
        ],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-ref-c110",
      "path": "assets/anchor-c110-front-lobby.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "0bee6bbc600ef9efed82df86213ab41f824088ab5ab77e8a2ee076d892334588",
      "size_bytes": 2795358,
      "dimensions_px": [
        4000,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipMl-hd94VoRDnp8_6H-0XIM-cX3VeCgaS54UnQG",
      "captured_on": "2024-10-05",
      "jev_score_out_of_4": 2.24,
      "notes": "Front neutral, bright clean lobby, tan jacket, VETERAN cap.",
      "preservation": "original_pixels_metadata_stripped",
      "original_sha256": "63f0621b2ad19722b83191e054b23258bcface64774a10ef3ddb1aac34cc926f",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "method": "EXIF/GPS and XMP removed without re-encoding (pixels identical; orientation tag kept).",
        "reason": "The original file carried GPS location data."
      }
    },
    {
      "id": "joey-ref-c074",
      "path": "assets/anchor-c074-front-smile-home.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "23c4a229549ee95d0c4f076b81b38255170ed640852201ccc8a9334dfff49fbf",
      "size_bytes": 832394,
      "dimensions_px": [
        1027,
        2470
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipMOOGplh66ub5FJ6ZzJs6Tml3hPHFrZUUDPZmdW",
      "captured_on": "2025-03-22",
      "jev_score_out_of_4": 2.19,
      "notes": "Front smile, white collared shirt, big smile, foreground. Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "22e876e4d540224bb861142932d97cd4a9c8502bae8f4b4566d10c3d886b0951",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          0,
          530,
          1027,
          3000
        ],
        "pixelated_face_boxes_px": [
          [
            994,
            984,
            1027,
            1376
          ]
        ],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-ref-c161",
      "path": "assets/anchor-c161-front-close.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "b48eda39998a0b2d0a993d51cbdf1ca3b141d9c7c1ad23f017531803fe6b0994",
      "size_bytes": 3758593,
      "dimensions_px": [
        4000,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipMOwpUL22LtUFfF0tFztzeh39nJhH7b0Jws0gZW",
      "captured_on": "2024-05-16",
      "jev_score_out_of_4": 2.18,
      "notes": "Front close, no hat, face very large, neutral; hair longer than the current cut.",
      "preservation": "original_pixels_metadata_stripped",
      "original_sha256": "ff75eb243b7c2cb8601d655d84abe2aeda101df9cec849d5e3868d4a80d49e3b",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "method": "EXIF/GPS and XMP removed without re-encoding (pixels identical; orientation tag kept).",
        "reason": "The original file carried GPS location data."
      }
    },
    {
      "id": "joey-ref-c071",
      "path": "assets/anchor-c071-keynote-quarterzip.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "921b5e8236b8720a3f619f0aa65402229800e22ecd68dc1f47ab347f6745a791",
      "size_bytes": 1479929,
      "dimensions_px": [
        1677,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipMFv-VWxOoXs2SNg_D4ViVYJkbyUCOMl0D1PEJ-",
      "captured_on": "2025-04-07",
      "jev_score_out_of_4": 2.08,
      "notes": "Variant C wardrobe reference: quarter-zip sweater, office, light cap. Garment type matches Keynote; color is cream, not midnight-navy (gap). Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "7dbc8aaaf10527966ce4bd66f9d041fe95870544969d77570d9270fab2fb267b",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          0,
          0,
          1677,
          3000
        ],
        "pixelated_face_boxes_px": [
          [
            1544,
            0,
            1677,
            1411
          ]
        ],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-ref-c023",
      "path": "assets/anchor-c023-studio-desk.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "version": "001",
      "sha256": "7e4a34c58374baad0786ff4f29eff18f29b0808622563d1a7fd7d80fbd53e35c",
      "size_bytes": 3165283,
      "dimensions_px": [
        4000,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipNlSeBFEHB44CeftxVYsuezjmQn4zxPIAGmloX4",
      "captured_on": "2026-03-15",
      "jev_score_out_of_4": 2.02,
      "notes": "Variant B context reference: at a desk with monitors, red cap, glasses perched on the cap, front neutral.",
      "preservation": "original_pixels_metadata_stripped",
      "original_sha256": "7bfabff04db2a174dd64965279b60bf035e230485b36ad396b3c6dc7d1c6e985",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "method": "EXIF/GPS and XMP removed without re-encoding (pixels identical; orientation tag kept).",
        "reason": "The original file carried GPS location data."
      }
    },
    {
      "id": "joey-ref-c102",
      "path": "assets/anchor-c102-front-extreme-close.jpg",
      "role": "identity_reference_face_detail",
      "status": "reference_photo",
      "version": "001",
      "sha256": "2d4d671ba89cf28e8505496286011b34e72a8736f160b269593de13e5ace0d64",
      "size_bytes": 1541990,
      "dimensions_px": [
        1640,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipOxAk6Q0Bk6QFz5v0BpskFfcqBnT1W2_dNAab2n",
      "captured_on": "2024-10-21",
      "jev_score_out_of_4": 1.5,
      "notes": "Face detail: extreme close-up, maximum face detail; grey cap and transit background. Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "9dd2cd3200b46579db7b588a1a2dc9120d494aad05b4e9bf0f7171e7d43932f0",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          0,
          0,
          1640,
          3000
        ],
        "pixelated_face_boxes_px": [],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-ref-c145",
      "path": "assets/anchor-c145-glasses.jpg",
      "role": "identity_reference_glasses",
      "status": "reference_photo",
      "version": "001",
      "sha256": "e059ebbe8fb4da95f1a1b0068ef10edef2eca35d61d1725562b12e3d8f4fcf2a",
      "size_bytes": 1842926,
      "dimensions_px": [
        1805,
        3000
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipN_YY35obRxEOsyKkoCUG0IuII4jN93AOG525eN",
      "captured_on": "2024-07-13",
      "jev_score_out_of_4": 1.33,
      "notes": "Variant B glasses reference: only clear-glasses close front shot in the sampled set; wears a cap, companions croppable. A no-cap glasses shot is still missing (gap). Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "247d9bc4d0cc1af4c173a991fc42a076ebe4d52a3d3a07097f2212aba05d8a83",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          0,
          0,
          1805,
          3000
        ],
        "pixelated_face_boxes_px": [
          [
            1733,
            840,
            1805,
            1746
          ]
        ],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-ref-c050",
      "path": "assets/anchor-c050-fullbody-suit.jpg",
      "role": "wardrobe_reference_full_body",
      "status": "reference_photo",
      "version": "001",
      "sha256": "b39dd973de72cfbcc7269c6f23b2f008daae15982a183fd8b53f49494ba7f98d",
      "size_bytes": 920169,
      "dimensions_px": [
        970,
        3050
      ],
      "source": "Owner's 'Joey Only' Google Photos album, shared by the owner for this project; selected 2026-10-28.",
      "album_item_id": "AF1QipODXo2EvIn8conz9n7wl3BPaPhmkFeZiFFLR9Qm",
      "captured_on": "2025-09-12",
      "jev_score_out_of_4": 1.24,
      "notes": "Full-body wardrobe reference only: light grey suit at night; face small, partner leaning. Not a face anchor. Published as a Joey-only privacy crop (2026-10-31); the full original is not published.",
      "preservation": "privacy_crop",
      "original_sha256": "509117209e7386ee752240a92bac06d4d5cf2794923162d4aaa9b3b121da53b5",
      "privacy_edit": {
        "date": "2026-10-31",
        "approved_by": "Joey Nguyen (owner)",
        "crop_box_px": [
          1380,
          900,
          2350,
          3950
        ],
        "pixelated_face_boxes_px": [
          [
            1384,
            1242,
            1761,
            1711
          ]
        ],
        "method": "Cropped to Joey (ArcFace match to his own photos); any other face inside the crop pixelated (5 blocks across). Re-encoded JPEG q95 4:4:4 with no EXIF. Recheck: only Joey's face detected (InsightFace, threshold 0.3).",
        "reason": "Other people in the original photo. Only Joey may be identifiable on the public page."
      }
    },
    {
      "id": "joey-face-source-v003",
      "path": "assets/joey-face-source-v003.jpg",
      "role": "face_authority",
      "origin": "derived_restoration",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 1723809,
      "sha256": "574f5cc522c47eca25b8d56c24c8658dc6f56dbb60d7c3da917c216761171535",
      "notes": "Joey-only crop of the owner photo anchor-c010 (box 0,300-1000,1900; no other person in frame), restored 2x with fal Topaz Recovery V2 (face enhancement 0.6, face creativity 0). Pixel geometry unchanged (correlation 0.994 with the crop). Chosen over Low Resolution V2 (over-smoothed) and High Fidelity V2 (added grain).",
      "width": 2000,
      "height": 3200,
      "derived_from": "joey-ref-c010",
      "provider": "fal",
      "endpoint": "fal-ai/topaz/upscale/image",
      "provider_request_id": "01a19341-3965-7d31-b5a8-a088c48aca00",
      "qa_status": "accepted",
      "superseded_by": "joey-face-source-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-000-v003",
      "path": "assets/joey-body-000-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3209603,
      "sha256": "41875c43757cc335a70f67a53d3d6b84f504e311cd8f3355b84d3ec80e9e474f",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-9cc4-7490-b86a-4af53c14adfd",
      "prompt_sha256": "7a63a869d7e06a11054ef8bc451f0e51f39367437fc41a5b12625f0945f05562",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 0,
      "superseded_by": "joey-body-000-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-045-v003",
      "path": "assets/joey-body-045-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3186612,
      "sha256": "5d7c1cc3921ead226d536d9bfe80e5b286cf460c63bcdb9d1cf2f195a7db9093",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing. Re-roll (seed 2003): the first take turned only the head.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19347-94b9-7a01-8cfe-a2c42b469e57",
      "prompt_sha256": "6c1fdb2baef6bc9b886480299404457236e38a9575c4cb6181158555e9ff4b57",
      "seed": 2003,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 45,
      "superseded_by": "joey-body-045-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-090-v003",
      "path": "assets/joey-body-090-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3125911,
      "sha256": "a57b154e579c51b81ac7d9c89ded1d161a4f86029565b87dfc748533c9838052",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-9fbb-7743-95bf-910abd1fa347",
      "prompt_sha256": "ea67dbe84881ce6758cf7dfff4d6660af905d8a370abfff99d5607e9bad91b1c",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 90,
      "superseded_by": "joey-body-090-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-135-v003",
      "path": "assets/joey-body-135-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3119803,
      "sha256": "dacb67e1818e2c700d69e77fb21ef1273e56850d45e9c948ad878bec61e8640b",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a0b8-7ce1-8b8c-c5be99c5926b",
      "prompt_sha256": "7071cbc0ff45495e78c0e1bb6b7fa0bca9d32809d6d796bedab873118aab50a0",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 135,
      "superseded_by": "joey-body-135-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-180-v003",
      "path": "assets/joey-body-180-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3193783,
      "sha256": "4de725c84c056362bcaf69040bce3c09b3939d69d29624cf9fc27f959e70aec6",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a24b-74b3-8f8b-0542224b9125",
      "prompt_sha256": "4e913cd6bbd5e583cdbe430043340f844021692beb2bbd110a7bb6eac7874100",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 180,
      "superseded_by": "joey-body-180-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-225-v003",
      "path": "assets/joey-body-225-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3086137,
      "sha256": "4036aa95a06f624d02a05d7c0479c0591dbf6ca7c6880b268bfd6f20c9653d8b",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a3c9-75b2-a15e-ffca6bc25034",
      "prompt_sha256": "7abcdc30a30f53dc4cbfdffa88a95239b366c3994f2632d3250ff1b4c5eb9a76",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 225,
      "superseded_by": "joey-body-225-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-270-v003",
      "path": "assets/joey-body-270-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3132734,
      "sha256": "c2b6c4c57c256a8b5ccc7a1168ac6e37db6d5cdec0232ce5184104a21ad435b3",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a4e0-7513-bbda-f056b66326dc",
      "prompt_sha256": "9fa4a6ac969d6fa69bc6f55602b79b29340feeff144d39acde324d2bc162fa67",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 270,
      "superseded_by": "joey-body-270-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-body-315-v003",
      "path": "assets/joey-body-315-v003.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3239106,
      "sha256": "3c34fe0700967fd56adb7cd861d90126bcac555940242942e08585529b1a8f83",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a5cd-7ea3-b659-ab2c794b51e4",
      "prompt_sha256": "cecbc77892d94a361185615a3fa01a237ca62f1e5f810702bf00bb3f24e6b157",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 315,
      "superseded_by": "joey-body-315-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-face-000-v003",
      "path": "assets/joey-face-000-v003.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4475114,
      "sha256": "26dc70de8eab2b392159c2d4dc93477c52a7c6427fd32f53ffbd4c810608ff48",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a792-7102-90ef-3d81bd3302b7",
      "prompt_sha256": "2bf23c711cf752ea3563d620095abafcdb14a634e2f7fbb70dc637bad6317035",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 0,
      "superseded_by": "joey-face-000-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-face-045-v003",
      "path": "assets/joey-face-045-v003.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4336726,
      "sha256": "f1bd1b67726cfca0dc1a7bd19d08839cdd9b80f9acf2bb18806ff329c001eedc",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a86d-70c3-b2d4-9285388ce1b3",
      "prompt_sha256": "6bae246b02cd9ea239021d690841ac6e85c7dfd77683b0e5a4c1bb7bcfa0fd8c",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 45,
      "superseded_by": "joey-face-045-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-face-090-v003",
      "path": "assets/joey-face-090-v003.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4179574,
      "sha256": "e9a7bc31ca34d8a33da66668ae94d5e55fa127821aa3f4c15fd7484c4e416ebc",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-a950-7401-93fc-2f817de3706e",
      "prompt_sha256": "814d7eb544db7fd5c3ff9bcc4f47230d4a79df00c0243d7221d2c2d4974fb801",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 90,
      "superseded_by": "joey-face-090-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-face-270-v003",
      "path": "assets/joey-face-270-v003.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4467028,
      "sha256": "f3d1d38ddcf539c8b392f7b258b6061b979444b4150766d3238fc1616bef7f19",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-aa27-7030-9daa-33c9fe61bf32",
      "prompt_sha256": "138b92824386e41b299207165bb221e985fa97377b36602e0d3e795c32115b35",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 270,
      "superseded_by": "joey-face-270-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-face-315-v003",
      "path": "assets/joey-face-315-v003.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4567088,
      "sha256": "d20526a9f17e5cf299bdbfc80858a270e9a817a68eb203607d3649cbd4d46834",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-ab13-7a82-a09c-7bc0c8681b22",
      "prompt_sha256": "736b19cb299fa2830d0cb50b9e39487717b88f71344ec8ce5d01bf882577a3c2",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "yaw_degrees": 315,
      "superseded_by": "joey-face-315-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-expression-smile-v003",
      "path": "assets/joey-expression-smile-v003.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4569377,
      "sha256": "f0aaeca078c43f704bbeb80a9ed5cf7fc47c9590684cc8a218733048ba9c724a",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-ac09-74a1-9851-5fd582d23913",
      "prompt_sha256": "61fe48d3eb9afefd7081937aad47b231844374fcb269dd3edbb8345bb91c68b4",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "superseded_by": "joey-expression-smile-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-expression-eyesclosed-v003",
      "path": "assets/joey-expression-eyesclosed-v003.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4836513,
      "sha256": "1584e1fbbfe50c65d8c04dd8df7bee624c3ea17ac46ae3d6bfef5f2a3d3d35b7",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-ae54-7473-8973-d95fe39934a6",
      "prompt_sha256": "721d8024284b870b8bb86cb54803fcfa9f8a6e65fad237e7cf0019ba07ee251f",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "superseded_by": "joey-expression-eyesclosed-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-expression-speaking-v003",
      "path": "assets/joey-expression-speaking-v003.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 4287634,
      "sha256": "ab09b8bd5391e6dde99bafb77544eebf58c039c94010bb4b4bc2853e6272aa35",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-afca-7743-b69e-67ad4d6ad100",
      "prompt_sha256": "69def53453f34c2bc3f753a511614118f9fff1bba197f14370787b8e0048cae2",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "superseded_by": "joey-expression-speaking-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-motion-floor-v003",
      "path": "assets/joey-motion-floor-v003.jpg",
      "role": "scene_first_frame",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3170428,
      "sha256": "05785721c89f0fc2e209ef510c9d7596cfa89dc0c332af778b2693e9dacbf656",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-b0dd-7322-a370-d1305d6308b2",
      "prompt_sha256": "412a13b3a1ce22f1e4b269f54a69c49ccd51e3784252c16379d87955e94b4565",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "superseded_by": "joey-motion-floor-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-motion-chair-v003",
      "path": "assets/joey-motion-chair-v003.jpg",
      "role": "scene_first_frame",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3258154,
      "sha256": "3b8e7cbcedb77a4f7854d42caab87255bfc3eeb87cfa8cd4e9a1c211b7d30725",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing. Re-roll (seed 2003), accepted with a stated deviation: an armchair on image right instead of an armless chair on image left; fully in frame with a clear seat, so it works as the sit first frame.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19347-962a-7d32-b487-0307900a0032",
      "prompt_sha256": "51bfce7e1051afdcb8409a0cc701cfb4f7490c639c3812add122e76fc9ba3268",
      "seed": 2003,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "superseded_by": "joey-motion-chair-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-anchor-a-v003",
      "path": "assets/joey-anchor-a-v003.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3284100,
      "sha256": "8d0ebf39e4c983d6cde35f7438efdaeb9ee0a9fe155d26ca4efdf87d95f4e12d",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing. Awaiting Joey's acceptance before it becomes authoritative for its variant.",
      "width": 5504,
      "height": 3072,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-b328-7012-b444-f9c17f158ca5",
      "prompt_sha256": "01d931609399474ad6278065f5369d953a3ee8070ea46bca13a8a7ed2ec27a0e",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "variant": "m/002-a",
      "superseded_by": "joey-anchor-a-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-anchor-b-v003",
      "path": "assets/joey-anchor-b-v003.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3267722,
      "sha256": "353f00e414e30f7c66a415aec71cb0a9f628dbf7a4e1a2e82530b6f3a3b28e70",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing. Awaiting Joey's acceptance before it becomes authoritative for its variant.",
      "width": 5504,
      "height": 3072,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-b49a-71a0-9e63-924decac8124",
      "prompt_sha256": "0654cf9abe393e92119c3f69ee090266c9dafd911d87e404a1eae50bc22bbe5f",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "variant": "m/002-b",
      "superseded_by": "joey-anchor-b-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-anchor-c-v003",
      "path": "assets/joey-anchor-c-v003.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 3558298,
      "sha256": "4b12165550c231fba4ce957c6c0c66f1af096a4729f7724f776f5e338f4d5d7b",
      "notes": "Generated at 4K from Joey's restored face photo, his restored full-body photo and two more of his own photos; lead visual review passed identity, clean-shaven rule, direction and framing. Awaiting Joey's acceptance before it becomes authoritative for its variant.",
      "width": 5504,
      "height": 3072,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a19342-b60b-73a1-b6f5-c6bfaedabbb2",
      "prompt_sha256": "a439dbe1599464ab8d3a2373f192b3bf7b1f73e317ed6e617445002ca3e5d674",
      "seed": 2002,
      "inputs": [
        "joey-face-source-v003",
        "body-src (restored, unpublished)",
        "profile-src (unpublished crop of anchor-c027)",
        "front2-src (unpublished crop of anchor-c025)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
      "variant": "m/002-c",
      "superseded_by": "joey-anchor-c-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-360-v003",
      "path": "assets/joey-360-v003.jpg",
      "role": "turnaround_sheet",
      "origin": "derived_composite",
      "status": "archived",
      "version": "003",
      "media_type": "image/jpeg",
      "size_bytes": 2124482,
      "sha256": "811a3d4f1c264e3774f623263c91ece830d6a8dc431928f84d5caf926b05d33e",
      "notes": "Contact sheet of the eight v0.3.0 body views (000-315, row-major, 4 x 2); local composite, no generation.",
      "width": 3572,
      "height": 3200,
      "qa_status": "accepted",
      "superseded_by": "joey-360-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-motion-turn-v003",
      "path": "assets/joey-motion-turn-v003.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "video/mp4",
      "size_bytes": 3573142,
      "sha256": "93b374a88f766910597840ee9ac1acf37103076b076b9cb5499ab3c48a84f99e",
      "notes": "Turn baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-motion-floor-v003.",
      "width": 1072,
      "height": 1928,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "9f20dbe4ca1a95033f79bc5a5eb1823a",
      "prompt_sha256": "0272e94b2731b3e841c128755aa53b4e1cbaefd5ae9cf0fade833bbcfead5f13",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-motion-floor-v003",
      "qa_status": "accepted",
      "superseded_by": "joey-motion-turn-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-motion-walk-v003",
      "path": "assets/joey-motion-walk-v003.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "video/mp4",
      "size_bytes": 5327473,
      "sha256": "957eeb1ba1d2e3081241856afa0ead77dda8af0b8741f043b511d8a0e7541fcb",
      "notes": "Walk baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-motion-floor-v003.",
      "width": 1072,
      "height": 1928,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "04f7d7830bcd44abb0041ae5c2608219",
      "prompt_sha256": "093d6056d6b864c2fdb89470aef6ad678f7ff1df24672df4a1ed11e32565cf53",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-motion-floor-v003",
      "qa_status": "accepted",
      "superseded_by": "joey-motion-walk-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-motion-sit-v003",
      "path": "assets/joey-motion-sit-v003.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "video/mp4",
      "size_bytes": 3899525,
      "sha256": "81688dfd3b5e1b285270b6b1a94aadbf3ac40683594d93c008ef58fcfc85c24f",
      "notes": "Sit baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-motion-chair-v003.",
      "width": 1072,
      "height": 1928,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "f48fc4a1f36d185308e70c8d00fefc1b",
      "prompt_sha256": "4003e12e618ae50264157bcb6a08eb795b2368ba1ecccd331a658c22c9c5552a",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-motion-chair-v003",
      "qa_status": "accepted",
      "superseded_by": "joey-motion-sit-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-motion-talk-v003",
      "path": "assets/joey-motion-talk-v003.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "video/mp4",
      "size_bytes": 8648547,
      "sha256": "8854ad243e87c764ce2c6218d5a80b1acc2cf78b55689b1606f255e54b7dcb8d",
      "notes": "Talk baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-face-000-v003.",
      "width": 1292,
      "height": 1604,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "51cd57e5f734c078949b0b1753031989",
      "prompt_sha256": "17799649cf3b275c1e80355214ffa8376cd77fa38f916e69cf24231ea16150ed",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-face-000-v003",
      "qa_status": "accepted",
      "superseded_by": "joey-motion-talk-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-voice-sample-v003",
      "path": "assets/joey-voice-sample-v003.mp3",
      "role": "voice_sample",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "audio/mpeg",
      "size_bytes": 64826,
      "sha256": "e099e968c4000a427119a66154a19f92e3ede5f82b1501b77ac6d17b27ab003d",
      "notes": "ElevenLabs 'Joey v4.0' (cloned voice in the owner's account), eleven_multilingual_v2, stability 0.55, similarity 0.75, style 0.08, speaker boost on. Line drafted by the agent; awaiting Joey's approval.",
      "duration_seconds": 4.022857,
      "codec": "mp3",
      "audio_streams": 1,
      "provider": "ElevenLabs",
      "voice_id": "6smp824BEteJs0eHretZ",
      "text": "Hi, I'm Joey Nguyen. This is my reference model for JBNX Design.",
      "text_sha256": "8ff843d09db6f70f9caa004b549c5c55fe19ea1c36a4aed14b558a9c2a4038a7",
      "qa_status": "accepted_pending_subject_approval",
      "superseded_by": "joey-voice-sample-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-voice-proof-v003",
      "path": "assets/joey-voice-proof-v003.mp4",
      "role": "voice_proof",
      "origin": "generated",
      "status": "archived",
      "version": "003",
      "media_type": "video/mp4",
      "size_bytes": 9298417,
      "sha256": "a2268664b1443144d1d09ae7a1f872f7d2caccf8be65a42d674ab256f0fa21b1",
      "notes": "Audio-driven proof: the accepted talk baseline lip-synced by fal Sync Lipsync 2 Pro to the voice sample. Only the mouth region is edited.",
      "width": 1292,
      "height": 1604,
      "duration_seconds": 4.0,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 1,
      "generator": "fal fal-ai/sync-lipsync/v2 (lipsync-2-pro, cut_off)",
      "provider_request_id": "01a19351-3d8f-7462-888b-14ff479f795a",
      "source_video_asset_id": "joey-motion-talk-v003",
      "qa_status": "accepted_asr_waveform_visual",
      "superseded_by": "joey-voice-proof-v004",
      "archive_reason": "Owner rejected v0.3.0 on 2026-10-31: heavier than him; wrong anchor photos (c010 face, c050 body)."
    },
    {
      "id": "joey-ref-u01-mirror",
      "path": "assets/anchor-u01-mirror.jpg",
      "role": "body_and_hair_reference",
      "status": "reference_photo",
      "preservation": "preserved_original",
      "version": "004",
      "sha256": "bb9b4674fc296839b219ceabc8e112fe61bd33de406594cdf83d0395c02b3782",
      "size_bytes": 432065,
      "dimensions_px": [
        1518,
        2408
      ],
      "source": "Supplied by the owner in chat on 2026-10-31 as the target look.",
      "captured_on": null,
      "jev_score_out_of_4": null,
      "notes": "Mirror photo (left-right reversed; flipped before use). Slim, fit build and the tall spiked hair."
    },
    {
      "id": "joey-ref-u02-cap-three-quarter",
      "path": "assets/anchor-u02-cap-three-quarter.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "preservation": "preserved_original",
      "version": "004",
      "sha256": "b0919433b688bfd1b2dbc53e627966f95123a0223e41b5d78e6de2c9ac4d5c8b",
      "size_bytes": 557311,
      "dimensions_px": [
        1659,
        2212
      ],
      "source": "Supplied by the owner in chat on 2026-10-31 as the target look.",
      "captured_on": null,
      "jev_score_out_of_4": null,
      "notes": "Three-quarter selfie in a cap. Used for scoring only in v0.4.0."
    },
    {
      "id": "joey-ref-u03-cap-front",
      "path": "assets/anchor-u03-cap-front.jpg",
      "role": "identity_reference",
      "status": "reference_photo",
      "preservation": "preserved_original",
      "version": "004",
      "sha256": "4fb211cd56de912854227c7233b5b450aa511a7d4ca0c26885140fbe56abfe40",
      "size_bytes": 317458,
      "dimensions_px": [
        2212,
        1659
      ],
      "source": "Supplied by the owner in chat on 2026-10-31 as the target look.",
      "captured_on": null,
      "jev_score_out_of_4": null,
      "notes": "Front smile in a cap; eyes, nose and mouth reference (logo text cropped out before use)."
    },
    {
      "id": "joey-ref-u04-balcony",
      "path": "assets/anchor-u04-balcony.jpg",
      "role": "face_authority_source",
      "status": "reference_photo",
      "preservation": "preserved_original",
      "version": "004",
      "sha256": "9a5ef1d95559a968f130d251e287e21796874fac542989557a98477ff04e840a",
      "size_bytes": 597353,
      "dimensions_px": [
        1764,
        2081
      ],
      "source": "Supplied by the owner in chat on 2026-10-31 as the target look.",
      "captured_on": null,
      "jev_score_out_of_4": null,
      "notes": "Balcony selfie at natural camera height. Owner: 'use this to anchor photo'."
    },
    {
      "id": "joey-face-source-v004",
      "path": "assets/joey-face-source-v004.jpg",
      "role": "face_authority",
      "origin": "derived_restoration",
      "status": "active",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 850927,
      "sha256": "1743c210a93f7356b724aa7a5ec04e9ebb28bc76686eace8563679b19ba3cb1e",
      "notes": "The owner's balcony selfie (anchor-u04, box 0,480-760,1560) restored 2x with fal Topaz Recovery V2 (face enhancement 0.6, face creativity 0); geometry unchanged (correlation 0.996).",
      "width": 1520,
      "height": 2160,
      "derived_from": "joey-ref-u04-balcony",
      "provider": "fal",
      "endpoint": "fal-ai/topaz/upscale/image",
      "provider_request_id": "01a193d6-9220-7a62-b93c-f6af87b43826",
      "qa_status": "accepted"
    },
    {
      "id": "joey-body-000-v004",
      "path": "assets/joey-body-000-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3225229,
      "sha256": "885e0d29f2e51d0159373ecea8c0d120676faf31f041a3b552bee522bc851f78",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193d7-20e1-7ce0-9623-c1c05ad85a3f",
      "prompt_sha256": "f3d5fc30ffb8931511e7ea7afe522b62dec6ab9529c9a4a71359e47a6a573df8",
      "seed": 6002,
      "receipt": "body-000-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 0,
      "superseded_by": "joey-body-000-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-body-045-v004",
      "path": "assets/joey-body-045-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3117956,
      "sha256": "f6c997857929198ff6fb1d5555f0661becd99914109dd63d1a6a3294fa43667d",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-12ec-7682-9406-29c5f4d0461a",
      "prompt_sha256": "c41bb21551ac6f4ec4e6f853f70986f772cf2bd3284734366233cf5b755c00fc",
      "seed": 6002,
      "receipt": "body-045-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 45,
      "superseded_by": "joey-body-045-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-body-090-v004",
      "path": "assets/joey-body-090-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3116879,
      "sha256": "b127ef33499bd550267aedab08c4b5e4ae2017614eb7787d09002477a334595b",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-13c0-7612-a2d2-a6acd41817b9",
      "prompt_sha256": "e293e9423b41afa8f9b21e7923bb1fb98dd3e094d64be93fed8b2a27189e757a",
      "seed": 6002,
      "receipt": "body-090-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 90,
      "superseded_by": "joey-body-090-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-body-135-v004",
      "path": "assets/joey-body-135-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3222912,
      "sha256": "f1f708425c17f89380f53a6d4e89eda194e673bdb654643b8abdc5a23e849241",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1536-70f1-93f4-beb8b685b56f",
      "prompt_sha256": "e00333a369d5c5676cd9d424851f1cd9aaa0dc5c51e843237c209f262f01ccf2",
      "seed": 6002,
      "receipt": "body-135-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 135,
      "superseded_by": "joey-body-135-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-body-180-v004",
      "path": "assets/joey-body-180-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3178404,
      "sha256": "e23d27a00c94a0a9502fe0491e956b713b0ad43526435091551cd3f2fc5e50ba",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1648-7fe0-8a6f-e8d4e9a1bf62",
      "prompt_sha256": "af748f0bed7044e84ff004a0c14d6a9df7ba43512bac9b0c04d246d2f2d5b230",
      "seed": 6002,
      "receipt": "body-180-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 180,
      "superseded_by": "joey-body-180-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-body-225-v004",
      "path": "assets/joey-body-225-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3176359,
      "sha256": "4873752826b45af8380a40788b900ad93756f688e282e27708af09a11ff878ca",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1736-7a81-962b-0c60bed99c07",
      "prompt_sha256": "8ab9fe4acab692ff464b394888f1b3117868ebb3f32dabf3c6dc07cd66ff3f68",
      "seed": 6002,
      "receipt": "body-225-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 225,
      "superseded_by": "joey-body-225-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-body-270-v004",
      "path": "assets/joey-body-270-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3130036,
      "sha256": "bd973e10bca9114eaabb40ba88673fb4dd2d65f78e00ca24960954b9e5c63309",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1822-7ae1-950f-ac75dec5c9fb",
      "prompt_sha256": "9cfd683cd10bd537682727c2922bfe2a0df0653f9d6fc59707668ca03b70405a",
      "seed": 6002,
      "receipt": "body-270-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 270,
      "superseded_by": "joey-body-270-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-body-315-v004",
      "path": "assets/joey-body-315-v004.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3193273,
      "sha256": "70d5e7371c92dcdc69f45b08258177de9b05011b78d2241c12b650a5ff71e9ab",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1989-7be2-b362-2ce5255a6806",
      "prompt_sha256": "072fbc84a1451783e52e8e123d58a2beb287c74547334e6808d907941ec4ed4e",
      "seed": 6002,
      "receipt": "body-315-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 315,
      "superseded_by": "joey-body-315-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-face-000-v004",
      "path": "assets/joey-face-000-v004.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4263057,
      "sha256": "e9c0d9f0de8555b51e45269dfbd7b595a88b4ee7c50e2a15158cf51c60931942",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193d7-1f38-72d2-99d5-e3b48d8a2883",
      "prompt_sha256": "f2a957216f1c37bd40e7cc7fcb193d3e79b6f0d3a58d78dc1eaf0bf59a3f284e",
      "seed": 6002,
      "receipt": "face-000-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 0,
      "superseded_by": "joey-face-000-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-face-045-v004",
      "path": "assets/joey-face-045-v004.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4498908,
      "sha256": "1054aff6f42a1bbb2a25145307b825dad8cd9625b95c3c761c71cad99f3d2c4e",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1a69-7da3-9adc-918fcea663a0",
      "prompt_sha256": "6d59863fdd27de47521a374884599829e7d57738099ebbdcae1c200a1e406b96",
      "seed": 6002,
      "receipt": "face-045-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 45,
      "superseded_by": "joey-face-045-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-face-090-v004",
      "path": "assets/joey-face-090-v004.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4218637,
      "sha256": "1b9fd9e82be91ed9be4b4ab76f088a57250f1afdcf3b62c7ae67f1a9f383850d",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1b37-7212-91d5-b60055b6fe56",
      "prompt_sha256": "ba58a100b3d1fd21513a0e3e5db46d7777bac5141c9249c2a04df640151a7abd",
      "seed": 6002,
      "receipt": "face-090-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 90,
      "superseded_by": "joey-face-090-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-face-270-v004",
      "path": "assets/joey-face-270-v004.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4663459,
      "sha256": "8e1c7380ed32667d26460f3246ba602325593cc99c8b56dd065d2b687e0b73ff",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1cab-75c2-affd-cd0feec3c9d5",
      "prompt_sha256": "9f1054a8ab10abdcfc55b4969e0b9b73b1f85bf476815ce9043b8cff97cd32b1",
      "seed": 6002,
      "receipt": "face-270-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 270,
      "superseded_by": "joey-face-270-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-face-315-v004",
      "path": "assets/joey-face-315-v004.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4534776,
      "sha256": "3a56cf528e2ff7723b88420dc05c178711b2057977f548a679686dd19e27bbe7",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1d92-73c1-a8ea-c068edc253b3",
      "prompt_sha256": "538cc8c47c2a3da30d909ad49066c8685e0cefc27ce0ad5021903a567af63fbd",
      "seed": 6002,
      "receipt": "face-315-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "yaw_degrees": 315,
      "superseded_by": "joey-face-315-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-expression-smile-v004",
      "path": "assets/joey-expression-smile-v004.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4292206,
      "sha256": "abb8b40928f13a7bf3317aa18b4ebc155d3e88337ac6a87ceaa4f190cba26c0b",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1e6b-74e0-8ead-a7209a26d705",
      "prompt_sha256": "f6772915cb06956bf339c1e8d8bab34f9df7a1fb3a7dc3a923b7046607450a7d",
      "seed": 6002,
      "receipt": "expr-smile-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "superseded_by": "joey-expression-smile-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-expression-eyesclosed-v004",
      "path": "assets/joey-expression-eyesclosed-v004.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4751637,
      "sha256": "4b1f82591516add6250be3b062a2330b443b20471f9c10882613312fd60ed5f6",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-1fc5-7fc0-b537-972e047cd197",
      "prompt_sha256": "938342c5115243c416eb2f8ea2add9ba298adcd759194616df62e211d9155dac",
      "seed": 6002,
      "receipt": "expr-eyesclosed-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "superseded_by": "joey-expression-eyesclosed-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-expression-speaking-v004",
      "path": "assets/joey-expression-speaking-v004.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 4115944,
      "sha256": "0c3dc8451ab0671d0ecf88fcb1622ebb7eebbbf090393d82d1e5ba49202a1940",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3712,
      "height": 4608,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-20a3-7163-8ec9-570814db9b2d",
      "prompt_sha256": "4c68451a20d54ea9f77a6c2c0290a7bbd986b015a992dcc82cb2a514af8c67a8",
      "seed": 6002,
      "receipt": "expr-speaking-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "superseded_by": "joey-expression-speaking-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-motion-floor-v004",
      "path": "assets/joey-motion-floor-v004.jpg",
      "role": "scene_first_frame",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3218471,
      "sha256": "534c3880db1b722e055cc3d0da33b7841eb7b0ed0eab290c69d50c7c5bdb30c1",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-2213-7c12-8e64-6509f24b6482",
      "prompt_sha256": "f35b7b47effe6481570c21e24f539d82cb6797a43ab87edee54363d35974e7ff",
      "seed": 6002,
      "receipt": "scene-floor-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores"
    },
    {
      "id": "joey-motion-chair-v004",
      "path": "assets/joey-motion-chair-v004.jpg",
      "role": "scene_first_frame",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3347726,
      "sha256": "e49ec7c231a403e12827f3b67f84daf6899dee25652eafa517575a491771ecc4",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 3072,
      "height": 5504,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-2300-7e30-acbd-cb209dc6f1de",
      "prompt_sha256": "ecb3b7eeb75fcea66efcf4329e523ac9ed4386bb0fddf819e3ad939cc7cbea0f",
      "seed": 6002,
      "receipt": "scene-chair-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores"
    },
    {
      "id": "joey-anchor-a-v004",
      "path": "assets/joey-anchor-a-v004.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3342275,
      "sha256": "99fc02564f0a6483b9aae7cfc5574e2d4b00869935998347d1280ceca0aff421",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 5504,
      "height": 3072,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193d7-21ec-7643-add5-3d61f4310617",
      "prompt_sha256": "4b0500067c6893c74a6ae2801d13c165888b9e48e7e82c20e3935ef7eb9f8b0d",
      "seed": 6002,
      "receipt": "anchor-a-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "variant": "m/002-a",
      "superseded_by": "joey-anchor-a-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-anchor-b-v004",
      "path": "assets/joey-anchor-b-v004.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3279991,
      "sha256": "ff452266ec26b9987170bd09eedcb23509b019f1f5c8923b21822efc8557cbf0",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing.",
      "width": 5504,
      "height": 3072,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193da-23e2-7d02-8bfe-6ce71a9c40a1",
      "prompt_sha256": "4546a69bb4df3ab4c9372a479d70b67d49a8491c344ad8784451e0fc04fe23bf",
      "seed": 6002,
      "receipt": "anchor-b-s2",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "variant": "m/002-b",
      "superseded_by": "joey-anchor-b-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-anchor-c-v004",
      "path": "assets/joey-anchor-c-v004.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 3457910,
      "sha256": "9daa000c16d880865bdcbb39d7c1ff4da8054da62431f3177aa62dbd00360a70",
      "notes": "Generated at 4K from the restored balcony photo (face), the mirror photo (build and hair) and a cap selfie (eyes, nose, mouth); lead review passed identity, clean-shaven rule, direction and framing. Re-rolled once (seed 7002) after the first take showed a different man (face-ID 0.004).",
      "width": 5504,
      "height": 3072,
      "generator": "fal fal-ai/nano-banana-pro/edit",
      "resolution": "4K",
      "provider_request_id": "01a193dd-5e38-7830-969c-8e9ff277f7cb",
      "prompt_sha256": "05a9d3e5242b4c40fe929cae99e54d30a8e17702a08053911c68691941e9bd8e",
      "seed": 7002,
      "receipt": "anchor-c-s3",
      "inputs": [
        "joey-face-source-v004 (restored balcony photo)",
        "body-src (restored mirror photo, unpublished)",
        "hair-src (restored mirror face crop, unpublished)",
        "front2-src (cap selfie crop, unpublished)"
      ],
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (automated-session visual review) + Jev and ArcFace likeness scores",
      "variant": "m/002-c",
      "superseded_by": "joey-anchor-c-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-360-v004",
      "path": "assets/joey-360-v004.jpg",
      "role": "turnaround_sheet",
      "origin": "derived_composite",
      "status": "archived",
      "version": "004",
      "media_type": "image/jpeg",
      "size_bytes": 2119958,
      "sha256": "5566b4977a961e00943aea82b9ce13d50f0b0a27df30320af5d68627d1e56351",
      "notes": "Contact sheet of the eight v0.4.0 body views (000-315, row-major, 4 x 2); local composite.",
      "width": 3572,
      "height": 3200,
      "qa_status": "accepted",
      "superseded_by": "joey-360-v005",
      "archive_reason": "Superseded 2026-11-08 by v0.5.0: owner judged v0.4.0 likeness off and chose a new look (round-5 P2) and character sheet V3."
    },
    {
      "id": "joey-motion-turn-v004",
      "path": "assets/joey-motion-turn-v004.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "video/mp4",
      "size_bytes": 2814298,
      "sha256": "0fea52dbdc84af6031fda35e373309cf075b86d9651c19c69a37677a4a5cde46",
      "notes": "Turn baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-motion-floor-v004.",
      "width": 1072,
      "height": 1928,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "b72360112c485d870720a101545a89a1",
      "prompt_sha256": "5db5626831fb3b271391ed7c7c29c91465053eff64c19db533c7760da7c3158c",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-motion-floor-v004",
      "qa_status": "accepted"
    },
    {
      "id": "joey-motion-walk-v004",
      "path": "assets/joey-motion-walk-v004.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "video/mp4",
      "size_bytes": 5206841,
      "sha256": "7d5c1d4707abf2a549ecdcbf42bb1108d76dff0148b96144e3bf4b233c5cfae4",
      "notes": "Walk baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-motion-floor-v004.",
      "width": 1072,
      "height": 1928,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "d427d01e9184a2c6cf7ac983832de1a2",
      "prompt_sha256": "64baca6bc5dbc02f994d2ded9f768edf103b6a1944703111c3076fecce97dc38",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-motion-floor-v004",
      "qa_status": "accepted"
    },
    {
      "id": "joey-motion-sit-v004",
      "path": "assets/joey-motion-sit-v004.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "video/mp4",
      "size_bytes": 4018068,
      "sha256": "9ab8e614e0ed113b87adfd183f76e9fedfb3b60becdfd5feb05cf331f79ecb1b",
      "notes": "Sit baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-motion-chair-v004.",
      "width": 1072,
      "height": 1928,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "e0c9c28cce2f593c765a037de4054806",
      "prompt_sha256": "391170391b200a04135adb7794e917453b036a63e549eecfc69f4261bae9b048",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-motion-chair-v004",
      "qa_status": "accepted"
    },
    {
      "id": "joey-motion-talk-v004",
      "path": "assets/joey-motion-talk-v004.mp4",
      "role": "motion_baseline",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "video/mp4",
      "size_bytes": 7274569,
      "sha256": "46e98d729b4cc578814ce4d04cf6390d4b60c3a301860a7f577c8fe814b1d2ec",
      "notes": "Talk baseline, kie kling-3.0/video pro, 5 s, sound off, one 'joey' element (face 000, face 045, body 000). First frame joey-face-000-v004.",
      "width": 1292,
      "height": 1604,
      "duration_seconds": 5.041667,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 0,
      "generator": "kie kling-3.0/video",
      "provider_job_id": "6af365cbb2c9612d1141a18b7603498d",
      "prompt_sha256": "f8dea0354e2facc4d7a506b88f27719f4933c562649290e48c857353a81fa1b0",
      "credits_consumed": 90,
      "first_frame_asset_id": "joey-face-000-v004",
      "qa_status": "accepted"
    },
    {
      "id": "joey-voice-sample-v004",
      "path": "assets/joey-voice-sample-v004.mp3",
      "role": "voice_sample",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "audio/mpeg",
      "size_bytes": 64826,
      "sha256": "e099e968c4000a427119a66154a19f92e3ede5f82b1501b77ac6d17b27ab003d",
      "notes": "Same take as v0.3.0 (ElevenLabs 'Joey v4.0', eleven_multilingual_v2); Joey approved the line on 2026-10-31.",
      "duration_seconds": 4.022857,
      "codec": "mp3",
      "audio_streams": 1,
      "provider": "ElevenLabs",
      "voice_id": "6smp824BEteJs0eHretZ",
      "text": "Hi, I'm Joey Nguyen. This is my reference model for JBNX Design.",
      "qa_status": "accepted_subject_approved"
    },
    {
      "id": "joey-voice-proof-v004",
      "path": "assets/joey-voice-proof-v004.mp4",
      "role": "voice_proof",
      "origin": "generated",
      "status": "active",
      "version": "004",
      "media_type": "video/mp4",
      "size_bytes": 8148484,
      "sha256": "6bec64893a194e9ae32b0d5a3d18fa5c5e358bbb576278a101b3bd8c71aca1bf",
      "notes": "The v0.4.0 talk baseline lip-synced by fal Sync Lipsync 2 Pro to the voice sample; only the mouth is edited.",
      "width": 1292,
      "height": 1604,
      "duration_seconds": 4.0,
      "average_frame_rate": "24/1",
      "codec": "h264",
      "audio_streams": 1,
      "generator": "fal fal-ai/sync-lipsync/v2 (lipsync-2-pro, cut_off)",
      "provider_request_id": "01a193e7-0221-7d61-aa0c-ed4017bfc7f6",
      "source_video_asset_id": "joey-motion-talk-v004",
      "qa_status": "accepted_asr_waveform_visual"
    },
    {
      "id": "joey-ref-u05-owner-portrait",
      "path": "assets/anchor-u05-owner-portrait.jpg",
      "role": "approved_look_source",
      "status": "reference_photo",
      "preservation": "preserved_original",
      "version": "005",
      "sha256": "3e74db4d708331458cacd923a20d6a53c6f05a7d8e037ac088f9118acca1c94c",
      "size_bytes": 33330,
      "dimensions_px": [
        297,
        424
      ],
      "source": "Supplied by the owner in chat on 2026-11-08 ('i uploaded a better version. use this').",
      "captured_on": null,
      "jev_score_out_of_4": null,
      "notes": "Owner-supplied portrait; the look target for v0.5.0. ArcFace 0.73 against six of his real photos."
    },
    {
      "id": "joey-face-000-v005",
      "path": "assets/joey-face-000-v005.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 755869,
      "sha256": "f17dc9e0a2058ddca6f9389db3ca0fa69c87d12226d5232d830fc9b52e02450b",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.723,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3d3/96N2zcy82Dzikyfr8DzgF_70209f306d224bfbbd098bccd5e4efde.jpg",
      "seed": 9908,
      "prompt_sha256": "671e981828920a387410160339f958e8d22dfaca67756bb3e4f87e6bb91a51d6",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'head_front' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 0
    },
    {
      "id": "joey-face-045-v005",
      "path": "assets/joey-face-045-v005.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 956668,
      "sha256": "b720bc739a515e210a9ef92af649101b69568967bc82bf8aab9355c35ee5de9d",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.62,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3a1/fIdRAL8DkApuzElAHnkOz_4f548138a0d545b2b5ca9add9dff07ae.jpg",
      "seed": 9807,
      "prompt_sha256": "8db3c5e6be295b61a030da7999ea2a143657668b63d141176f98bd754cec922e",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'head_l34' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 45
    },
    {
      "id": "joey-face-090-v005",
      "path": "assets/joey-face-090-v005.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 838285,
      "sha256": "777bda2a58085b6e880b6f951e72352ea11066c0103126cedbaaf14ef6c53655",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.619,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3a1/EzGd_c6q5-jP9TDdjzxw2_ce91a28f311240dbaef09808fd1d18ce.jpg",
      "seed": 9806,
      "prompt_sha256": "6925040c7aa9cba1e7d2c6a58e0a9d864ec2762a7498d5aa7cc089d330772a44",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'head_lp' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 90
    },
    {
      "id": "joey-face-270-v005",
      "path": "assets/joey-face-270-v005.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 865850,
      "sha256": "80dcc96b59ee1347b5c0df3f93235dcb91d4684e6a40a74d1edf1da6c5d6420b",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.702,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3d2/1jZIWgXrIAFJEDIfEPORR_7d459f88e65f45a390c110362d60effa.jpg",
      "seed": 9910,
      "prompt_sha256": "79c3631836c90b43b93448b8ebe485475fa270ffb9644e148cf9a3ed09f66bec",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'head_rp' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 270
    },
    {
      "id": "joey-face-315-v005",
      "path": "assets/joey-face-315-v005.jpg",
      "role": "face_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 583005,
      "sha256": "4de086ea1d1eccc331cf36ec5d50d76961739c18001ea7d56fceffcdc5b6b303",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.714,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3d2/PsM4SGS4Kpl55GQ_s7LE0_d850f9a30ae342ea8666b720c5952b9c.jpg",
      "seed": 9909,
      "prompt_sha256": "568e61c5a83a8eea07f78264159e3f8f65c6695920e49d0045695ee5c2663b7b",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'head_r34' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 315
    },
    {
      "id": "joey-expression-smile-v005",
      "path": "assets/joey-expression-smile-v005.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 893261,
      "sha256": "f26a4b463d8eba21d38b2e030e194d8ea511415ef766047121475e5185931203",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.715,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3f3/lvSy-j9h8Z9_eZh-rAoN1_6caffc05fde24590a0955fdee996d5e2.jpg",
      "seed": 11911,
      "prompt_sha256": "42b6ccec2b45421a42b599555188fc46b448a884a1838fcf2a3b3a735c17846b",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'expr_smile' (per-panel Seedream 4.5 generation)."
    },
    {
      "id": "joey-expression-eyesclosed-v005",
      "path": "assets/joey-expression-eyesclosed-v005.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 960571,
      "sha256": "70515bfdf07e9b8c51bae1bd179843d340a2fa42f70217acda6aa75630308951",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.702,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3d7/xAM2lUqdUdMJd93deui28_e55a716a9a3b4ee3b440eda2346f9afe.jpg",
      "seed": 9913,
      "prompt_sha256": "420eb563ae963a46bd580f9d1d1a73efb86f15cb59445f2b943b0dc1094c8f8e",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'expr_eyes' (per-panel Seedream 4.5 generation)."
    },
    {
      "id": "joey-expression-speaking-v005",
      "path": "assets/joey-expression-speaking-v005.jpg",
      "role": "expression_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 1015327,
      "sha256": "3d78b6e86dcd2a71dec2a634d754f6b9fe897420278b1011e79f9154a0b4ee35",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.705,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3f4/SIu3wcgZ9X_RX8U2RvDVE_b82c7b891c2f49ff832e5fc3a2b0a8f2.jpg",
      "seed": 11912,
      "prompt_sha256": "2b0d4c6d79f79f49736e460f4fd247c0d945dc128895a25bf9eb20856600f235",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'expr_speak' (per-panel Seedream 4.5 generation)."
    },
    {
      "id": "joey-body-000-v005",
      "path": "assets/joey-body-000-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 592246,
      "sha256": "f3e50b53ced4aaf13c65d11b05d417752b475256c04a1010aaafaed4b5429daa",
      "width": 1440,
      "height": 2560,
      "arcface_mean": 0.718,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a382/RNbzh7BSe164UzWOTx-W-_21982a507e284397bd543e34d09e9190.jpg",
      "seed": 9803,
      "prompt_sha256": "6718a5b0f168c12039ea2e84606729803c377debd894a06fb179abe4ee471e1d",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'master' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 0
    },
    {
      "id": "joey-body-090-v005",
      "path": "assets/joey-body-090-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 466305,
      "sha256": "d9478aebf28d63916025c80e98dc67a17d6990005b064cd441e36e251efc482e",
      "width": 1440,
      "height": 2560,
      "arcface_mean": 0.701,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a39f/oSa98p8W26TBqBQ-U4_tl_6a0b9d458eeb4e979b0d11e7e26655de.jpg",
      "seed": 9804,
      "prompt_sha256": "befee426dcb68d933cec16f8c8ccb8135868138b98810b24b9f99ce2e2cd9f7c",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'body_side' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 90
    },
    {
      "id": "joey-body-180-v005",
      "path": "assets/joey-body-180-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 491764,
      "sha256": "19d771339ffab9de3a00f8e96afc5804dedabcbd85593d96a2327615a8fd0041",
      "width": 1440,
      "height": 2560,
      "arcface_mean": null,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a3cc/0yHSZf8UmfLBzDepcGX1q_b2f9588dcf744969847459fde07ac1ef.jpg",
      "seed": 9905,
      "prompt_sha256": "6516114c0ac61bb5c57b70b566c2a1364d49dbe7c0ac03056692b6edb8bdbeed",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Character sheet V3 panel 'body_back' (per-panel Seedream 4.5 generation).",
      "yaw_degrees": 180
    },
    {
      "id": "joey-body-045-v005",
      "path": "assets/joey-body-045-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 476370,
      "sha256": "6356691c07817986c7ae72da1d8eaa7df31ee80fef45ccaeaf396f38070f1923",
      "width": 1440,
      "height": 2560,
      "arcface_mean": 0.64,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a528/HwA3OvkHwO4tlTmbxGtHN_97ed441a860a4441be944db5eb5663cb.jpg",
      "seed": 11045,
      "prompt_sha256": "ce20bb1d47d8e660c44d02f5e54d07982ed0765197541a50f8485aa8900c6cbd",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "yaw_degrees": 45
    },
    {
      "id": "joey-body-135-v005",
      "path": "assets/joey-body-135-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 502412,
      "sha256": "6c461856c2050632827254e3b233f773dc522c8c0765ca1d23a2bcc980a54fa5",
      "width": 1440,
      "height": 2560,
      "arcface_mean": null,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a51c/xxvp7v8ZELwHZfxM7K8UW_3a114348a16c4d51b4be97ea49ca05fe.jpg",
      "seed": 10135,
      "prompt_sha256": "094cf9e43b5fb7a5800c8b06a7c9977b87b787b8ade657a7cb4fc963e756e51b",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "yaw_degrees": 135
    },
    {
      "id": "joey-body-225-v005",
      "path": "assets/joey-body-225-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 475920,
      "sha256": "1e0c71d3b822bca1df936b658a97262f734dc62684f2f2e8fdbe06741e08af91",
      "width": 1440,
      "height": 2560,
      "arcface_mean": null,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a51b/YFMBxOecsUZfOfyYqibn5_5fc255d920604d118611f52e6d40efc6.jpg",
      "seed": 10225,
      "prompt_sha256": "070d668c3b3e3324f0e37436d1e6fa7bef65e1202d712684f868a481df796979",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "yaw_degrees": 225
    },
    {
      "id": "joey-body-270-v005",
      "path": "assets/joey-body-270-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 402094,
      "sha256": "ae44a74bf083532f958f8acba2c3c38e8ef87215a6e2b44a27d29cb71cc7af95",
      "width": 1440,
      "height": 2560,
      "arcface_mean": 0.544,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a51c/fPCFTt8DTTybUAOx-MTKi_8b9e9a8a3e8642649928f613273e5f6f.jpg",
      "seed": 10270,
      "prompt_sha256": "1fdb1a367eaf17b9a8330fb734c3212a7c9aa569169e1bd4ff34bd7f62ec2c29",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "yaw_degrees": 270
    },
    {
      "id": "joey-body-315-v005",
      "path": "assets/joey-body-315-v005.jpg",
      "role": "body_reference",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 495355,
      "sha256": "6bd60c577e3d529ea937883ba17d95d3d12609525ab7877bf8134e042b140ac8",
      "width": 1440,
      "height": 2560,
      "arcface_mean": 0.68,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a528/IWqbfrtxGonlYULiAfj8d_ed3ab178c85d451a899d1ec499434ceb.jpg",
      "seed": 11315,
      "prompt_sha256": "5dd1f88f955b67d71d881034d6e15fdba7c04137c2c93bebbc4b604cb5375c78",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "yaw_degrees": 315
    },
    {
      "id": "joey-anchor-a-v005",
      "path": "assets/joey-anchor-a-v005.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 553238,
      "sha256": "1e2cc2530c6bddeacf2c33bfe3818ee8bd6a724da4a2759e1c1d5b3a26423bea",
      "width": 2560,
      "height": 1440,
      "arcface_mean": 0.704,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a52d/pWHojxNagTB48w1QC312r_814758fb6da94587b5fff792912e0e1a.jpg",
      "seed": 11001,
      "prompt_sha256": "85d1369cbb55af7ad23b9dcb22d1673f6648f030e776f0ba421da6589f9f5940",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "variant": "m/002-a"
    },
    {
      "id": "joey-anchor-b-v005",
      "path": "assets/joey-anchor-b-v005.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 546308,
      "sha256": "0ee82d243c1b974be44c8920774f3d25c9c45b716f5a7944dd6e32d3807d08de",
      "width": 2560,
      "height": 1440,
      "arcface_mean": 0.659,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a52e/K9JaSBi89kBZnmA5G2Wxf_c3bb96cb92c44e7483ebaa3132065c2a.jpg",
      "seed": 12002,
      "prompt_sha256": "fe3c5626a2faedaff77b6069ff95d425813daf5895abaff7e7b50ab2c5c8318f",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "variant": "m/002-b"
    },
    {
      "id": "joey-anchor-c-v005",
      "path": "assets/joey-anchor-c-v005.jpg",
      "role": "variant_anchor",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 416606,
      "sha256": "0500e2eeebbea09398b846a7fba7ce7ae12db675e6d59050b86071974dd127de",
      "width": 2560,
      "height": 1440,
      "arcface_mean": 0.712,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a522/zGUkZvyetc5M-46AY5uiO_8c19c5385fce45a694337d5357921a49.jpg",
      "seed": 10003,
      "prompt_sha256": "ae7f746a4764b30013302ac7cbb8ba523d6d8cf7d48cbd80ed9e9389a7f9a400",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "v0.5.0 completion still (Seedream 4.5).",
      "variant": "m/002-c"
    },
    {
      "id": "joey-look-p2-v005",
      "path": "assets/joey-look-p2-v005.jpg",
      "role": "approved_look",
      "origin": "generated",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 767515,
      "sha256": "14c553d7e70d90aa9f05f68ceb8fd87909cc7f3093a8167fc9ea27ed4ff92d56",
      "width": 1920,
      "height": 2400,
      "arcface_mean": 0.707,
      "generator": "fal fal-ai/bytedance/seedream/v4.5/edit",
      "provider_request_id": null,
      "image_url_at_generation": "https://v3b.fal.media/files/b/0ab1a324/98WW2vX0Bpn1rXfk6iQYC_e30bb172322745c8861cc9d1f8f8cb7e.jpg",
      "seed": 9502,
      "prompt_sha256": "4ad27185d60e74f7b7718cf16bbd0e449ee844e45b1cb23e70621e8256e9075e",
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Round 5 P2: charisma polish of the owner's uploaded portrait; owner's pick ('p2 is best')."
    },
    {
      "id": "joey-character-sheet-v005",
      "path": "assets/joey-character-sheet-v005.jpg",
      "role": "character_sheet",
      "origin": "derived_composite",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 1216773,
      "sha256": "bc9e155b00b4cc5b091bc5fda75a51a4406191ce483ba93cef587e6777b52897",
      "width": 3840,
      "height": 2160,
      "arcface_mean": null,
      "generator": null,
      "provider_request_id": null,
      "image_url_at_generation": null,
      "seed": null,
      "prompt_sha256": null,
      "qa_status": "accepted",
      "review": "lead agent 1099:claude-chat-c1d3 (visual review) + ArcFace likeness + Jev technical QA; owner choices recorded per round",
      "notes": "Assembled locally from the V3 panels."
    },
    {
      "id": "joey-360-v005",
      "path": "assets/joey-360-v005.jpg",
      "role": "turnaround_sheet",
      "origin": "derived_composite",
      "status": "active",
      "version": "005",
      "media_type": "image/jpeg",
      "size_bytes": 1546200,
      "sha256": "960effc326c5b365fd8c0048f69980174774a48b95c3d878bc55464237384905",
      "width": 3650,
      "height": 3230,
      "qa_status": "accepted",
      "notes": "Contact sheet of the eight v0.5.0 body views (000-315, row-major, 4 x 2); local composite."
    }
  ],
  "release_history": [
    {
      "version": "0.1.0",
      "date": "2026-10-28",
      "change": "Seed registration: catalog, tokens, framework, prompts and production config created. Anchor slots labeled; no anchor images generated yet."
    },
    {
      "version": "0.2.0",
      "date": "2026-10-28",
      "change": "Real anchor reference photos wired: 13 full-resolution photos selected from the owner's 'Joey Only' album (seed c001, JEV 3.68/4) added under assets/ with SHA-256 receipts, variant reference mappings, and production-ledger records. Generated variant anchors and loops remain pending; slot SVGs remain as their placeholders."
    },
    {
      "version": "0.3.0",
      "date": "2026-10-31",
      "change": "Reference pack to the model 001 standard with the AI Model Reference Pack Framework, at the owner's request. Joey-only crops of his own photos (another person masked), face restored with fal Topaz (face creativity 0), then 21 references generated at 4K on Nano Banana Pro: eight body angles, five face turns, three expressions, two scene first frames and the three variant anchors (replacing the labeled slots). Added a 360° sheet, four Kling 3.0 pro motion baselines (turn, walk, sit, talk), a voice sample in his cloned ElevenLabs voice 'Joey v4.0' and an audio-driven voice proof (Sync Lipsync 2 Pro), with a QA report, planning helper and the rerunnable job file. Owner photos stay the preserved originals. Joey's acceptance of the anchors and the voice line is pending."
    },
    {
      "version": "0.4.0",
      "date": "2026-10-31",
      "change": "Rebuilt after Joey rejected v0.3.0 ('fatter than me ... you used the wrong photo to anchor to'). Anchored only to the four photos he supplied: balcony selfie (face authority, his choice), mirror photo (slim build, spiked hair) and cap selfies. Two likeness tests scored with Jev and ArcFace; his feedback (face structure, cheeks, hair, under-eye bags) was written into the identity lock. 21 4K references, 360 sheet, 4 Kling 3.0 pro baselines and a new voice proof. v0.3.0 files archived."
    },
    {
      "version": "0.4.0",
      "date": "2026-10-31",
      "change": "Joey accepted the v0.4.0 anchors and references and approved the voice line ('Hi, I'm Joey Nguyen. This is my reference model for JBNX Design.'). Privacy: the eight album photos that showed other people are now Joey-only crops (any remaining face pixelated), and GPS location data was removed from all 13 album photos."
    },
    {
      "version": "0.5.0",
      "date": "2026-11-08",
      "change": "New look after a likeness audit with Joey. Five generation rounds across Nano Banana Pro, FLUX.2, Seedream 4.5/5 Lite and GPT Image; Jev's likeness score failed his picks, so likeness now uses ArcFace (6/6 agreement) and Jev checks quality only. Joey uploaded a better portrait, picked its film polish (P2, closed-mouth smile) and character sheet V3, and set his signature outfit: black polo buttoned to the top, black blazer, black pants. New: 8 body angles, 5 face turns, 3 expressions, 3 variant anchors, 360 sheet and character sheet. Motion baselines and voice proof stay on v0.4.0 until re-rendered with the new look."
    }
  ],
  "reference_set": {
    "seed_asset_id": "joey-ref-c001-seed",
    "count": 13,
    "selected_on": "2026-10-28",
    "selection": "Filtered the 8,319-item album manifest to 2023+, both dimensions >= 2880px (1,165), de-bursted to 202 shoots, visually reviewed all 202, shortlisted 20, JEV-scored 14 finalists (jev-1.13.0, 0-4 legend).",
    "gaps": [
      "No no-hat, no-glasses front shot in a navy blazer (true Variant A) exists in the album.",
      "No clear-glasses shot without a cap (true Variant B) exists in the album.",
      "Every reference needs a background crop/replace for the Capture OS studio look."
    ],
    "owner_target_photos_2026_10_31": [
      "joey-ref-u01-mirror",
      "joey-ref-u02-cap-three-quarter",
      "joey-ref-u03-cap-front",
      "joey-ref-u04-balcony"
    ],
    "owner_target_photos_2026_11_08": [
      "joey-ref-u05-owner-portrait"
    ]
  },
  "working_inputs": [
    {
      "id": "face-src",
      "from_asset": "joey-ref-u04-balcony",
      "box_exif_upright": [
        0,
        480,
        760,
        1560
      ],
      "flip": false,
      "sha256": "4ebc18da4d1d80f0eb8ea46fb854f6b746b8766d59ad4e9aad19b39836ea01d7",
      "role": "face authority (owner directive 2026-10-31 17:17 ET: 'use this to anchor photo'); natural camera height",
      "published": false,
      "note": "Prepared by scripts/model_reference_pack/crop_sources.py; only Joey is in frame."
    },
    {
      "id": "body-src",
      "from_asset": "joey-ref-u01-mirror",
      "box_exif_upright": [
        0,
        0,
        1518,
        2408
      ],
      "flip": true,
      "sha256": "a4118a3563404545b272862abf991d8e5efa850d4c874be2cc9d3d683cbd67eb",
      "role": "body authority (slim, fit build); mirror photo flipped to true orientation",
      "published": false,
      "note": "Prepared by scripts/model_reference_pack/crop_sources.py; only Joey is in frame. Mirror photo flipped to true orientation."
    },
    {
      "id": "hair-src",
      "from_asset": "joey-ref-u01-mirror",
      "box_exif_upright": [
        400,
        0,
        1120,
        860
      ],
      "flip": true,
      "sha256": "4f559d570647fe981da2eec06402be2d88e826a9f101713aedd1af1381d776a1",
      "role": "hair reference (tall spiked top); shot from below",
      "published": false,
      "note": "Prepared by scripts/model_reference_pack/crop_sources.py; only Joey is in frame. Mirror photo flipped to true orientation."
    },
    {
      "id": "front2-src",
      "from_asset": "joey-ref-u03-cap-front",
      "box_exif_upright": [
        0,
        420,
        740,
        1400
      ],
      "flip": false,
      "sha256": "da1a20bbc782b49dac42de1cd2f0b781d6a28d15f9c2f5b5edffafaf86be74b0",
      "role": "extra identity: front smile (cap); logo text cropped out",
      "published": false,
      "note": "Prepared by scripts/model_reference_pack/crop_sources.py; only Joey is in frame."
    }
  ],
  "turnaround": {
    "layout": {
      "columns": 4,
      "rows": 2,
      "order": "row-major"
    },
    "yaw_step_degrees": 45,
    "convention": "Nominal turn order: front, left-facing profile, rear, right-facing profile, front. At 090 degrees the nose points image left; at 270 degrees it points image right. Left and right describe image-facing direction, not measured anatomical sides.",
    "precision": "Nominal 45-degree directions. All eight views are generated interpretations from Joey's photos and his approved look, not measurements.",
    "outfit": "Variant A (Executive), extended to full body",
    "views": [
      {
        "label": "000°",
        "yaw_degrees": 0,
        "view": "front",
        "path": "assets/joey-body-000-v005.jpg",
        "asset_id": "joey-body-000-v005",
        "status": "generated_accepted"
      },
      {
        "label": "045°",
        "yaw_degrees": 45,
        "view": "front three-quarter, facing left",
        "path": "assets/joey-body-045-v005.jpg",
        "asset_id": "joey-body-045-v005",
        "status": "generated_accepted"
      },
      {
        "label": "090°",
        "yaw_degrees": 90,
        "view": "left-facing profile",
        "path": "assets/joey-body-090-v005.jpg",
        "asset_id": "joey-body-090-v005",
        "status": "generated_accepted"
      },
      {
        "label": "135°",
        "yaw_degrees": 135,
        "view": "rear three-quarter, facing left",
        "path": "assets/joey-body-135-v005.jpg",
        "asset_id": "joey-body-135-v005",
        "status": "generated_accepted"
      },
      {
        "label": "180°",
        "yaw_degrees": 180,
        "view": "back",
        "path": "assets/joey-body-180-v005.jpg",
        "asset_id": "joey-body-180-v005",
        "status": "generated_accepted"
      },
      {
        "label": "225°",
        "yaw_degrees": 225,
        "view": "rear three-quarter, facing right",
        "path": "assets/joey-body-225-v005.jpg",
        "asset_id": "joey-body-225-v005",
        "status": "generated_accepted"
      },
      {
        "label": "270°",
        "yaw_degrees": 270,
        "view": "right-facing profile",
        "path": "assets/joey-body-270-v005.jpg",
        "asset_id": "joey-body-270-v005",
        "status": "generated_accepted"
      },
      {
        "label": "315°",
        "yaw_degrees": 315,
        "view": "front three-quarter, facing right",
        "path": "assets/joey-body-315-v005.jpg",
        "asset_id": "joey-body-315-v005",
        "status": "generated_accepted"
      }
    ]
  },
  "face_source": {
    "asset_id": "joey-face-source-v004",
    "path": "assets/joey-face-source-v004.jpg",
    "label": "Restored owner photo (balcony, anchor-u04)"
  },
  "face_references": [
    {
      "asset_id": "joey-face-000-v005",
      "label": "Neutral front",
      "yaw_degrees": 0,
      "path": "assets/joey-face-000-v005.jpg",
      "status": "generated_accepted"
    },
    {
      "asset_id": "joey-face-045-v005",
      "label": "Three-quarter, facing left",
      "yaw_degrees": 45,
      "path": "assets/joey-face-045-v005.jpg",
      "status": "generated_accepted"
    },
    {
      "asset_id": "joey-face-090-v005",
      "label": "Profile, facing left",
      "yaw_degrees": 90,
      "path": "assets/joey-face-090-v005.jpg",
      "status": "generated_accepted"
    },
    {
      "asset_id": "joey-face-270-v005",
      "label": "Profile, facing right",
      "yaw_degrees": 270,
      "path": "assets/joey-face-270-v005.jpg",
      "status": "generated_accepted"
    },
    {
      "asset_id": "joey-face-315-v005",
      "label": "Three-quarter, facing right",
      "yaw_degrees": 315,
      "path": "assets/joey-face-315-v005.jpg",
      "status": "generated_accepted"
    }
  ],
  "expression_references": [
    {
      "asset_id": "joey-expression-smile-v005",
      "label": "His closed-mouth half smile",
      "expression": "smile",
      "path": "assets/joey-expression-smile-v005.jpg",
      "status": "generated_accepted"
    },
    {
      "asset_id": "joey-expression-eyesclosed-v005",
      "label": "Eyes closed",
      "expression": "eyesclosed",
      "path": "assets/joey-expression-eyesclosed-v005.jpg",
      "status": "generated_accepted"
    },
    {
      "asset_id": "joey-expression-speaking-v005",
      "label": "Speaking",
      "expression": "speaking",
      "path": "assets/joey-expression-speaking-v005.jpg",
      "status": "generated_accepted"
    }
  ],
  "face_references_pending": [],
  "expression_references_pending": [],
  "scene_references": [
    {
      "asset_id": "joey-motion-floor-v004",
      "path": "assets/joey-motion-floor-v004.jpg",
      "label": "Walk / turn working frame",
      "status": "reviewed_working_test_input"
    },
    {
      "asset_id": "joey-motion-chair-v004",
      "path": "assets/joey-motion-chair-v004.jpg",
      "label": "Sit working frame",
      "status": "reviewed_working_test_input"
    }
  ],
  "turnaround_sheet": {
    "asset_id": "joey-360-v005",
    "path": "assets/joey-360-v005.jpg"
  },
  "motion_prompt_template": "Animate the attached accepted scene first frame. Action: {one_simple_action}. Camera: {camera_motion_or_locked}. Duration: {seconds}. @joey is this same man: keep his existing face, clean-shaven skin, short dark hair, eyewear (Variant B only), body proportions, outfit, lighting, scene and ground contact stable throughout. Use natural movement and continuous anatomy. Do not add scene changes, new people, text, captions, logos or wardrobe changes. Dialogue, only a line Joey has approved: {approved_dialogue_or_none}. Avoid flicker, face drift, warped frames, body drift, floating heels, extra fingers and sliding feet.",
  "consent": {
    "subject": "real_person",
    "relationship": "Joey Nguyen is the site owner and the subject; he supplied his own photos for this model",
    "attested_by": "Joey Nguyen himself",
    "attested_on": "2026-10-28",
    "scope": "JBNX Design digital-twin references and AI presenter video for his own businesses.",
    "rules": [
      "Joey approves every line he is shown speaking, in a voice he approved, before release.",
      "Generated anchors become authoritative only after Joey accepts them.",
      "Only Joey may be identifiable in anything sent to a provider: crop or mask other people first.",
      "No edits that change his identity, age or body.",
      "Remove assets on his request."
    ]
  },
  "unspecified": [
    "height",
    "exact body measurements",
    "unseen distinguishing marks"
  ],
  "motion_baselines": {
    "revision": 1,
    "reviewer": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
    "reviewed_at": "2026-10-31T23:30:00+00:00",
    "review_method": "Contact sheets (8 frames per clip) reviewed by the lead agent, plus a caption scan and face-ID on first and last frames.",
    "accepted": 4,
    "rejected": 0,
    "stored_audio": "none (rendered with sound off)",
    "lip_sync_validated": false,
    "renderer": "kie kling-3.0/video · pro · 5 s",
    "accepted_ids": [
      "joey-motion-turn-v004",
      "joey-motion-walk-v004",
      "joey-motion-sit-v004",
      "joey-motion-talk-v004"
    ],
    "caption_scan": {
      "motion-turn": "clean: no added text, captions or logos found in sampled frames",
      "motion-walk": "clean: highest text-likeness score 3.83 sits at the first-frame floor; hotspots are shirt buttons and the lapel pin (134 px), not text",
      "motion-sit": "clean: no added text, captions or logos found in sampled frames",
      "motion-talk": "clean: no added text, captions or logos found in sampled frames",
      "voice-proof": "clean: no added text, captions or logos found in sampled frames"
    },
    "note": "v0.4.0 baselines (previous look). Re-render from the v0.5.0 anchors needs Joey's go-ahead."
  },
  "voice_proof": {
    "asset_id": "joey-voice-proof-v004",
    "status": "accepted",
    "qa_status": "asr_and_waveform_verified_visual_reviewed",
    "reviewer": "lead agent 1099:claude-chat-c1d3 (automated-session visual review)",
    "reviewed_at": "2026-10-31T23:30:00+00:00",
    "review_method": "Independent ASR (ElevenLabs scribe_v1) against the line, waveform alignment against the source take, and sampled visual identity and articulation review. No calibrated SyncNet in this session, so lip sync is not machine-scored.",
    "line": "Hi, I'm Joey Nguyen. This is my reference model for JBNX Design.",
    "line_status": "approved by Joey on 2026-10-31",
    "asr_transcript": "Hi, I'm Joey Nguyen. This is my reference model for JBNX design.",
    "waveform_correlation": 0.9942,
    "candidate_offset_seconds": 0.0,
    "sha256": "6bec64893a194e9ae32b0d5a3d18fa5c5e358bbb576278a101b3bd8c71aca1bf"
  },
  "updated_on": "2026-11-08",
  "production_completion": {
    "status": "complete",
    "scope": "v0.5.0 stills: approved look, character sheet, 8 body angles, 5 face turns, 3 expressions, 3 variant anchors.",
    "completed_at": "2026-11-08T14:00:00+00:00",
    "qa_report": {
      "path": "qa.json",
      "sha256": "8ee0e8f79101842a0186c0146b76e74d90bd3d0074a84a70a54718fed45b5832"
    },
    "owner_review": "accepted",
    "framework": "https://projects.jbnx.io/framework/ai-model-reference-pack-framework",
    "owner_request": "2026-11-08: audit and improve the portrait model; 3 options per round, he picks; then finish the page.",
    "review_note": "Joey picked the v0.5.0 look on Nov 8 (his uploaded portrait, polished; character sheet V3). Motion clips below are still v0.4.0 and will be re-rendered with the new look on his go-ahead.",
    "owner_review_at": "2026-11-08",
    "owner_review_record": "Joey chose character sheet V3 and said 'finish my character page. get it all done' on 2026-11-08 (08:00 ET)."
  },
  "likeness": {
    "method": "ArcFace (InsightFace buffalo_l) cosine similarity, mean against six of Joey's real photos (balcony, mirror flipped, c001, c161, c110, cap front). His own photos score about 0.63-0.67 against each other; a different person scores near 0. Profile and three-quarter views score lower by design. Jev (jev-1.14.0) is used for technical quality only: on 2026-11-08 it ranked Joey's picks correctly in 2 of 6 checks after recalibration, ArcFace in 6 of 6. Joey's eye decides.",
    "tables": {
      "summary": [
        {
          "image": "Real photo · cap three-quarter (control)",
          "face_id": "0.606",
          "status": "control"
        },
        {
          "image": "v0.4.0 face 000 (previous)",
          "face_id": "0.603",
          "status": "superseded"
        },
        {
          "image": "Owner-uploaded portrait (2026-11-08)",
          "face_id": "0.73",
          "status": "look source"
        },
        {
          "image": "Approved look · round 5 P2",
          "face_id": "0.707",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 face 000",
          "face_id": "0.723",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 face 045",
          "face_id": "0.62",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 face 090",
          "face_id": "0.619",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 face 270",
          "face_id": "0.702",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 face 315",
          "face_id": "0.714",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 expression smile",
          "face_id": "0.715",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 expression eyesclosed",
          "face_id": "0.702",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 expression speaking",
          "face_id": "0.705",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 body 000",
          "face_id": "0.718",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 anchor a",
          "face_id": "0.704",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 anchor b",
          "face_id": "0.659",
          "status": "accepted"
        },
        {
          "image": "v0.5.0 anchor c",
          "face_id": "0.712",
          "status": "accepted"
        }
      ],
      "note": "Calibration (2026-11-08): against Joey's six labelled preferences, ArcFace agreed 6/6, recalibrated Jev 2/6. Nano Banana Pro produced two identity swaps in round 5 (ArcFace -0.01 and -0.04); the gate caught both. Similarity is not proof of identity."
    },
    "owner_feedback": [
      "2026-11-08: 'jev is wrong. needs to be recalibrate. r2-b is best'",
      "2026-11-08: 'r2a and r2c are so bad and so far away from what i look like'",
      "2026-11-08: 'this is for film so it needs a little charisma polish. i uploaded a better version. use this'",
      "2026-11-08: 'p2 is best. i don't smile like the other 2. other 2 looks fake smiles.'",
      "2026-11-08: 'i never unbutton top two ... im usually in black polo with black blazer and black pants.'"
    ]
  },
  "character_sheet": {
    "asset_id": "joey-character-sheet-v005",
    "path": "assets/joey-character-sheet-v005.jpg",
    "label": "Character sheet V3 (owner's pick, 2026-11-08): five head turns, front/side/back full body, three expressions"
  },
  "approved_look": {
    "asset_id": "joey-look-p2-v005",
    "path": "assets/joey-look-p2-v005.jpg",
    "source_asset_id": "joey-ref-u05-owner-portrait",
    "label": "Approved film look (round 5, P2): charisma polish of the owner's uploaded portrait"
  }
}
