{
  "kind": "movie-sprite-demo-v1",
  "resources": [
    "assets/loop.webm",
    "assets/loop.webp",
    "assets/canonical.png",
    "assets/original-unpinned-preview.mp4"
  ],
  "character": {
    "id": "nami",
    "representation": "Original adult rabbit-hood illustration; same character as facial patches and SD 3D adaptation.",
    "source_sha256": "90b9cacfc7c3703007dc1f9885dc705fd00643ddc5240358ef87a822f1960a03",
    "rights_basis": "Original repository-owned Nami artwork; no third-party character reference."
  },
  "generation": {
    "route": "fal-ai/wan/v2.7/image-to-video@fal",
    "run": "take-run-03",
    "booked_usd": 1.125,
    "paid_calls": 1,
    "source_video_sha256": "34b779452fa55caee632f3f1428033682180032ea40826933d988a368c44d3ae",
    "requested_seconds": 6,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  },
  "comparison_preview": {
    "source_video_sha256": "d73aab13d160928242aeaf795e7d8e201ff1ee2e1fa28afd64ea06a3aee4e067",
    "frame_count": 120,
    "playback_fps": 30.0,
    "playback_seconds": 4.0,
    "keyed": false,
    "held_region_applied": false,
    "loop_flow_applied": false,
    "audio": false,
    "operation": "Encode the same source interval at the finished playback rate for synchronized comparison; no fixed regions, chroma key or optical-flow closure."
  },
  "frame_selection": {
    "audio": false,
    "codec": "ffv1",
    "container_bitexact": true,
    "end_frame_exclusive": 132,
    "height": 1080,
    "interpolation": false,
    "kind": "movie_sprite_frame_interval_v1",
    "output_sha256": "d73aab13d160928242aeaf795e7d8e201ff1ee2e1fa28afd64ea06a3aee4e067",
    "reason": "Explicit author-selected interval; semantic review remains separate.",
    "retained_frames": 120,
    "retained_seconds": 4,
    "source_frame_rate": "30",
    "source_frames": 180,
    "source_sha256": "34b779452fa55caee632f3f1428033682180032ea40826933d988a368c44d3ae",
    "start_frame": 12,
    "width": 1920
  },
  "finishing": {
    "run": "finish-run-04",
    "paid_calls": 0,
    "booked_usd": 0,
    "source_video_sha256": "d73aab13d160928242aeaf795e7d8e201ff1ee2e1fa28afd64ea06a3aee4e067",
    "settings_sha256": "91b10234e63de87e4ac2d9cba88a1f0532ed712ac0d34b80507d840201eb7d68",
    "fixed_region_pixels": 0,
    "face_pinned": false,
    "held_region": "None; head, neck, face, shoulders and hands retain their generated movement.",
    "chroma_key_excess": 128.0,
    "max_flow_pixels": 36.0,
    "native": {
      "schema_version": 1,
      "kind": "movie_sprite_body",
      "width": 1920,
      "height": 1080,
      "frame_count": 120,
      "playback_fps": 30.0,
      "playback_rate": "30",
      "playback_seconds": 4.0,
      "alpha_mode": "straight",
      "loop": true,
      "audio": false,
      "canonical_frame_index": 0,
      "canonical_sha256": "0ac5898978d8d514329e8af9a60949a1e124785a7c7f9f265f264f9dfe834b16",
      "source_sha256": "d73aab13d160928242aeaf795e7d8e201ff1ee2e1fa28afd64ea06a3aee4e067",
      "source_frame_indices": [
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50,
        51,
        52,
        53,
        54,
        55,
        56,
        57,
        58,
        59,
        60,
        61,
        62,
        63,
        64,
        65,
        66,
        67,
        68,
        69,
        70,
        71,
        72,
        73,
        74,
        75,
        76,
        77,
        78,
        79,
        80,
        81,
        82,
        83,
        84,
        85,
        86,
        87,
        88,
        89,
        90,
        91,
        92,
        93,
        94,
        95,
        96,
        97,
        98,
        99,
        100,
        101,
        102,
        103,
        104,
        105,
        106,
        107,
        108,
        109,
        110,
        111,
        112,
        113,
        114,
        115,
        116,
        117,
        118,
        119
      ],
      "frames_pattern": "frame-{index:06d}.png"
    },
    "notes": [
      "Raw source frames [12,132) retain exactly four seconds at the native 30fps; no playback retiming is applied.",
      "The first 0.4 seconds with grainy source texture and final 1.6 seconds of dwell are omitted explicitly.",
      "The generated movement is untouched outside twelve-frame endpoint closure windows.",
      "The native canonical is the keyed first generated frame, with exact native loop endpoints.",
      "No character-region freeze, local repair, pose replacement or facial patch is applied."
    ]
  },
  "cover": {
    "size": [
      960,
      600
    ],
    "subject_bounds_xyxy": [
      680,
      30,
      1232,
      1002
    ],
    "resized_subject": [
      313,
      552
    ],
    "offset_xy": [
      323,
      24
    ],
    "crop": "All retained source main-silhouette bounds plus 16px closure safety; fixed crop, no camera pan or subject cut.",
    "poster": "Static lossless first decoded frame of the recorded animated cover.",
    "animated_root_output_sha256": "4bc4339405b9f3c118be65283f10a3dfe30da928b64d8024d487eb0d89ffca2a",
    "sampling": {
      "actual_native_samples": 96,
      "sample_fps": 24,
      "decoded_webp_frames": 95,
      "duration_ms": 4000,
      "identical_adjacent_samples_merged_by_encoder": 1,
      "interpolation": false
    }
  },
  "checks": {
    "webm_alpha_range": [
      0,
      255
    ],
    "webm_first_frame_transparent_fraction": 0.9119856770833333,
    "browser_video_size": [
      1280,
      720
    ],
    "browser_video_fps": 30.0,
    "browser_image_sample_fps": 24,
    "native_size": [
      1920,
      1080
    ],
    "webp": {
      "size": [
        1280,
        720
      ],
      "frames": 96,
      "duration_ms": 4000,
      "loop": 0
    },
    "animated_cover": {
      "size": [
        960,
        600
      ],
      "frames": 95,
      "duration_ms": 4000,
      "loop": 0
    },
    "poster": {
      "size": [
        960,
        600
      ],
      "frames": 1,
      "animated": false
    },
    "native_all_frames_lossless_verified": true,
    "native_loop_endpoints_exact": true,
    "native_canonical_first_frame_exact": true
  },
  "review_status": "independent_scoped_pass_user_artistic_review_pending",
  "publication_authorized": false,
  "files": {
    "assets/canonical.png": {
      "sha256": "0ac5898978d8d514329e8af9a60949a1e124785a7c7f9f265f264f9dfe834b16",
      "bytes": 417079
    },
    "assets/contact-sheet.png": {
      "sha256": "d96e6d6f6c0e22d8626fe93aad658bc5292df424a2707e17b14c8017e83d647e",
      "bytes": 78590
    },
    "assets/loop.webm": {
      "sha256": "013280b70ecd9128ab0dafe6c9f84ea26c710925588535a05dbf596f4b405dcd",
      "bytes": 1189989
    },
    "assets/loop.webp": {
      "sha256": "347300be7bd772dd10f77545fed177e38e1a382503203e5e5b57704ff810cc93",
      "bytes": 4142678
    },
    "assets/original-unpinned-preview.mp4": {
      "sha256": "0c5872e89e6117272a170d6f04a272819be43d1ecdce6dff94ef221eb1ca54e7",
      "bytes": 2089451
    },
    "assets/preview.mp4": {
      "sha256": "ad64f2a0f8ef2e336541e5be0fc335a35e0e7217c98fa493a3c7fb0102b5cb4a",
      "bytes": 1399084
    },
    "assets/source.png": {
      "sha256": "90b9cacfc7c3703007dc1f9885dc705fd00643ddc5240358ef87a822f1960a03",
      "bytes": 5542543
    },
    "cover.webp": {
      "sha256": "3cb0543d981db9c66e857410940d3d0636758d64e246d55fe422614c20b893e0",
      "bytes": 95890
    },
    "review-evidence/clean-closure-diagnosis.json": {
      "sha256": "907bbd768c4bc59ec17b2a5d2a40d432f1f52b22ffcac9335deaa2bd72f69caa",
      "bytes": 2346
    },
    "review-evidence/clean-endpoint-crops.png": {
      "sha256": "d52d85328c3f16dd81ed96a7d37afcd0c9b1a20426d44326cae4af21c10fddb9",
      "bytes": 1862901
    },
    "review-evidence/cover-samples.png": {
      "sha256": "5c92f16f57e524fe570295d4e9c9860b3c15939bcb7f3190138a3ad867d3c7bb",
      "bytes": 403621
    },
    "review-evidence/finish-manifest.json": {
      "sha256": "d935f4eb0dc9b4781695b1df7ae84794184cc9ef19018944306b202f582899b9",
      "bytes": 1506
    },
    "review-evidence/finish-report.json": {
      "sha256": "b7923ba8bd4fc2037e929c25c0f43d4c2aa499f3b7b044c773807fdd198b8cbd",
      "bytes": 46250
    },
    "review-evidence/finish-settings.json": {
      "sha256": "91b10234e63de87e4ac2d9cba88a1f0532ed712ac0d34b80507d840201eb7d68",
      "bytes": 505
    },
    "review-evidence/independent-review.json": {
      "sha256": "36fc62fb91fdef4beb69c9c966987d40c018c8a34cc3b9eda139d865efc2292e",
      "bytes": 8943
    },
    "review-evidence/minor-hair-edge-fragment.png": {
      "sha256": "907055eb1eb48ba23f396a29dd38947318eec6b9586f6fcaa323c952b66aca67",
      "bytes": 64606
    },
    "review-evidence/native-contrasting.png": {
      "sha256": "54b56f8c7cce005c48fd4c194bb08c1424002e2af3396f72327982188c7cdb82",
      "bytes": 2066246
    },
    "review-evidence/source-alpha-silhouette.json": {
      "sha256": "13e8a01791e7c1df686eef3981e3ba60c4377318e52379f398e069f6000fa08b",
      "bytes": 30133
    },
    "review-evidence/trim-report.json": {
      "sha256": "2f5dcbef8876ba8166f9c40c1683e5eeb7f8b855edf2b0ab349fdb4efec3c68e",
      "bytes": 571
    }
  },
  "browser_projection": {
    "native_size": [
      1920,
      1080
    ],
    "webm_size": [
      1280,
      720
    ],
    "webm_fps": 30,
    "webp_size": [
      1280,
      720
    ],
    "webp_sample_fps": 24,
    "spatial_resampling": "Lanczos for WebP, FFmpeg aspect-preserving scale for WebM.",
    "native_canonical_preserved": true
  },
  "independent_review": {
    "path": "review-evidence/independent-review.json",
    "verdict": "pass_scoped",
    "user_artistic_approval": "pending",
    "browser_qa": false,
    "production_publication_authorized": false
  }
}
