# Capture & QA schema

Per-clip files live in `metadata/sample_XX.json`.

## Core fields

| Field | Type | Description |
|-------|------|-------------|
| `clip_id` | string | Stem matching video filename |
| `environment` | string | factory, restaurant, roadside_shop, car_showroom, repair_shop |
| `capture_device` | string | Smartphone model used |
| `duration_seconds` | float | automated probe duration |
| `fps` | int | Deliverable frame rate (30) |
| `resolution` | string | WxH |
| `manipulator_details` | object | hand dominance, object target |
| `anonymization` | object | privacy flags (see below) |
| `session` | object | capture session; includes approximate UTC start |

## `anonymization` object

| Field | Type | Description |
|-------|------|-------------|
| `identifiable_faces_present` | bool | Human review — any identifiable face in delivered frames |
| `face_blur_required` | bool | Whether pixel blur was needed |
| `face_blur_applied` | bool | Whether blur was run on pixels |
| `face_privacy_review` | string | `manual_pass` when human-reviewed |
| `face_privacy_note` | string | Short explanation for buyers |
| `audio_removed` | bool | Deliverable MP4 has no audio |
| `pii_scanned` | bool | Privacy review performed |
| `notes` | string | Optional free text |

## `session` UTC fields

| Field | Type | Description |
|-------|------|-------------|
| `utc_available` | bool | `true` when approximate wall-clock provided |
| `utc_precision` | string | `minute_approximate` |
| `capture_start_ist_approx` | string | ISO8601 with +05:30 offset |
| `capture_start_utc_approx` | string | ISO8601 UTC (Z) |
| `utc_note` | string | Approximation disclaimer |

## Other fields

| Field | Type | Description |
|-------|------|-------------|
| `qa_flags` | object | CI pass, resolution verified, etc. |
| `integrity` | object | sha256_video, sha256_overlay |
