product-full.schema.json¶
This schema validates one product in the Lens Full products[] array.
It combines common fields such as identity and physical characteristics with exactly one specification block corresponding to the product type.
Top-level fields¶
id, productType, identity, lifecycle, officialProductPages, mount, physical, controls, and accessories are required for every product.
$schema, electronicServices, and the specification blocks for each product type have the additional conditions described in the next section.
| Path | Type/value | Description |
|---|---|---|
$schema |
string | Reference to a JSON Schema. product-record requires it in canonical records, and generation removes it from distribution data |
id |
ID string | ID unique within the lenses namespace. Uses a human-readable slug format with lowercase letters and digits separated by hyphens. Do not parse product information from the string. Used in filenames, research results, and cross-product references |
productType |
lens / teleconverter / pinhole |
Value that selects the product-type block to use |
identity |
identity | Manufacturer ID, brand ID, product name, model numbers, alternate names, and variants |
lifecycle |
lifecycle | Product release announcement date and status designations from the manufacturer or brand |
officialProductPages |
officialProductPage[] | Official main pages for the product itself. Use [] when no eligible page remains |
mount |
mount | Connection to Nikon Z mount and electronic contacts |
physical |
physical | Dimensions, weight, protection claims, filters, and tripod support |
controls |
control[] or null |
Controls such as rings, switches, and buttons |
accessories |
accessories or null |
Supplied or separately sold accessories |
electronicServices |
electronicServices or null |
Connections used for firmware updates, configuration, and control |
lens |
lens | Lens specification block |
teleconverter |
teleconverter | Teleconverter specification block |
pinhole |
pinhole | Specification block for pinholes and related imaging modes |
Product types and specification blocks¶
Only the block corresponding to productType is required and permitted.
productType |
Required block | Prohibited blocks |
|---|---|---|
lens |
lens |
teleconverter, pinhole |
teleconverter |
teleconverter |
lens, pinhole |
pinhole |
pinhole |
lens, teleconverter |
Electronic contacts and product-side connection services¶
electronicServices records product connections used for firmware updates, configuration, or control, rather than functions carried through the mount contacts.
mount.electronicContacts |
electronicServices |
|---|---|
{ "present": true, ... } |
Required. null is also permitted when accepted published evidence is unavailable |
{ "present": false } |
May be omitted; may be recorded when an independent USB connection, dock, or similar service is published |
null |
May be omitted; may be recorded when a connection service is established |
The absence of mount contacts does not by itself establish the absence of an independent connection service.
However, when electronicServices.connections[].method is camera-body, communication uses the camera mount contacts, so mount.electronicContacts.present must be true.
This condition does not apply to direct-usb or dock.
External-length behavior for lenses¶
For productType: "lens", applicable external-behavior fields are not omitted; use null when accepted published evidence does not establish a value.
| Condition | Rule under physical |
|---|---|
| Every lens | externalLengthDuringFocus and isRetractableForStorage are required |
lens.focalLength.kind: "zoom" |
externalLengthDuringZoom is required |
lens.focalLength.kind: "prime" |
externalLengthDuringZoom is prohibited |
lens.focus.opticalFocusingSystems[].type: "internal-focusing" or "rear-focusing" |
externalLengthDuringFocus is "constant" |
lens.zoom.opticalZoomingSystems[].type: "internal-zooming" |
externalLengthDuringZoom is required and is "constant" |
constant means that operation does not change external length, while variable means that it does.
null means that accepted published evidence does not establish the behavior.
See Reading data values for the meanings of omission, null, an empty array, and false.
Related pages¶
- product-record: the
$schemafield and placement rules added to canonical records - product-components: blocks shared by all product types
- Field reference for lenses and related optical products: field explanations based on actual data