Overview
Version 1.0 is the schema shipped in the macOS app today. Packets always include silver:SchemaVersion and silver:SchemaUrl. Future 1.x updates will be additive only; breaking changes will move to a new major URI.
Always 1.0. Signals compatibility for readers.
Embed roll-level context in every frame so TIFF/JPEG exports retain provenance when copied outside Silver.
Namespace
Declare the Silver namespace in your XMP packet:
prefix: silver uri: https://silverlab.app/xmp/1.0/
Field registry (as written by the macOS app)
Only fields with values are written. The app always includes SchemaVersion and SchemaUrl; everything else is optional and driven by field configuration.
Schema identification
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:SchemaVersion |
Text | Yes | 1.0 | Schema line version. | 1.0 |
silver:SchemaUrl |
Text | Yes | https://silverlab.app/xmp/1.0/ | Canonical URL for v1.0. | https://silverlab.app/xmp/1.0/ |
Order & provenance
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:LabName | Text | No | Lab or studio name. | Silver Lab | |
silver:OrderId | Text | No | Lab order/job number. | ORD-2024-001234 | |
silver:CustomerId | Text | No | Customer account identifier. | CUST-5678 | |
silver:ScanDate | DateTime | No | ISO 8601 | Scan timestamp. | 2024-12-16T14:30:00Z |
silver:TechnicianId | Text | No | Technician who scanned. | TECH-42 | |
silver:LabLocation | Text | No | Physical lab location. | Brooklyn Lab A | |
silver:IsRescan | Boolean | No | true/false | True if this is a rescan. | true |
silver:OriginalScanDate | DateTime | No | ISO 8601 | Date of original scan. | 2024-11-01T10:15:00Z |
Film capture
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:FilmManufacturer | Text | No | Film brand. | Kodak | |
silver:FilmStock | Text | No | Film stock name. | Portra 400 | |
silver:FilmIsoBox | Integer | No | Box speed. | 400 | |
silver:FilmIsoShot | Integer | No | EI the film was shot at. | 800 | |
silver:FilmFormat | Text | No | 35mm | 120 | 4x5 | 8x10 | APS | 110 | Other | Physical format. | 120 |
silver:FrameCount | Integer | No | Frames on roll. | 36 | |
silver:FilmExpiredStatus | Text | No | fresh | expired | unknown | Expiration status. | fresh |
silver:FilmExpirationYear | Integer | No | Expiration year. | 2019 | |
silver:CameraNotes | Text | No | Camera/shoot notes. | Leica M6, 50mm | |
silver:PhotographerNotes | Text | No | Photographer intent/notes. | Preferred warm tone rendering. |
Processing
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:ProcessType | Text | No | c41 | e6 | bw | ecn2 | other | Development process. | c41 |
silver:ChemistryBrand | Text | No | Chemistry used. | Cinestill Cs41 | |
silver:PushPullApplied | Boolean | No | true/false | Whether push/pull applied. | true |
silver:PushPullStops | Real | No | Stops pushed (+) or pulled (-). | 1.0 | |
silver:DevelopmentTime | Text | No | Development time. | 8 minutes | |
silver:DevelopmentTemperature | Text | No | Development temperature (text value). | 38C | |
silver:LabStandardProfile | Text | No | Lab standard process/profile identifier. | SilverLab-Std-2024 | |
silver:HandProcessed | Boolean | No | true/false | Hand processed vs machine. | false |
silver:ProcessingNotes | Text | No | Freeform processing notes. | Extended bleach, replenished fresh. |
Scanner hardware
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:ScannerManufacturer | Text | No | Scanner brand. | Noritsu | |
silver:ScannerModel | Text | No | Scanner model. | LS-600 | |
silver:ScannerSerial | Text | No | Serial number. | NK-001234 | |
silver:ScannerType | Text | No | drum | ccd | cmos | other | Scanner technology. | ccd |
silver:WetScan | Boolean | No | true/false | True if wet-mounted scan. | false |
silver:HolderType | Text | No | Film holder type. | glass |
Scanner settings
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:ScanDpi | Integer | No | Scan resolution in DPI. | 4000 | |
silver:BitDepth | Integer | No | Bits per channel. | 16 | |
silver:MultiPass | Boolean | No | true/false | Multi-pass scanning used. | false |
silver:DustRemovalIce | Boolean | No | true/false | Infrared dust removal used. | true |
silver:Sharpening | Text | No | none | low | medium | high | Sharpening level. | medium |
silver:GrainReduction | Text | No | none | low | medium | high | Grain reduction level. | low |
silver:ExposureAdjustmentsApplied | Boolean | No | true/false | Exposure adjustments applied. | true |
silver:AutoContrast | Boolean | No | true/false | Auto-contrast applied. | false |
silver:ManualOverridesNotes | Text | No | Notes on manual overrides. | Adjusted shadows +0.5 |
Color & tone
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:BaseColorProfile | Text | No | neutral | vivid | flat | custom | Base color profile. | neutral |
silver:ColorCorrectionApplied | Boolean | No | true/false | Color correction applied. | true |
silver:WhiteBalanceSource | Text | No | auto | manual | custom | White balance source. | manual |
silver:ContrastCurve | Text | No | soft | normal | hard | custom | Contrast curve. | normal |
silver:HighlightRecovery | Boolean | No | true/false | Highlight recovery used. | false |
silver:BlackPointAdjusted | Boolean | No | true/false | Black point adjusted. | true |
silver:LutAppliedName | Text | No | Name of applied LUT. | Kodak 2383 |
Digital file properties
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:EmbeddedICCProfile | Text | No | Name of embedded ICC profile. | Adobe RGB (1998) | |
silver:FrameNumber | Text | No | Frame identifier/number for the file. | 118-06 |
Roll & batch structure
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:RollId | Text | No | Unique roll identifier. | ROLL-2024-456 | |
silver:BatchId | Text | No | Batch processing identifier. | BATCH-20241216-03 | |
silver:FrameSpacingNormalized | Boolean | No | true/false | Frame spacing normalized. | true |
silver:OrientationCorrected | Boolean | No | true/false | Orientation auto-corrected. | true |
silver:CropApplied | Boolean | No | true/false | Auto-cropped to frame. | false |
silver:BorderRetained | Boolean | No | true/false | Film borders retained. | false |
silver:FrameNumberingStart | Integer | No | Starting frame number when auto numbering is enabled. | 1 |
QC & notes
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:QcPassed | Boolean | No | true/false | Passed QC inspection. | true |
silver:DustWarning | Boolean | No | true/false | Significant dust present. | false |
silver:ScratchesPresent | Boolean | No | true/false | Scratches detected. | false |
silver:UnderexposedFrames | Boolean | No | true/false | Frames underexposed. | false |
silver:OverexposedFrames | Boolean | No | true/false | Frames overexposed. | false |
silver:TechnicianNotes | Text | No | Notes from technician. | Required extra passes for detail. | |
silver:CustomerNotes | Text | No | Notes from/for customer. | Customer requested warm tone. |
Rights & usage
| Field | Type | Required | Allowed values | Description | Example |
|---|---|---|---|---|---|
silver:ArchiveTier | Text | No | master | web | Archive classification. | master |
silver:UsageRestrictions | Text | No | Usage restrictions. | Personal use only | |
silver:ReprintRecommended | Boolean | No | true/false | Rescan recommended for prints. | false |
silver:LongTermArchive | Boolean | No | true/false | Designated for long-term archive. | true |
silver:CopyrightHolder | Text | No | Copyright holder. | Silver Lab |
Standard mapping
To preserve meaning in generic systems, mirror Silver fields into common XMP properties:
dc:description— summary of roll + frame.dc:subject— keyword tokens such asFilm:,Process:,PushPull:,Format:,Scanner:,Lab:,RollId:.dc:source— roll identifier and lab.dc:rights— human-readable rights language.Iptc4xmpCore:RightsUsageTerms— usage statement aligned withsilver:UsageRestrictions.
Mirroring is optional but recommended for maximum interoperability.
Examples
Download full packets or review key excerpts below.
<rdf:Description rdf:about="" xmlns:silver="https://silverlab.app/xmp/1.0/" silver:SchemaVersion="1.0" silver:SchemaUrl="https://silverlab.app/xmp/1.0/" silver:RollId="SL-2024-118" silver:FrameNumber="118-06" silver:ProcessType="c41" silver:ScannerModel="Frontier SP-3000" silver:ScanDpi="4000" />
Machine-readable artifacts
Use these files to integrate Silver fields into pipelines and validators:
Fields marked required in the schema must be present for conformance. Additional Silver fields may be added in future 1.x releases without breaking compatibility.