ai.newnal.illi.family.mediaItem
One original photo or video in the home's content bank. The original and its sidecar are blobs on the author's PDN; the thumbnail, display rendition, poster, dimensions and capture time are produced by the media service and uploaded by the Service Agent Node to the same PDN after the item was created, so a freshly created item may carry only the original and its upload-time content hash for exact deduplication.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | family.illi.newnal.ai |
| Indexed |
Record
record · key tidProperties
aiDescription
stringDescription written by the media service's AI analysis (ai.description of the asset snapshot). Written by the Service Agent Node; never edited by clients.
maxLength: 10000maxGraphemes: 1000
aiTags
arrayTags the media service's AI analysis chose (ai.tags of the asset snapshot). Written by the Service Agent Node from the media service's result; never edited by clients.
maxLength: 100
maxLength: 640maxGraphemes: 64
contentHash
stringsha256 hex of the original bytes, computed by the media service.
maxLength: 128
display
blob1600 px display rendition for the device. Made by the media service and uploaded by the Service Agent Node to the uploader's PDN. Present only when the original's longest side exceeds 1600 px or a PNG or HEIC original exceeds 2 MB; clients show the original otherwise.
maxSize: 2000000accept: image/jpeg
durationMs
integerVideo duration in milliseconds, set by the media service.
minimum: 0
height
integerOrientation-corrected height in pixels of the original, set by the media service.
minimum: 1
knownValues: photo | video
manualTakenAt
string · datetimeUploader correction sent to media updateUserInput; omitted when cleared. Effective takenAt and its source come from media.
maxSize: 314572800accept: image/jpeg, image/png, image/webp, image/heic, video/mp4, video/quicktime
note
stringmaxLength: 3000maxGraphemes: 300
people
arraymaxLength: 20
poster
blobVideo poster frame. Made by the media service and uploaded by the Service Agent Node to the uploader's PDN; absent until processing has produced it.
maxSize: 2000000accept: image/jpeg
sidecar
blobXMP sidecar the media service wrote for the original (application/xmp+xml), uploaded by the Service Agent Node to the uploader's PDN with the uploader's own session, which needs the blob token for that type.
maxSize: 1000000accept: application/xmp+xml
takenAt
string · datetimeCapture time from file metadata, otherwise upload time. Until processing finishes, the upload time is used.
takenAtSource
stringEffective capture-time provenance returned by media: manual, file metadata, file modification time or upload fallback.
knownValues: exif | upload | manual | file_modified
thumb
blob320 px thumbnail. Made by the media service and uploaded by the Service Agent Node to the uploader's PDN; absent until processing has produced it.
maxSize: 200000accept: image/jpeg
width
integerOrientation-corrected width in pixels of the original, set by the media service.
minimum: 1
#person
objectProperties
maxLength: 500maxGraphemes: 50
relationship
stringmaxLength: 200maxGraphemes: 20
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Full media snapshot; additional fields are allowed and retained.
-
One finished version of a family work: the video the media service made, stored as a blob on the root admin's PDN and referenced from the family sphere (root admin repo, written by the Service Agent Node with the root admin's session). The record key is deterministic, "v1-" plus the first 32 hex characters of sha256 over homeId, artworkKey, mediaArtworkId and compositionVersion joined with newlines, so a retried write replaces the same record with the same content and other content under the sam
-
A private media original with an optional safe local thumbnail.
-
ai.newnal.illi.media.uploadItem
procedureUpload one photo or video. multipart/form-data parts: homeId, file, timezone?, people? (JSON array of {name, relationship?}, at most 20 people), note? (at most 300 graphemes), takenAt? (offset-bearing timestamp). Unknown parts are ignored. A manual takenAt is queued after registration through updateUserInput. Otherwise capture time comes from file metadata, then upload time. Same-file content in one home returns the existing active original across uploaders, ignoring the new people/note/takenAt
-
An immutable, public, metadata-allowlisted media rendition.