Template Convention Metadata

February 3, 2026 ยท View on GitHub

Description

This convention defines [brief description of what this convention does]. All properties use the template: namespace prefix (or nested template object) and are placed at the root attributes level following the Zarr Conventions Specification.

[Add more detailed description of the convention, its purpose, and how it fits into the Zarr ecosystem. Explain what problem it solves and how it should be used.]

Motivation

  • First benefit: Explanation of the first key benefit this convention provides
  • Second benefit: Explanation of the second key benefit
  • Third benefit: Explanation of additional benefits
  • Use case alignment: How this convention aligns with common use cases in the domain

Convention Registration

The convention must be registered in zarr_conventions:

{
  "zarr_conventions": [
    {
      "schema_url": "https://raw.githubusercontent.com/zarr-conventions/template/refs/tags/v1/schema.json",
      "spec_url": "https://github.com/zarr-conventions/template/blob/v1/README.md",
      "uuid": "00000000-0000-0000-0000-000000000000",
      "name": "template:",
      "description": "Brief description of the convention"
    }
  ]
}

Applicable To

This convention can be used with these parts of the Zarr hierarchy:

  • Group
  • Array

Properties

All properties are placed at the root attributes level. To avoid attribute name collisions with other conventions, this convention supports the following pattern [remove the pattern irrelevant for this convention]:

Individual attributes are prefixed with template:. This is the recommended approach as it enables better composability - other conventions can extend objects defined by this convention.

Convention metadata name: template:

Field NameTypeDescription
template:new_fieldstringREQUIRED. Describe the required field...
template:xyzXYZ ObjectDescribe the field...
template:another_one[number]Describe the field...

Example:

{
  "attributes": {
    "zarr_conventions": [{ "name": "template:", "spec_url": "..." }],
    "template:new_field": "example value",
    "template:xyz": { "x": 1.0, "y": 2.0, "z": 3.0 }
  }
}

2. Nested Pattern

All convention properties are nested under a single template key.

Convention metadata name: template

Field NameTypeDescription
templateTemplate ObjectREQUIRED. Template convention properties

Example:

{
  "attributes": {
    "zarr_conventions": [{ "name": "template", "spec_url": "..." }],
    "template": {
      "new_field": "example value",
      "xyz": { "x": 1.0, "y": 2.0, "z": 3.0 }
    }
  }
}

Template Object

When using the nested pattern, all properties are contained in the template object:

Field NameTypeDescription
new_fieldstringREQUIRED. Describe the required field...
xyzXYZ ObjectDescribe the field...
another_one[number]Describe the field...

Additional Field Information

new_field (template:new_field or template.new_field)

This is a much more detailed description of the field new_field...

XYZ Object

This is the introduction for the purpose and the content of the XYZ Object...

Field NameTypeDescription
xnumberREQUIRED. Describe the required field...
ynumberREQUIRED. Describe the required field...
znumberREQUIRED. Describe the required field...

Known Implementations

This section helps potential implementers assess the convention's maturity and adoption, and provides a way for the community to collaborate on future revisions.

Libraries and Tools

  • Library/Tool Name - Brief description of the implementation

    • Language: Python/JavaScript/Rust/etc.
    • Status: Experimental/Stable/Production
    • Maintainer: @github-handle
    • Since: Version X.Y or Date
  • Another Implementation - Description

    • Language: Language
    • Status: Status
    • Maintainer: @handle
    • Since: Version/Date

Datasets Using This Convention

Resources

  • Tutorials, blog posts, or other resources demonstrating this convention
  • Community discussions or working groups

If you implement or use this convention, please add your implementation to this list by submitting a pull request.

Acknowledgements

This template is based on the STAC extensions template.