id | string | Yes | — | Stable id referenced from demo config as asset:<id>. Non-empty. Capture-written ids follow the cap-NNN pattern. |
sha256 | string | Yes | — | Content hash for the asset bytes. Exactly 64 lowercase hex characters. |
kind | enum | Yes | — | One of screenshot, image, video, audio, font, other. |
path | string | No | — | Optional source or delivery metadata. Non-empty when present. |
uri | string | No | — | Optional legacy metadata. Non-empty when present. |
contentType | string | No | — | MIME type recorded at upload time; lets resolvers derive a file extension. Non-empty when present. |
publicUrl | string | No | — | Public CDN URL for synced or published assets. Non-empty when present. |
cdnPath | string | No | — | CDN object key for synced or published assets. Non-empty when present. |
file | string | No | — | Demo-local file within the demo’s public/ folder. Used for local and offline assets, never as a CDN URL. |
size | number | No | — | Byte length. Non-negative integer. Omitted when unknown at write time. |
createdAt | string | No | — | Creation timestamp. Non-empty when present. |
updatedAt | string | No | — | Last-update timestamp. Non-empty when present. |
viewport | object | No | — | Capture-time viewport, set for screenshots and recordings. { w, h }, both positive integers. |