adapter-components.schema.json¶
Defines the product-information blocks shared by mount adapters. It is a collection of definitions referenced by adapter-full, not a schema that validates a standalone JSON file.
Definition groups¶
| Definition | Contents |
|---|---|
identity |
Manufacturer, brand, product name, model numbers, alternate names, and variants |
lifecycle |
Product release announcement date and official designations from the manufacturer or brand |
officialProductPage |
Official product page URL, region, language, and publisher |
mountConfiguration |
Combination of the source lens-side mount and the Nikon Z mount |
electronics |
Electronic contacts and electronic functions available through the adapter |
conversionOptics |
Presence of conversion optics and their effects on focal length and maximum aperture |
mechanisms |
Additional mechanisms such as aperture rings, helicoids, and shift functionality |
physical |
Dimensions, weight, official environmental-protection claims, and tripod support |
See Shared definitions for smaller definitions such as IDs, strings, region codes, and language tags.
Examples of shared blocks¶
The following examples show where the blocks appear in the canonical record for the Mount Adapter FTZ II. Each code sample extracts only the blocks or array elements needed for the explanation from the actual canonical record.
Source file: data/records/adapters/nikon/mount-adapter-ftz-ii.json
Referenced fields: identity, lifecycle
{
"identity": {
"manufacturerId": "nikon",
"brandId": "nikon",
"productName": "Mount Adapter FTZ II",
"modelNumberOptions": null,
"alternateNames": [
{
"name": "マウントアダプター FTZ II",
"region": "JP",
"language": "ja"
}
],
"variants": null
},
"lifecycle": {
"announcementDate": "2021-10-28",
"officialDesignations": []
}
}
Source file: data/records/adapters/nikon/mount-adapter-ftz-ii.json
Referenced element: officialProductPages[1]
Source file: data/records/adapters/nikon/mount-adapter-ftz-ii.json
Referenced fields: mountConfigurations, electronics, electronicServices, conversionOptics, mechanisms
{
"mountConfigurations": [
{
"lensSideMountSystemId": "nikon-f",
"cameraSideMountSystemId": "nikon-z",
"lensRetention": null,
"lensRearProtrusionLimits": null
}
],
"electronics": {
"electronicContacts": true,
"autofocus": true,
"cameraControlledAperture": true,
"lensStabilizationCommunication": true,
"manualFocusAssistance": true,
"metadataTransmission": {
"present": true,
"standards": [
"exif"
]
},
"lensPowerTransmission": null,
"recordingTriggerTransmission": null
},
"electronicServices": null,
"conversionOptics": {
"present": false
},
"mechanisms": []
}
Source file: data/records/adapters/nikon/mount-adapter-ftz-ii.json
Referenced field: physical
{
"physical": {
"dimensionMeasurements": [
{
"widthMm": 70,
"heightMm": 70,
"lengthMm": 36,
"approximate": true,
"conditions": {
"excludesProjections": true
}
}
],
"weightMeasurements": [
{
"grams": 125,
"approximate": true,
"conditions": {}
}
],
"officialEnvironmentalProtectionClaims": [
{
"types": [
"dust-resistant",
"drip-resistant"
],
"scope": {
"kind": "product"
},
"conditions": {}
}
],
"tripodSupport": {
"present": false
}
}
}
Identity¶
All six fields directly under identity are required.
Even when model numbers, alternate names, or variants cannot be confirmed from accepted published evidence, do not omit their fields. Record null instead.
See the shared definition of modelNumberOptions for which identifiers are treated as model numbers.
| Path | Type/value | Meaning |
|---|---|---|
identity.manufacturerId |
ID string | ID of the entity that manufactures the product, registered in the manufacturer and brand registry |
identity.brandId |
ID string | ID of the brand displayed on the product and used to identify it commercially, registered in the manufacturer and brand registry |
identity.productName |
string | Official product name, including its capitalization and punctuation |
identity.modelNumberOptions |
string[] or null |
Model numbers confirmed in official sources |
identity.alternateNames |
alternateName[] or null |
Officially confirmed alternate names, such as regional or former names |
identity.alternateNames[].name |
string | Alternate name. Required in every entry |
identity.alternateNames[].brandId |
ID string | Brand ID used with the alternate name when it differs from identity.brandId |
identity.alternateNames[].region |
two-letter region code | Region in which the alternate name is used |
identity.alternateNames[].language |
language tag | Language of the alternate name |
identity.variants |
variant[] or null |
Color or mount variants treated as one product |
identity.variants[].variantId |
ID string | Variant ID referenced from mountConfigurations[]. Required in every entry |
identity.variants[].name |
string | Official or identifying name of the variant. Required in every entry |
identity.variants[].modelNumberOptions |
string[] or null |
Official model numbers specific to the variant. Required in every entry |
identity.variants[].color |
string | Official color name |
Release information¶
announcementDate and officialDesignations are required.
Do not use a development-announcement date for announcementDate.
| Path | Type/value | Meaning |
|---|---|---|
lifecycle.announcementDate |
date or null |
Date on which the manufacturer or brand officially announced the product's release |
lifecycle.officialDesignations |
designation[] or null |
Official manufacturer or brand designations such as legacy product, sales ended, production ended, or discontinued. After checking the collection, use [] when there is no applicable designation |
lifecycle.officialDesignations[].type |
legacy-product / sales-ended / production-ended / discontinued |
Normalized form of the official designation. Required in every entry |
lifecycle.officialDesignations[].region |
two-letter region code | Region to which the designation applies |
lifecycle.officialDesignations[].observedOn |
date | Date on which the designation was observed |
officialDesignations: [] does not mean that the product is currently sold, in stock, or available.
Official product page¶
Every entry in officialProductPages[] has five fields directly under it: url, pageFamilies, region, language, and publisher.
| Path | Type/value | Meaning |
|---|---|---|
officialProductPages[].url |
HTTP(S) URL | Main official landing page for the exact product |
officialProductPages[].pageFamilies |
enum[] | One or more page families selected from home-country, global, japan, nikon-imaging-japan, or usa |
officialProductPages[].region |
two-letter region code or null |
Target region. Use null for a global page or another page that cannot be limited to one region |
officialProductPages[].language |
language tag or null |
Primary language of the page |
officialProductPages[].publisher |
object | Publisher type and name |
officialProductPages[].publisher.type |
manufacturer-or-brand / authorized-distributor |
Whether the page is published by the manufacturer or brand itself, or by an authorized distributor |
officialProductPages[].publisher.name |
string | Publisher name |
Both publisher.type and publisher.name are required within publisher.
Mount configurations¶
mountConfigurations must contain at least one entry.
Duplicate entries are not allowed.
| Path | Type/value | Meaning |
|---|---|---|
mountConfigurations[].lensSideMountSystemId |
mount system ID | Source lens-side mount. Required in every entry |
mountConfigurations[].cameraSideMountSystemId |
"nikon-z" |
Target camera-side mount. Required in every entry |
mountConfigurations[].lensRetention |
lensRetention or null |
Lens-side retention method. Required in every entry |
mountConfigurations[].lensRetention.type |
mount-defined / positive-lock / locking-ring / other |
Retention classification |
mountConfigurations[].lensRetention.officialName |
string (optional) | Stable manufacturer name for the retention method |
mountConfigurations[].lensRearProtrusionLimits |
lensRearProtrusionLimit[] or null |
Permitted rear-lens protrusion. Required in every entry |
mountConfigurations[].lensRearProtrusionLimits[].maximumMm |
non-negative number | Maximum protrusion from the reference plane in millimeters |
mountConfigurations[].lensRearProtrusionLimits[].referencePlane |
mount-flange / mount-face / other / null |
Measurement reference plane |
mountConfigurations[].lensRearProtrusionLimits[].conditions |
specializedConditions | Applicable conditions |
mountConfigurations[].variantId |
ID string | Corresponding identity.variants[].variantId |
lensSideMountSystemId cannot be nikon-z.
Repository validation checks that both mount system IDs are registered and that variantId references an ID in identity.variants.
Electronic functions¶
electronics is an object or null.
When it is an object, all eight fields directly under it are required.
Each value describes a function confirmed for the adapter product. It does not guarantee operation with every combination of lens, camera, and firmware.
| Path | Type/value | Meaning |
|---|---|---|
electronics.electronicContacts |
boolean or null |
Presence of electronic contacts |
electronics.autofocus |
boolean or null |
Autofocus support |
electronics.cameraControlledAperture |
boolean or null |
Camera-controlled aperture |
electronics.metadataTransmission |
metadataTransmission | Shooting-metadata transmission and published standards |
electronics.lensStabilizationCommunication |
boolean or null |
Communication with in-lens image stabilization |
electronics.manualFocusAssistance |
boolean or null |
Integration with manual-focus assistance |
electronics.lensPowerTransmission |
boolean or null |
Camera-to-lens power transmission |
electronics.recordingTriggerTransmission |
boolean or null |
Lens-to-camera recording-trigger transmission |
When electronicContacts is false, the other seven fields must also contain confirmed negative values.
Firmware updates and configuration connections are recorded in the shared electronicServices definition.
This separation also represents USB or dock services that do not use lens contacts.
Conversion optics¶
The structure of conversionOptics depends on what has been confirmed about the presence of conversion optics.
| State | Structure to record |
|---|---|
| Accepted published evidence does not establish whether optics are present | null |
| Confirmed that no optics are present | { "present": false } |
| Confirmed that optics are present | Object containing present and the seven optical-specification fields in the table below |
| Path | Type/value | Meaning |
|---|---|---|
conversionOptics.present |
boolean | Whether the adapter contains optics used for mount conversion |
conversionOptics.focalLengthMultiplier |
positive number or null |
Focal-length multiplier produced by the conversion optics |
conversionOptics.apertureChange |
apertureChange or null |
Change in maximum aperture produced by the conversion optics |
conversionOptics.apertureChange.direction |
brighter / darker / unchanged |
Whether the maximum aperture becomes brighter, darker, or remains unchanged |
conversionOptics.apertureChange.stops |
non-negative number | Absolute change in stops; 0 for unchanged and positive otherwise |
conversionOptics.apertureChange.relation |
exact / approximately / less-than |
Whether the published value is exact, approximate, or less than the stated number of stops; exact for unchanged |
conversionOptics.opticalConstruction |
opticalConstruction or null |
Group and element counts for the conversion optics |
conversionOptics.specialElements |
specialElement[] or null |
Special optical elements; use [] when checked and none apply |
conversionOptics.coatings |
coating[] or null |
Coatings on the conversion optics; use [] when checked and none apply |
conversionOptics.supportedImageCircleDiameterMm |
imageCircleDiameter or null |
Supported image-circle diameter in millimeters |
conversionOptics.supportedImageCircleDiameterMm.kind |
value / range |
Selects a single value or a range |
conversionOptics.supportedImageCircleDiameterMm.diameterMm |
positive number | Image-circle diameter in millimeters for value |
conversionOptics.supportedImageCircleDiameterMm.minimumDiameterMm |
positive number | Lower bound of a range in millimeters |
conversionOptics.supportedImageCircleDiameterMm.maximumDiameterMm |
positive number | Upper bound of a range in millimeters |
conversionOptics.maximumSupportedAperture |
maximumSupportedAperture or null |
Fastest published maximum aperture supported for an attached lens |
conversionOptics.maximumSupportedAperture.scale |
f-number / t-number |
Selects the f-number or T-number scale |
conversionOptics.maximumSupportedAperture.value |
positive number | Aperture value; for example, scale: "t-number" with value: 2.8 represents T2.8 |
When present is false, do not record optical specifications other than present.
When it is true, all seven fields are required. Record null for an individual field not established by accepted published evidence.
For an image-circle range, repository validation also checks that minimumDiameterMm does not exceed maximumDiameterMm.
Additional mechanisms¶
mechanisms is an array of objects describing the confirmed additional mechanisms without duplicates, or null.
| Path | Type/value | Meaning |
|---|---|---|
mechanisms[].type |
aperture-ring / drop-in-filter / flange-focal-distance-adjustment / helicoid / shift / tilt / rotation / other |
Mechanism classification |
mechanisms[].officialName |
string (optional) | Stable manufacturer name for the mechanism |
mechanisms[].movements |
movements or null |
Nominal shift, tilt, or rotation measurements |
mechanisms[].conditions |
specializedConditions | Conditions under which the mechanism applies |
After checking the collection of additional mechanisms, use [] when there are no applicable mechanisms and null when they cannot be confirmed from accepted published evidence.
Shift, tilt, and rotation mechanisms require movements, which can contain only the corresponding measurement type.
Use movements.shiftMeasurements for shift, movements.tiltMeasurements for tilt, and movements.rotationMeasurements for rotation.
Use movements: null when the mechanism is established but its nominal range is not.
Do not use a movements object whose corresponding measurement field is null.
Other mechanism types omit movements.
Record lens retention under the applicable mountConfigurations[].lensRetention instead of mixing it with additional mechanisms.
Dimensions, weight, environmental-protection claims, and tripod support¶
dimensionMeasurements, weightMeasurements, officialEnvironmentalProtectionClaims, and tripodSupport are all required directly under physical.
| Path | Type/value | Meaning |
|---|---|---|
physical.dimensionMeasurements |
dimensionMeasurement[] or null |
Official dimensions. At least one entry when known |
physical.dimensionMeasurements[].maximumDiameterMm |
positive number | Maximum diameter in millimeters |
physical.dimensionMeasurements[].lengthMm |
positive number | Length in millimeters under the manufacturer's measurement convention |
physical.dimensionMeasurements[].widthMm |
positive number | Width in millimeters |
physical.dimensionMeasurements[].heightMm |
positive number | Height in millimeters |
physical.dimensionMeasurements[].unclassifiedDimensionsMm |
positive number[] | Dimensions whose axes are not identified by the published source, in published order; at least one value |
physical.dimensionMeasurements[].approximate |
boolean | Whether the source qualifies the value as approximate; omission means that it does not |
physical.dimensionMeasurements[].conditions |
dimensionMeasurementConditions | Measurement conditions; required in every entry |
physical.dimensionMeasurements[].conditions.variantId |
ID string | Product variant to which the dimensions apply |
physical.dimensionMeasurements[].conditions.componentStates |
measurementComponentStates | Whether each stated component was attached during measurement |
physical.dimensionMeasurements[].conditions.excludesProjections |
boolean | Whether the dimensions exclude projections |
physical.dimensionMeasurements[].note |
string | Source-explicit measurement condition or definition that structured fields cannot represent |
physical.weightMeasurements |
weightMeasurement[] or null |
Official weight. At least one entry when known |
physical.weightMeasurements[].grams |
positive number | Weight in grams. Required in every entry |
physical.weightMeasurements[].approximate |
boolean | Whether the source qualifies the value as approximate; omission means that it does not |
physical.weightMeasurements[].conditions |
weightMeasurementConditions | Weight conditions; required in every entry |
physical.weightMeasurements[].conditions.variantId |
ID string | Product variant to which the weight applies |
physical.weightMeasurements[].conditions.componentStates |
measurementComponentStates | Whether each stated component was attached during measurement |
physical.weightMeasurements[].note |
string | Source-explicit measurement condition that structured fields cannot represent |
physical.officialEnvironmentalProtectionClaims |
environmentalClaim[] or null |
Official dust-, drip-, weather-, or similar protection claims; use [] when checked and none apply |
physical.tripodSupport |
tripodSupport | Presence of tripod support and its components |
measurementComponentStates records only components explicitly addressed by the source, using boolean values under tripodCollarAssembly, tripodFoot, tripodMountCover, lensHood, frontCap, rearCap, or dropInFilter.
Each dimension entry must contain at least one of maximumDiameterMm, lengthMm, widthMm, heightMm, or unclassifiedDimensionsMm.
When tripodSupport.present is false, the object contains only present.
Related pages¶
- Shared definitions: Smaller definitions such as IDs, strings, region codes, and language tags
- adapter-full: Structure of one product assembled from these definitions
- Mount adapter field reference: Descriptions of each block using actual data