From ff765810461da378cfc6bc4c23addef0d52dfd11 Mon Sep 17 00:00:00 2001 From: Norman Rzepka Date: Thu, 30 May 2024 16:55:01 +0100 Subject: [PATCH 1/7] Changes to the spec and schemata for RFC-2 --- latest/examples/bf2raw/image.json | 8 +- latest/examples/bf2raw/plate.json | 51 +- .../label_strict/colors_properties.json | 57 +- .../multiscales_example.json | 105 +- .../multiscales_transformations.json | 81 +- latest/examples/ome/series-2.json | 8 +- .../examples/plate_strict/plate_2wells.json | 161 +- .../examples/plate_strict/plate_6wells.json | 123 +- latest/examples/well_strict/well_2fields.json | 29 +- latest/examples/well_strict/well_4fields.json | 45 +- latest/index.bs | 163 +- latest/schemas/bf2raw.schema | 37 +- latest/schemas/image.schema | 92 +- latest/schemas/label.schema | 39 +- latest/schemas/ome.schema | 39 +- latest/schemas/plate.schema | 268 +-- latest/schemas/strict_image.schema | 22 +- latest/schemas/strict_label.schema | 17 +- latest/schemas/strict_plate.schema | 35 +- latest/schemas/strict_well.schema | 13 +- latest/schemas/well.schema | 78 +- latest/tests/image_suite.json | 1509 ++++++++--------- latest/tests/label_suite.json | 142 +- latest/tests/plate_suite.json | 1347 ++++++++------- latest/tests/strict_image_suite.json | 558 +++--- latest/tests/strict_label_suite.json | 18 +- latest/tests/strict_plate_suite.json | 277 ++- latest/tests/strict_well_suite.json | 45 +- latest/tests/test_validation.py | 9 +- latest/tests/well_suite.json | 44 +- rfc/2/index.md | 2 +- 31 files changed, 2759 insertions(+), 2663 deletions(-) diff --git a/latest/examples/bf2raw/image.json b/latest/examples/bf2raw/image.json index c5eadb8a..0a6445d1 100644 --- a/latest/examples/bf2raw/image.json +++ b/latest/examples/bf2raw/image.json @@ -1,3 +1,7 @@ { - "bioformats2raw.layout" : 3 -} \ No newline at end of file + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { "bioformats2raw.layout": 3 } + } +} diff --git a/latest/examples/bf2raw/plate.json b/latest/examples/bf2raw/plate.json index bd98a16e..76865d36 100644 --- a/latest/examples/bf2raw/plate.json +++ b/latest/examples/bf2raw/plate.json @@ -1,22 +1,35 @@ { - "bioformats2raw.layout" : 3, - "plate" : { - "columns" : [ { - "name" : "1" - } ], - "name" : "Plate Name 0", - "wells" : [ { - "path" : "A/1", - "rowIndex" : 0, - "columnIndex" : 0 - } ], - "field_count" : 1, - "rows" : [ { - "name" : "A" - } ], - "acquisitions" : [ { - "id" : 0 - } ], - "version" : "0.4" + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "bioformats2raw.layout": 3, + "plate": { + "columns": [ + { + "name": "1" + } + ], + "name": "Plate Name 0", + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ], + "field_count": 1, + "rows": [ + { + "name": "A" + } + ], + "acquisitions": [ + { + "id": 0 + } + ] + } + } } } diff --git a/latest/examples/label_strict/colors_properties.json b/latest/examples/label_strict/colors_properties.json index c96820e1..42793d12 100644 --- a/latest/examples/label_strict/colors_properties.json +++ b/latest/examples/label_strict/colors_properties.json @@ -1,31 +1,36 @@ { - "image-label": { - "version": "0.5-dev", - "colors": [ - { - "label-value": 0, - "rgba": [0, 0, 128, 128] - }, - { - "label-value": 1, - "rgba": [0, 128, 0, 128] + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "image-label": { + "colors": [ + { + "label-value": 0, + "rgba": [0, 0, 128, 128] + }, + { + "label-value": 1, + "rgba": [0, 128, 0, 128] + } + ], + "properties": [ + { + "label-value": 0, + "area (pixels)": 1200, + "class": "intercellular space" + }, + { + "label-value": 1, + "area (pixels)": 1650, + "class": "cell", + "cell type": "neuron" + } + ], + "source": { + "image": "../../" + } } - ], - "properties": [ - { - "label-value": 0, - "area (pixels)": 1200, - "class": "intercellular space" - }, - { - "label-value": 1, - "area (pixels)": 1650, - "class": "cell", - "cell type": "neuron" - } - ], - "source": { - "image": "../../" } } } diff --git a/latest/examples/multiscales_strict/multiscales_example.json b/latest/examples/multiscales_strict/multiscales_example.json index 73e5286c..0fcc2434 100644 --- a/latest/examples/multiscales_strict/multiscales_example.json +++ b/latest/examples/multiscales_strict/multiscales_example.json @@ -1,54 +1,67 @@ { - "multiscales": [ + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "multiscales": [ { - "version": "0.5-dev", - "name": "example", - "axes": [ - {"name": "t", "type": "time", "unit": "millisecond"}, - {"name": "c", "type": "channel"}, - {"name": "z", "type": "space", "unit": "micrometer"}, - {"name": "y", "type": "space", "unit": "micrometer"}, - {"name": "x", "type": "space", "unit": "micrometer"} - ], - "datasets": [ + "name": "example", + "axes": [ + { "name": "t", "type": "time", "unit": "millisecond" }, + { "name": "c", "type": "channel" }, + { "name": "z", "type": "space", "unit": "micrometer" }, + { "name": "y", "type": "space", "unit": "micrometer" }, + { "name": "x", "type": "space", "unit": "micrometer" } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ { - "path": "0", - "coordinateTransformations": [{ - // the voxel size for the first scale level (0.5 micrometer) - "type": "scale", - "scale": [1.0, 1.0, 0.5, 0.5, 0.5] - }] - }, + // the voxel size for the first scale level (0.5 micrometer) + "type": "scale", + "scale": [1.0, 1.0, 0.5, 0.5, 0.5] + } + ] + }, + { + "path": "1", + "coordinateTransformations": [ { - "path": "1", - "coordinateTransformations": [{ - // the voxel size for the second scale level (downscaled by a factor of 2 -> 1 micrometer) - "type": "scale", - "scale": [1.0, 1.0, 1.0, 1.0, 1.0] - }] - }, + // the voxel size for the second scale level (downscaled by a factor of 2 -> 1 micrometer) + "type": "scale", + "scale": [1.0, 1.0, 1.0, 1.0, 1.0] + } + ] + }, + { + "path": "2", + "coordinateTransformations": [ { - "path": "2", - "coordinateTransformations": [{ - // the voxel size for the third scale level (downscaled by a factor of 4 -> 2 micrometer) - "type": "scale", - "scale": [1.0, 1.0, 2.0, 2.0, 2.0] - }] + // the voxel size for the third scale level (downscaled by a factor of 4 -> 2 micrometer) + "type": "scale", + "scale": [1.0, 1.0, 2.0, 2.0, 2.0] } - ], - "coordinateTransformations": [{ - // the time unit (0.1 milliseconds), which is the same for each scale level - "type": "scale", - "scale": [0.1, 1.0, 1.0, 1.0, 1.0] - }], - "type": "gaussian", - "metadata": { - "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given", - "method": "skimage.transform.pyramid_gaussian", - "version": "0.16.1", - "args": "[true]", - "kwargs": {"multichannel": true} + ] + } + ], + "coordinateTransformations": [ + { + // the time unit (0.1 milliseconds), which is the same for each scale level + "type": "scale", + "scale": [0.1, 1.0, 1.0, 1.0, 1.0] } + ], + "type": "gaussian", + "metadata": { + "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given", + "method": "skimage.transform.pyramid_gaussian", + "version": "0.16.1", + "args": "[true]", + "kwargs": { "multichannel": true } + } } - ] -} \ No newline at end of file + ] + } + } +} diff --git a/latest/examples/multiscales_strict/multiscales_transformations.json b/latest/examples/multiscales_strict/multiscales_transformations.json index 80dbedab..e6c14c79 100644 --- a/latest/examples/multiscales_strict/multiscales_transformations.json +++ b/latest/examples/multiscales_strict/multiscales_transformations.json @@ -1,47 +1,46 @@ { - "multiscales": [ + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "multiscales": [ { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [ - 1, - 1 - ], - "type": "scale" - } - ] - } - ], - "coordinateTransformations": [ + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ { - "scale": [ - 10, - 10 - ], - "type": "scale" + "scale": [1, 1], + "type": "scale" } - ], - "version": "0.5-dev", - "name": "image_with_coordinateTransformations", - "type": "foo", - "metadata": { - "key": "value" + ] + } + ], + "coordinateTransformations": [ + { + "scale": [10, 10], + "type": "scale" } + ], + "name": "image_with_coordinateTransformations", + "type": "foo", + "metadata": { + "key": "value" + } } - ] -} \ No newline at end of file + ] + } + } +} diff --git a/latest/examples/ome/series-2.json b/latest/examples/ome/series-2.json index be7e9ed6..660e1115 100644 --- a/latest/examples/ome/series-2.json +++ b/latest/examples/ome/series-2.json @@ -1,3 +1,9 @@ { - "series" : [ "0", "1" ] + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "series": ["0", "1"] + } + } } diff --git a/latest/examples/plate_strict/plate_2wells.json b/latest/examples/plate_strict/plate_2wells.json index 3578798f..c0df297f 100644 --- a/latest/examples/plate_strict/plate_2wells.json +++ b/latest/examples/plate_strict/plate_2wells.json @@ -1,91 +1,96 @@ { - "plate": { + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "plate": { "acquisitions": [ - { - "id": 1, - "maximumfieldcount": 1, - "name": "single acquisition", - "starttime": 1343731272000 - } + { + "id": 1, + "maximumfieldcount": 1, + "name": "single acquisition", + "starttime": 1343731272000 + } ], "columns": [ - { - "name": "1" - }, - { - "name": "2" - }, - { - "name": "3" - }, - { - "name": "4" - }, - { - "name": "5" - }, - { - "name": "6" - }, - { - "name": "7" - }, - { - "name": "8" - }, - { - "name": "9" - }, - { - "name": "10" - }, - { - "name": "11" - }, - { - "name": "12" - } + { + "name": "1" + }, + { + "name": "2" + }, + { + "name": "3" + }, + { + "name": "4" + }, + { + "name": "5" + }, + { + "name": "6" + }, + { + "name": "7" + }, + { + "name": "8" + }, + { + "name": "9" + }, + { + "name": "10" + }, + { + "name": "11" + }, + { + "name": "12" + } ], "field_count": 1, "name": "sparse test", "rows": [ - { - "name": "A" - }, - { - "name": "B" - }, - { - "name": "C" - }, - { - "name": "D" - }, - { - "name": "E" - }, - { - "name": "F" - }, - { - "name": "G" - }, - { - "name": "H" - } + { + "name": "A" + }, + { + "name": "B" + }, + { + "name": "C" + }, + { + "name": "D" + }, + { + "name": "E" + }, + { + "name": "F" + }, + { + "name": "G" + }, + { + "name": "H" + } ], - "version": "0.5-dev", "wells": [ - { - "path": "C/5", - "rowIndex": 2, - "columnIndex": 4 - }, - { - "path": "D/7", - "rowIndex": 3, - "columnIndex": 6 - } + { + "path": "C/5", + "rowIndex": 2, + "columnIndex": 4 + }, + { + "path": "D/7", + "rowIndex": 3, + "columnIndex": 6 + } ] + } } + } } diff --git a/latest/examples/plate_strict/plate_6wells.json b/latest/examples/plate_strict/plate_6wells.json index d2f06389..c07a8c5b 100644 --- a/latest/examples/plate_strict/plate_6wells.json +++ b/latest/examples/plate_strict/plate_6wells.json @@ -1,72 +1,77 @@ { - "plate": { + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "plate": { "acquisitions": [ - { - "id": 1, - "maximumfieldcount": 2, - "name": "Meas_01(2012-07-31_10-41-12)", - "starttime": 1343731272000 - }, - { - "id": 2, - "maximumfieldcount": 2, - "name": "Meas_02(201207-31_11-56-41)", - "starttime": 1343735801000 - } + { + "id": 1, + "maximumfieldcount": 2, + "name": "Meas_01(2012-07-31_10-41-12)", + "starttime": 1343731272000 + }, + { + "id": 2, + "maximumfieldcount": 2, + "name": "Meas_02(201207-31_11-56-41)", + "starttime": 1343735801000 + } ], "columns": [ - { - "name": "1" - }, - { - "name": "2" - }, - { - "name": "3" - } + { + "name": "1" + }, + { + "name": "2" + }, + { + "name": "3" + } ], "field_count": 4, "name": "test", "rows": [ - { - "name": "A" - }, - { - "name": "B" - } + { + "name": "A" + }, + { + "name": "B" + } ], - "version": "0.5-dev", "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - }, - { - "path": "A/2", - "rowIndex": 0, - "columnIndex": 1 - }, - { - "path": "A/3", - "rowIndex": 0, - "columnIndex": 2 - }, - { - "path": "B/1", - "rowIndex": 1, - "columnIndex": 0 - }, - { - "path": "B/2", - "rowIndex": 1, - "columnIndex": 1 - }, - { - "path": "B/3", - "rowIndex": 1, - "columnIndex": 2 - } + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + }, + { + "path": "A/2", + "rowIndex": 0, + "columnIndex": 1 + }, + { + "path": "A/3", + "rowIndex": 0, + "columnIndex": 2 + }, + { + "path": "B/1", + "rowIndex": 1, + "columnIndex": 0 + }, + { + "path": "B/2", + "rowIndex": 1, + "columnIndex": 1 + }, + { + "path": "B/3", + "rowIndex": 1, + "columnIndex": 2 + } ] + } } + } } diff --git a/latest/examples/well_strict/well_2fields.json b/latest/examples/well_strict/well_2fields.json index 6f43a911..b1531059 100644 --- a/latest/examples/well_strict/well_2fields.json +++ b/latest/examples/well_strict/well_2fields.json @@ -1,15 +1,20 @@ { - "well": { + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "well": { "images": [ - { - "acquisition": 0, - "path": "0" - }, - { - "acquisition": 3, - "path": "1" - } - ], - "version": "0.5-dev" + { + "acquisition": 0, + "path": "0" + }, + { + "acquisition": 3, + "path": "1" + } + ] + } } -} \ No newline at end of file + } +} diff --git a/latest/examples/well_strict/well_4fields.json b/latest/examples/well_strict/well_4fields.json index c2285d53..18eb60eb 100644 --- a/latest/examples/well_strict/well_4fields.json +++ b/latest/examples/well_strict/well_4fields.json @@ -1,23 +1,28 @@ { - "well": { + "zarr_format": 3, + "node_type": "group", + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + "well": { "images": [ - { - "acquisition": 1, - "path": "0" - }, - { - "acquisition": 1, - "path": "1" - }, - { - "acquisition": 2, - "path": "2" - }, - { - "acquisition": 2, - "path": "3" - } - ], - "version": "0.5-dev" + { + "acquisition": 1, + "path": "0" + }, + { + "acquisition": 1, + "path": "1" + }, + { + "acquisition": 2, + "path": "2" + }, + { + "acquisition": 2, + "path": "3" + } + ] + } } -} \ No newline at end of file + } +} diff --git a/latest/index.bs b/latest/index.bs index 26e27b3c..ee3b11bb 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -1,6 +1,6 @@
-Title: Next-generation file formats (NGFF)
-Shortname: ome-ngff
+Title: OME-Zarr specification
+Shortname: ome-zarr
 Level: 1
 Status: LS-COMMIT
 Status: w3c/ED
@@ -24,19 +24,13 @@ Status Text: will be provided between numbered versions. Data written with these
 Status Text: (an "editor's draft") will not necessarily be supported.
 
-OME-NGFF {#ome-ngff} --------------------- +OME-Zarr specification {#ome-zarr} +---------------------------------- The conventions and specifications defined in this document are designed to enable next-generation file formats to represent the same bioimaging data that can be represented in \[OME-TIFF](http://www.openmicroscopy.org/ome-files/) -and beyond. However, the conventions will also be usable by HDF5 and other sufficiently advanced -binary containers. Eventually, we hope, the moniker "next-generation" will no longer be -applicable, and this will simply be the most efficient, common, and useful representation -of bioimaging data, whether during acquisition or sharing in the cloud. - -Note: The following text makes use of OME-Zarr [[ome-zarr-py]], the current prototype implementation, -for all examples. +and beyond. Document conventions -------------------- @@ -56,8 +50,14 @@ implementations that are later submitted as a formal specification. (See [[#bf2r Some of the JSON examples in this document include comments. However, these are only for clarity purposes and comments MUST NOT be included in JSON objects. -On-disk (or in-cloud) layout {#on-disk} -======================================= +Storage format {#storage-format} +================================ + +OME-Zarr is implemented using the Zarr format as defined by the +[version 3 of the Zarr specification](https://zarr-specs.readthedocs.io/en/latest/v3/core/v3.0.html). +All features of the Zarr format including codecs, chunk grids, chunk +key encodings, data types and storage transformers may be used with +OME-Zarr unless explicitly disallowed in this specification. An overview of the layout of an OME-Zarr fileset should make understanding the following metadata sections easier. The hierarchy @@ -65,66 +65,51 @@ is represented here as it would appear locally but could equally be stored on a web server to be accessed via HTTP or in object storage like S3 or GCS. -OME-Zarr is an implementation of the OME-NGFF specification using the Zarr -format. Arrays MUST be defined and stored in a hierarchical organization as -defined by the -[version 2 of the Zarr specification ](https://zarr.readthedocs.io/en/stable/spec/v2.html). -OME-NGFF metadata MUST be stored as attributes in the corresponding Zarr -groups. - Images {#image-layout} ---------------------- The following layout describes the expected Zarr hierarchy for images with multiple levels of resolutions and optionally associated labels. Note that the number of dimensions is variable between 2 and 5 and that axis names are arbitrary, see [[#multiscale-md]] for details. -For this example we assume an image with 5 dimensions and axes called `t,c,z,y,x`.
-.                             # Root folder, potentially in S3,
-│                             # with a flat list of images by image ID.
-│
-├── 123.zarr                  # One image (id=123) converted to Zarr.
+├── 123.zarr                  # One OME-Zarr image (id=123).
+│   ...
 │
-└── 456.zarr                  # Another image (id=456) converted to Zarr.
+└── 456.zarr                  # Another OME-Zarr image (id=456).
     │
-    ├── .zgroup               # Each image is a Zarr group, or a folder, of other groups and arrays.
-    ├── .zattrs               # Group level attributes are stored in the .zattrs file and include
-    │                         # "multiscales" and "omero" (see below). In addition, the group level attributes
-    │                         # may also contain "_ARRAY_DIMENSIONS" for compatibility with xarray if this group directly contains multi-scale arrays.
+    ├── zarr.json             # Each image is a Zarr group of other groups and arrays.
+    │                         # Group level attributes are stored in the `zarr.json` file and include
+    │                         # "multiscales" and "omero" (see below).
     │
     ├── 0                     # Each multiscale level is stored as a separate Zarr array,
     │   ...                   # which is a folder containing chunk files which compose the array.
     ├── n                     # The name of the array is arbitrary with the ordering defined by
     │   │                     # by the "multiscales" metadata, but is often a sequence starting at 0.
     │   │
-    │   ├── .zarray           # All image arrays must be up to 5-dimensional
+    │   ├── zarr.json         # All image arrays must be up to 5-dimensional
     │   │                     # with the axis of type time before type channel, before spatial axes.
     │   │
-    │   └─ t                  # Chunks are stored with the nested directory layout.
-    │      └─ c               # All but the last chunk element are stored as directories.
-    │         └─ z            # The terminal chunk is a file. Together the directory and file names
-    │            └─ y         # provide the "chunk coordinate" (t, c, z, y, x), where the maximum coordinate
-    │               └─ x      # will be `dimension_size / chunk_size`.
+    │   └─ ...                # Chunks are stored conforming to the Zarr array specification and 
+    │                         # metadata as specified in the array's `zarr.json`.
     │
     └── labels
         │
-        ├── .zgroup           # The labels group is a container which holds a list of labels to make the objects easily discoverable
-        │
-        ├── .zattrs           # All labels will be listed in `.zattrs` e.g. `{ "labels": [ "original/0" ] }`
-        │                     # Each dimension of the label `(t, c, z, y, x)` should be either the same as the
+        ├── zarr.json         # The labels group is a container which holds a list of labels to make the objects easily discoverable
+        │                     # All labels will be listed in `zarr.json` e.g. `{ "labels": [ "original/0" ] }`
+        │                     # Each dimension of the label should be either the same as the
         │                     # corresponding dimension of the image, or `1` if that dimension of the label
         │                     # is irrelevant.
         │
         └── original          # Intermediate folders are permitted but not necessary and currently contain no extra metadata.
             │
             └── 0             # Multiscale, labeled image. The name is unimportant but is registered in the "labels" group above.
-                ├── .zgroup   # Zarr Group which is both a multiscaled image as well as a labeled image.
-                ├── .zattrs   # Metadata of the related image and as well as display information under the "image-label" key.
+                ├── zarr.json # Zarr Group which is both a multiscaled image as well as a labeled image.
+                │             # Metadata of the related image and as well as display information under the "image-label" key.
                 │
                 ├── 0         # Each multiscale level is stored as a separate Zarr array, as above, but only integer values
-                │   ...       # are supported.
-                └── n
+                └── ...       # are supported.
+                
 
@@ -148,39 +133,47 @@ A well group SHOULD NOT be present if there are no images in the well.
-.                             # Root folder, potentially in S3,
+.
 │
-└── 5966.zarr                 # One plate (id=5966) converted to Zarr
-    ├── .zgroup
-    ├── .zattrs               # Implements "plate" specification
+└── 5966.zarr                 # One OME-Zarr plate (id=5966)
+    ├── zarr.json             # Implements "plate" specification
     ├── A                     # First row of the plate
-    │   ├── .zgroup
+    │   ├── zarr.json
     │   │
     │   ├── 1                 # First column of row A
-    │   │   ├── .zgroup
-    │   │   ├── .zattrs       # Implements "well" specification
+    │   │   ├── zarr.json     # Implements "well" specification
     │   │   │
     │   │   ├── 0             # First field of view of well A1
     │   │   │   │
-    │   │   │   ├── .zgroup
-    │   │   │   ├── .zattrs   # Implements "multiscales", "omero"
-    │   │   │   ├── 0
-    │   │   │   │   ...       # Resolution levels
-    │   │   │   ├── n
+    │   │   │   ├── zarr.json # Implements "multiscales", "omero"
+    │   │   │   ├── 0         # Resolution levels          
+    │   │   │   ├── ...
     │   │   │   └── labels    # Labels (optional)
-    │   │   ├── ...           # Fields of view
-    │   │   └── m
-    │   ├── ...               # Columns
-    │   └── 12
-    ├── ...                   # Rows
-    └── H
+    │   │   └── ...           # Other fields of view
+    │   └── ...               # Other columns
+    └── ...                   # Other rows
 
-Metadata {#metadata} -==================== +OME-Zarr Metadata {#metadata} +============================= + +The "OME-Zarr Metadata" contains metadata keys as specified below +for discovering certain types of data, especially images. -The various `.zattrs` files throughout the above array hierarchy may contain metadata -keys as specified below for discovering certain types of data, especially images. +The OME-Zarr Metadata is stored in the various `zarr.json` files throughout the above array +hierarchy. In this file, the metadata is stored under the namespaced key +`https://ngff.openmicroscopy.org/0.5` in `attributes`. + +```json +{ + ... + "attributes": { + "https://ngff.openmicroscopy.org/0.5": { + ... + } + } +} +``` "axes" metadata {#axes-md} -------------------------- @@ -192,7 +185,10 @@ keys as specified below for discovering certain types of data, especially images - Units for "space" axes: 'angstrom', 'attometer', 'centimeter', 'decimeter', 'exameter', 'femtometer', 'foot', 'gigameter', 'hectometer', 'inch', 'kilometer', 'megameter', 'meter', 'micrometer', 'mile', 'millimeter', 'nanometer', 'parsec', 'petameter', 'picometer', 'terameter', 'yard', 'yoctometer', 'yottameter', 'zeptometer', 'zettameter' - Units for "time" axes: 'attosecond', 'centisecond', 'day', 'decisecond', 'exasecond', 'femtosecond', 'gigasecond', 'hectosecond', 'hour', 'kilosecond', 'megasecond', 'microsecond', 'millisecond', 'minute', 'nanosecond', 'petasecond', 'picosecond', 'second', 'terasecond', 'yoctosecond', 'yottasecond', 'zeptosecond', 'zettasecond' -If part of [[#multiscale-md]], the length of "axes" MUST be equal to the number of dimensions of the arrays that contain the image data. +The "axes" are used as part of [[#multiscale-md]]. The length of "axes" MUST be equal to the number of dimensions of the arrays that contain the image data. + +The "dimension_names" attribute in the `zarr.json` of the Zarr array of a multiscale level MUS match the names in the "axes" metadata. + "bioformats2raw.layout" (transitional) {#bf2raw} ------------------------------------------------ @@ -211,11 +207,9 @@ Typical Zarr layout produced by running `bioformats2raw` on a fileset that conta
 series.ome.zarr               # One converted fileset from bioformats2raw
-    ├── .zgroup
-    ├── .zattrs               # Contains "bioformats2raw.layout" metadata
+    ├── zarr.json             # Contains "bioformats2raw.layout" metadata
     ├── OME                   # Special group for containing OME metadata
-    │   ├── .zgroup
-    │   ├── .zattrs           # Contains "series" metadata
+    │   ├── zarr.json         # Contains "series" metadata
     │   └── METADATA.ome.xml  # OME-XML file stored within the Zarr fileset
     ├── 0                     # First image in the collection
     ├── 1                     # Second image in the collection
@@ -224,7 +218,7 @@ series.ome.zarr               # One converted fileset from bioformats2raw
 
 

Attributes

-The top-level `.zattrs` file must contain the `bioformats2raw.layout` key: +The OME-Zarr Metadata in the top-level `zarr.json` file must contain the `bioformats2raw.layout` key:
 path: examples/bf2raw/image.json
 highlight: json
@@ -239,7 +233,7 @@ path: examples/bf2raw/plate.json
 highlight: json
 
-The `.zattrs` file within the OME group may contain the "series" key: +The OME-Zarr Metadata in the `zarr.json` file within the OME group may contain the "series" key:
 path: examples/ome/series-2.json
@@ -250,7 +244,7 @@ highlight: json
 
 Conforming groups:
 
-- MUST have the value "3" for the "bioformats2raw.layout" key in their `.zattrs` metadata at the top of the hierarchy;
+- MUST have the value "3" for the "bioformats2raw.layout" key in their OME-Zarr Metadata in the `zarr.json` at the top of the hierarchy;
 - SHOULD have OME metadata representing the entire collection of images in a file named "OME/METADATA.ome.xml" which:
     - MUST adhere to the OME-XML specification but
     - MUST use `` elements as opposed to ``, `` or ``;
@@ -298,7 +292,9 @@ The transformations in the list are applied sequentially and in order.
 "multiscales" metadata {#multiscale-md}
 ---------------------------------------
 
-Metadata about an image can be found under the "multiscales" key in the group-level metadata. Here, image refers to 2 to 5 dimensional data representing image or volumetric data with optional time or channel axes. It is stored in a multiple resolution representation.
+Metadata about an image can be found under the "multiscales" key in the group-level OME-Zarr Metadata. 
+Here, image refers to 2 to 5 dimensional data representing image or volumetric data with optional time or channel axes. 
+It is stored in a multiple resolution representation.
 
 "multiscales" contains a list of dictionaries where each entry describes a multiscale image.
 
@@ -399,21 +395,26 @@ The "labels" group is not itself an image; it contains images. The pixels of the
 [`uint8`, `int8`, `uint16`, `int16`, `uint32`, `int32`, `uint64`, `int64`]. Intermediate groups between "labels" and the images within it are allowed, 
 but these MUST NOT contain metadata. Names of the images in the "labels" group are arbitrary.
 
-The `.zattrs` file associated with the "labels" group MUST contain a JSON object with the key `labels`, whose value is a JSON array of paths to the 
+The OME-Zarr Metadata in the `zarr.json` file associated with the "labels" group MUST contain a JSON object with the key `labels`, whose value is a JSON array of paths to the 
 labeled multiscale image(s). All label images SHOULD be listed within this metadata file. For example:
 
 ```json
 {
-  "labels": [
-    "cell_space_segmentation"
-  ]
+  ...
+  "attributes": {
+    "https://ngff.openmicroscopy.org/0.5": {
+      "labels": [
+        "cell_space_segmentation"
+      ]
+    }
+  }
 }
 ```
 
-The `.zattrs` file for the label image MUST implement the multiscales specification. Within the `multiscales` object, the JSON array 
+The `zarr.json` file for the label image MUST implement the multiscales specification. Within the `multiscales` object, the JSON array 
 associated with the `datasets` key MUST have the same number of entries (scale levels) as the original unlabeled image. 
 
-In addition to the `multiscales` key, the JSON object in this image-level `.zattrs` file SHOULD contain another key, `image-label`, 
+In addition to the `multiscales` key, the OME-Zarr Metadata in this image-level `zarr.json` file SHOULD contain another key, `image-label`, 
 whose value is also a JSON object. The `image-label` object stores information about the display colors, source image, and optionally, 
 further arbitrary properties of the label image. That `image-label` object SHOULD contain the following keys: first, a `colors` key, 
 whose value MUST be a JSON array describing color information for the unique label values. Second, a `version` key, whose value MUST be a 
diff --git a/latest/schemas/bf2raw.schema b/latest/schemas/bf2raw.schema
index 834aee24..929516ba 100644
--- a/latest/schemas/bf2raw.schema
+++ b/latest/schemas/bf2raw.schema
@@ -1,14 +1,37 @@
 {
   "$schema": "https://json-schema.org/draft/2020-12/schema",
   "$id": "https://ngff.openmicroscopy.org/latest/schemas/bf2raw.schema",
-  "title": "NGFF container produced by bioformats2raw",
-  "description": "JSON from OME-NGFF .zattrs",
+  "title": "OME-Zarr container produced by bioformats2raw",
+  "description": "JSON from OME-Zarr zarr.json",
   "type": "object",
   "properties": {
-    "bioformats2raw.layout": {
-      "description": "The top-level identifier metadata added by bioformats2raw",
-      "type": "number",
-      "enum": [3]
+    "attributes": {
+      "description": "The zarr.json attributes key",
+      "type": "object",
+      "properties": {
+        "https://ngff.openmicroscopy.org/0.5": {
+          "description": "The versioned OME-Zarr Metadata namespace",
+          "type": "object",
+          "properties": {
+            "bioformats2raw.layout": {
+              "description": "The top-level identifier metadata added by bioformats2raw",
+              "type": "number",
+              "enum": [
+                3
+              ]
+            }
+          },
+          "required": [
+            "bioformats2raw.layout"
+          ]
+        }
+      },
+      "required": [
+        "https://ngff.openmicroscopy.org/0.5"
+      ]
     }
-  }
+  },
+  "required": [
+    "attributes"
+  ]
 }
diff --git a/latest/schemas/image.schema b/latest/schemas/image.schema
index cf2b477f..57a3d811 100644
--- a/latest/schemas/image.schema
+++ b/latest/schemas/image.schema
@@ -1,10 +1,36 @@
 {
   "$schema": "https://json-schema.org/draft/2020-12/schema",
   "$id": "https://ngff.openmicroscopy.org/latest/schemas/image.schema",
-  "title": "NGFF Image",
-  "description": "JSON from OME-NGFF .zattrs",
+  "title": "OME-Zarr Image",
+  "description": "JSON from OME-Zarr zarr.json",
   "type": "object",
   "properties": {
+    "attributes": {
+      "description": "The zarr.json attributes key",
+      "type": "object",
+      "properties": {
+        "https://ngff.openmicroscopy.org/0.5": {
+          "description": "The versioned OME-Zarr Metadata namespace",
+          "type": "object",
+          "properties": {
+            "multiscales": {
+              "$ref": "#/$defs/multiscales"
+            },
+            "omero": {
+              "$ref": "#/$defs/omero"
+            }
+          },
+          "required": [
+            "multiscales"
+          ]
+        }
+      },
+      "required": [
+        "https://ngff.openmicroscopy.org/0.5"
+      ]
+    }
+  },
+  "$defs": {
     "multiscales": {
       "description": "The multiscale datasets for this image",
       "type": "array",
@@ -27,24 +53,22 @@
                   "$ref": "#/$defs/coordinateTransformations"
                 }
               },
-              "required": ["path", "coordinateTransformations"]
+              "required": [
+                "path",
+                "coordinateTransformations"
+              ]
             }
           },
-          "version": {
-            "type": "string",
-            "enum": [
-              "0.5-dev"
-            ]
-          },
           "axes": {
             "$ref": "#/$defs/axes"
           },
           "coordinateTransformations": {
             "$ref": "#/$defs/coordinateTransformations"
-                }
+          }
         },
         "required": [
-          "datasets", "axes", "version"
+          "datasets",
+          "axes"
         ]
       },
       "minItems": 1,
@@ -100,11 +124,7 @@
       "required": [
         "channels"
       ]
-    }
-  },
-  "required": [ "multiscales" ],
-
-  "$defs": {
+    },
     "axes": {
       "type": "array",
       "uniqueItems": true,
@@ -118,7 +138,9 @@
           },
           "type": {
             "type": "string",
-            "enum": ["space"]
+            "enum": [
+              "space"
+            ]
           },
           "unit": {
             "type": "string"
@@ -137,10 +159,17 @@
               },
               "type": {
                 "type": "string",
-                "enum": ["channel", "time", "space"]
+                "enum": [
+                  "channel",
+                  "time",
+                  "space"
+                ]
               }
             },
-            "required": ["name", "type"]
+            "required": [
+              "name",
+              "type"
+            ]
           },
           {
             "type": "object",
@@ -151,11 +180,17 @@
               "type": {
                 "type": "string",
                 "not": {
-                  "enum": ["space", "time", "channel"]
+                  "enum": [
+                    "space",
+                    "time",
+                    "channel"
+                  ]
                 }
               }
             },
-            "required": ["name"]
+            "required": [
+              "name"
+            ]
           }
         ]
       }
@@ -201,7 +236,10 @@
                 }
               }
             },
-            "required": ["type", "scale"]
+            "required": [
+              "type",
+              "scale"
+            ]
           },
           {
             "type": "object",
@@ -220,10 +258,16 @@
                 }
               }
             },
-            "required": ["type", "translation"]
+            "required": [
+              "type",
+              "translation"
+            ]
           }
         ]
       }
     }
-  }
+  },
+  "required": [
+    "attributes"
+  ]
 }
diff --git a/latest/schemas/label.schema b/latest/schemas/label.schema
index 8b23d577..193e64fe 100644
--- a/latest/schemas/label.schema
+++ b/latest/schemas/label.schema
@@ -1,10 +1,33 @@
 {
   "$schema": "https://json-schema.org/draft/2020-12/schema",
   "$id": "https://ngff.openmicroscopy.org/latest/schemas/label.schema",
-  "title": "OME-NGFF labelled image schema",
-  "description": "JSON from OME-NGFF .zattrs",
+  "title": "OME-Zarr labelled image schema",
+  "description": "JSON from OME-Zarr zarr.json",
   "type": "object",
   "properties": {
+    "attributes": {
+      "description": "The zarr.json attributes key",
+      "type": "object",
+      "properties": {
+        "https://ngff.openmicroscopy.org/0.5": {
+          "description": "The versioned OME-Zarr Metadata namespace",
+          "type": "object",
+          "properties": {
+            "image-label": {
+              "$ref": "#/$defs/image-label"
+            }
+          },
+          "required": [
+            "image-label"
+          ]
+        }
+      },
+      "required": [
+        "https://ngff.openmicroscopy.org/0.5"
+      ]
+    }
+  },
+  "$defs": {
     "image-label": {
       "type": "object",
       "properties": {
@@ -63,15 +86,11 @@
               "type": "string"
             }
           }
-        },
-        "version": {
-          "description": "The version of the specification",
-          "type": "string",
-          "enum": [
-            "0.5-dev"
-          ]
         }
       }
     }
-  }
+  },
+  "required": [
+    "attributes"
+  ]
 }
diff --git a/latest/schemas/ome.schema b/latest/schemas/ome.schema
index bd600a2a..e0ce77a5 100644
--- a/latest/schemas/ome.schema
+++ b/latest/schemas/ome.schema
@@ -1,17 +1,38 @@
 {
   "$schema": "https://json-schema.org/draft/2020-12/schema",
   "$id": "https://ngff.openmicroscopy.org/latest/schemas/ome.schema",
-  "title": "NGFF group produced by bioformats2raw to contain OME metadata",
-  "description": "JSON from OME-NGFF OME/.zattrs linked to an OME-XML file",
+  "title": "OME-Zarr group produced by bioformats2raw to contain OME metadata",
+  "description": "JSON from OME-Zarr OME/zarr.json linked to an OME-XML file",
   "type": "object",
   "properties": {
-    "series": {
-      "description": "An array of the same length and the same order as the images defined in the OME-XML",
-      "type": "array",
-      "items": {
-        "type": "string"
+    "attributes": {
+      "description": "The zarr.json attributes key",
+      "type": "object",
+      "properties": {
+        "https://ngff.openmicroscopy.org/0.5": {
+          "description": "The versioned OME-Zarr Metadata namespace",
+          "type": "object",
+          "properties": {
+            "series": {
+              "description": "An array of the same length and the same order as the images defined in the OME-XML",
+              "type": "array",
+              "items": {
+                "type": "string"
+              },
+              "minContains": 1
+            }
+          },
+          "required": [
+            "series"
+          ]
+        }
       },
-      "minContains": 1
+      "required": [
+        "https://ngff.openmicroscopy.org/0.5"
+      ]
     }
-  }
+  },
+  "required": [
+    "attributes"
+  ]
 }
diff --git a/latest/schemas/plate.schema b/latest/schemas/plate.schema
index 1b7ed532..c33a75fc 100644
--- a/latest/schemas/plate.schema
+++ b/latest/schemas/plate.schema
@@ -1,140 +1,158 @@
 {
   "$schema": "https://json-schema.org/draft/2020-12/schema",
   "$id": "https://ngff.openmicroscopy.org/0.4/schemas/plate.schema",
-  "title": "OME-NGFF plate schema",
-  "description": "JSON from OME-NGFF .zattrs",
+  "title": "OME-Zarr plate schema",
+  "description": "JSON from OME-Zarr zarr.json",
   "type": "object",
   "properties": {
-    "plate": {
+    "attributes": {
+      "description": "The zarr.json attributes key",
       "type": "object",
       "properties": {
-        "acquisitions": {
-          "description": "The acquisitions for this plate",
-          "type": "array",
-          "items": {
-            "type": "object",
-            "properties": {
-              "id": {
-                "description": "A unique identifier within the context of the plate",
-                "type": "integer",
-                "minimum": 0
+        "https://ngff.openmicroscopy.org/0.5": {
+          "description": "The versioned OME-Zarr Metadata namespace",
+          "type": "object",
+          "properties": {
+            "plate": {
+              "type": "object",
+              "properties": {
+                "acquisitions": {
+                  "description": "The acquisitions for this plate",
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "properties": {
+                      "id": {
+                        "description": "A unique identifier within the context of the plate",
+                        "type": "integer",
+                        "minimum": 0
+                      },
+                      "maximumfieldcount": {
+                        "description": "The maximum number of fields of view for the acquisition",
+                        "type": "integer",
+                        "exclusiveMinimum": 0
+                      },
+                      "name": {
+                        "description": "The name of the acquisition",
+                        "type": "string"
+                      },
+                      "description": {
+                        "description": "The description of the acquisition",
+                        "type": "string"
+                      },
+                      "starttime": {
+                        "description": "The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch",
+                        "type": "integer",
+                        "minimum": 0
+                      },
+                      "endtime": {
+                        "description": "The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch",
+                        "type": "integer",
+                        "minimum": 0
+                      }
+                    },
+                    "required": [
+                      "id"
+                    ]
+                  }
+                },
+                "field_count": {
+                  "description": "The maximum number of fields per view across all wells",
+                  "type": "integer",
+                  "exclusiveMinimum": 0
+                },
+                "name": {
+                  "description": "The name of the plate",
+                  "type": "string"
+                },
+                "columns": {
+                  "description": "The columns of the plate",
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "properties": {
+                      "name": {
+                        "description": "The column name",
+                        "type": "string",
+                        "pattern": "^[A-Za-z0-9]+$"
+                      }
+                    },
+                    "required": [
+                      "name"
+                    ]
+                  },
+                  "minItems": 1,
+                  "uniqueItems": true
+                },
+                "rows": {
+                  "description": "The rows of the plate",
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "properties": {
+                      "name": {
+                        "description": "The row name",
+                        "type": "string",
+                        "pattern": "^[A-Za-z0-9]+$"
+                      }
+                    },
+                    "required": [
+                      "name"
+                    ]
+                  },
+                  "minItems": 1,
+                  "uniqueItems": true
+                },
+                "wells": {
+                  "description": "The wells of the plate",
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "properties": {
+                      "path": {
+                        "description": "The path to the well subgroup",
+                        "type": "string",
+                        "pattern": "^[A-Za-z0-9]+/[A-Za-z0-9]+$"
+                      },
+                      "rowIndex": {
+                        "description": "The index of the well in the rows list",
+                        "type": "integer",
+                        "minimum": 0
+                      },
+                      "columnIndex": {
+                        "description": "The index of the well in the columns list",
+                        "type": "integer",
+                        "minimum": 0
+                      }
+                    },
+                    "required": [
+                      "path",
+                      "rowIndex",
+                      "columnIndex"
+                    ]
+                  },
+                  "minItems": 1,
+                  "uniqueItems": true
+                }
               },
-              "maximumfieldcount": {
-                "description": "The maximum number of fields of view for the acquisition",
-                "type": "integer",
-                "exclusiveMinimum": 0
-              },
-              "name": {
-                "description": "The name of the acquisition",
-                "type": "string"
-              },
-              "description": {
-                "description": "The description of the acquisition",
-                "type": "string"
-              },
-              "starttime": {
-                "description": "The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch",
-                "type": "integer",
-                "minimum": 0
-              },
-              "endtime": {
-                "description": "The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch",
-                "type": "integer",
-                "minimum": 0
-              }
-            },
-            "required": [
-              "id"
-            ]
-          }
-        },
-        "version": {
-          "description": "The version of the specification",
-          "type": "string",
-          "enum": [
-            "0.5-dev"
-          ]
-        },
-        "field_count": {
-          "description": "The maximum number of fields per view across all wells",
-          "type": "integer",
-          "exclusiveMinimum": 0
-        },
-        "name": {
-          "description": "The name of the plate",
-          "type": "string"
-        },
-        "columns": {
-          "description": "The columns of the plate",
-          "type": "array",
-          "items": {
-            "type": "object",
-            "properties": {
-              "name": {
-                "description": "The column name",
-                "type": "string",
-                "pattern": "^[A-Za-z0-9]+$"
-              }
-            },
-            "required": [
-              "name"
-            ]
+              "required": [
+                "columns",
+                "rows",
+                "wells"
+              ]
+            }
           },
-          "minItems": 1,
-          "uniqueItems": true
-        },
-        "rows": {
-          "description": "The rows of the plate",
-          "type": "array",
-          "items": {
-            "type": "object",
-            "properties": {
-              "name": {
-                "description": "The row name",
-                "type": "string",
-                "pattern": "^[A-Za-z0-9]+$"
-              }
-            },
-            "required": [
-              "name"
-            ]
-          },
-          "minItems": 1,
-          "uniqueItems": true
-        },
-        "wells": {
-          "description": "The wells of the plate",
-          "type": "array",
-          "items": {
-            "type": "object",
-            "properties": {
-              "path": {
-                "description": "The path to the well subgroup",
-                "type": "string",
-                "pattern": "^[A-Za-z0-9]+/[A-Za-z0-9]+$"
-              },
-              "rowIndex": {
-                "description": "The index of the well in the rows list",
-                "type": "integer",
-                "minimum": 0
-              },
-              "columnIndex": {
-                "description": "The index of the well in the columns list",
-                "type": "integer",
-                "minimum": 0
-              }
-            },
-            "required": [
-              "path", "rowIndex", "columnIndex"
-            ]
-          },
-          "minItems": 1,
-          "uniqueItems": true
+          "required": [
+            "plate"
+          ]
         }
       },
       "required": [
-        "columns", "rows", "wells", "version"
+        "https://ngff.openmicroscopy.org/0.5"
       ]
     }
-  }
+  },
+  "required": [
+    "attributes"
+  ]
 }
diff --git a/latest/schemas/strict_image.schema b/latest/schemas/strict_image.schema
index bcecc003..1b04f7ad 100644
--- a/latest/schemas/strict_image.schema
+++ b/latest/schemas/strict_image.schema
@@ -6,14 +6,24 @@
     },
     {
       "properties": {
-        "multiscales": {
-          "items": {
-            "required": [
-              "version", "metadata", "type", "name"
-            ]
+        "attributes": {
+          "properties": {
+            "https://ngff.openmicroscopy.org/0.5": {
+              "properties": {
+                "multiscales": {
+                  "items": {
+                    "required": [
+                      "metadata",
+                      "type",
+                      "name"
+                    ]
+                  }
+                }
+              }
+            }
           }
         }
       }
     }
   ]
-}
\ No newline at end of file
+}
diff --git a/latest/schemas/strict_label.schema b/latest/schemas/strict_label.schema
index c52dd51b..8936ee11 100644
--- a/latest/schemas/strict_label.schema
+++ b/latest/schemas/strict_label.schema
@@ -6,11 +6,18 @@
     },
     {
       "properties": {
-        "image-label": {
-          "required": [
-            "version",
-            "colors"
-          ]
+        "attributes": {
+          "properties": {
+            "https://ngff.openmicroscopy.org/0.5": {
+              "properties": {
+                "image-label": {
+                  "required": [
+                    "colors"
+                  ]
+                }
+              }
+            }
+          }
         }
       }
     }
diff --git a/latest/schemas/strict_plate.schema b/latest/schemas/strict_plate.schema
index 5a88ab72..21075845 100644
--- a/latest/schemas/strict_plate.schema
+++ b/latest/schemas/strict_plate.schema
@@ -1,26 +1,33 @@
 {
-  "$id": "https://ngff.openmicroscopy.org/0.4/schemas/strict_plate.schema",
+  "$id": "https://ngff.openmicroscopy.org/latest/schemas/strict_plate.schema",
   "allOf": [
     {
-      "$ref": "https://ngff.openmicroscopy.org/0.4/schemas/plate.schema"
+      "$ref": "https://ngff.openmicroscopy.org/latest/schemas/plate.schema"
     },
     {
       "properties": {
-        "plate": {
+        "attributes": {
           "properties": {
-            "acquisitions": {
-              "items": {
-                "required": [
-                  "name",
-                  "maximumfieldcount"
-                ]
+            "https://ngff.openmicroscopy.org/0.5": {
+              "properties": {
+                "plate": {
+                  "properties": {
+                    "acquisitions": {
+                      "items": {
+                        "required": [
+                          "name",
+                          "maximumfieldcount"
+                        ]
+                      }
+                    }
+                  },
+                  "required": [
+                    "name"
+                  ]
+                }
               }
             }
-          },
-          "required": [
-            "name",
-            "version"
-          ]
+          }
         }
       }
     }
diff --git a/latest/schemas/strict_well.schema b/latest/schemas/strict_well.schema
index 1e200294..0206b990 100644
--- a/latest/schemas/strict_well.schema
+++ b/latest/schemas/strict_well.schema
@@ -1,17 +1,8 @@
 {
-  "$id": "https://ngff.openmicroscopy.org/0.4/schemas/strict_well.schema",
+  "$id": "https://ngff.openmicroscopy.org/latest/schemas/strict_well.schema",
   "allOf": [
     {
-      "$ref": "https://ngff.openmicroscopy.org/0.4/schemas/well.schema"
-    },
-    {
-      "properties": {
-        "well": {
-          "required": [
-            "version"
-          ]
-        }
-      }
+      "$ref": "https://ngff.openmicroscopy.org/latest/schemas/well.schema"
     }
   ]
 }
diff --git a/latest/schemas/well.schema b/latest/schemas/well.schema
index 891abd05..b44a8e35 100644
--- a/latest/schemas/well.schema
+++ b/latest/schemas/well.schema
@@ -1,47 +1,61 @@
 {
   "$schema": "https://json-schema.org/draft/2020-12/schema",
-  "$id": "https://ngff.openmicroscopy.org/0.4/schemas/well.schema",
-  "title": "OME-NGFF well schema",
-  "description": "JSON from OME-NGFF .zattrs",
+  "$id": "https://ngff.openmicroscopy.org/latest/schemas/well.schema",
+  "title": "OME-Zarr well schema",
+  "description": "JSON from OME-Zarr zarr.json",
   "type": "object",
   "properties": {
-    "well": {
+    "attributes": {
+      "description": "The zarr.json attributes key",
       "type": "object",
       "properties": {
-        "images": {
-          "description": "The fields of view for this well",
-          "type": "array",
-          "items": {
-            "type": "object",
-            "properties": {
-              "acquisition": {
-                "description": "A unique identifier within the context of the plate",
-                "type": "integer"
+        "https://ngff.openmicroscopy.org/0.5": {
+          "description": "The versioned OME-Zarr Metadata namespace",
+          "type": "object",
+          "properties": {
+            "well": {
+              "type": "object",
+              "properties": {
+                "images": {
+                  "description": "The fields of view for this well",
+                  "type": "array",
+                  "items": {
+                    "type": "object",
+                    "properties": {
+                      "acquisition": {
+                        "description": "A unique identifier within the context of the plate",
+                        "type": "integer"
+                      },
+                      "path": {
+                        "description": "The path for this field of view subgroup",
+                        "type": "string",
+                        "pattern": "^[A-Za-z0-9]+$"
+                      }
+                    },
+                    "required": [
+                      "path"
+                    ]
+                  },
+                  "minItems": 1,
+                  "uniqueItems": true
+                }
               },
-              "path": {
-                "description": "The path for this field of view subgroup",
-                "type": "string",
-                "pattern": "^[A-Za-z0-9]+$"
-              }
-            },
-            "required": [
-              "path"
-            ]
+              "required": [
+                "images"
+              ]
+            }
           },
-          "minItems": 1,
-          "uniqueItems": true
-        },
-        "version": {
-          "description": "The version of the specification",
-          "type": "string",
-          "enum": [
-            "0.5-dev"
+          "required": [
+            "well"
           ]
         }
       },
       "required": [
-        "images"
+        "https://ngff.openmicroscopy.org/0.5"
       ]
     }
-  }
+  },
+  "required": [
+    "attributes"
+  ]
 }
diff --git a/latest/tests/image_suite.json b/latest/tests/image_suite.json
index bec52214..645fd683 100644
--- a/latest/tests/image_suite.json
+++ b/latest/tests/image_suite.json
@@ -8,42 +8,42 @@
       "formerly": "valid/mismatch_axes_units.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "t",
-                "type": "time",
-                "unit": "micrometer"
-              },
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      0.13,
-                      0.13
-                    ],
-                    "type": "scale"
+                    "name": "t",
+                    "type": "time",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [0.13, 0.13],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -51,118 +51,78 @@
       "formerly": "valid/untyped_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "angle"
-              },
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "angle"
+                  },
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
                   }
-                ]
-              }
-            ],
-            "version": "0.5-dev"
-          }
-        ]
-      },
-      "valid": true
-    },
-    {
-      "formerly": "invalid/missing_version.json",
-      "description": "TBD",
-      "data": {
-        "@type": "ngff:Image",
-        "multiscales": [
-          {
-            "name": "example",
-            "datasets": [
-              {
-                "path": "path/to/0",
-                "coordinateTransformations": [
+                ],
+                "datasets": [
                   {
-                    "type": "scale",
-                    "scale": [
-                      1,
-                      1
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1, 1],
+                        "type": "scale"
+                      }
                     ]
                   }
                 ]
               }
-            ],
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
             ]
           }
-        ]
+        }
       },
-      "valid": false
+      "valid": true
     },
     {
       "formerly": "valid/invalid_axis_units.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "y",
-                "type": "space",
-                "unit": "micron"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      0.13,
-                      0.13
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micron"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [0.13, 0.13],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -170,50 +130,46 @@
       "formerly": "valid/missing_name.json",
       "description": "TBD",
       "data": {
-        "@type": "ngff:Image",
-        "multiscales": [
-          {
-            "version": "0.5-dev",
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "path/to/0",
-                "coordinateTransformations": [
+                "datasets": [
                   {
-                    "type": "scale",
-                    "scale": [
-                      1,
-                      1
+                    "path": "path/to/0",
+                    "coordinateTransformations": [
+                      {
+                        "type": "scale",
+                        "scale": [1, 1]
+                      }
                     ]
                   }
+                ],
+                "type": "gaussian",
+                "metadata": {
+                  "method": "skimage.transform.pyramid_gaussian",
+                  "version": "0.16.1",
+                  "args": ["true", "false"],
+                  "kwargs": {
+                    "multichannel": true
+                  }
+                },
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
                 ]
               }
-            ],
-            "type": "gaussian",
-            "metadata": {
-              "method": "skimage.transform.pyramid_gaussian",
-              "version": "0.16.1",
-              "args": [
-                "true",
-                "false"
-              ],
-              "kwargs": {
-                "multichannel": true
-              }
-            },
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
             ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -221,42 +177,41 @@
       "formerly": "valid/custom_type_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "angle",
-                "type": "custom"
-              },
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "angle",
+                    "type": "custom"
+                  },
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -264,37 +219,37 @@
       "formerly": "invalid/duplicate_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -302,35 +257,35 @@
       "formerly": "invalid/missing_space_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "t",
-                "type": "time"
-              },
-              {
-                "name": "c",
-                "type": "channel"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "t",
+                    "type": "time"
+                  },
+                  {
+                    "name": "c",
+                    "type": "channel"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -338,37 +293,37 @@
       "formerly": "invalid/invalid_transformation_type.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "translation"
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "translation"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -376,37 +331,37 @@
       "formerly": "invalid/missing_scale.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
                   {
-                    "translation": [
-                      1,
-                      1
-                    ],
-                    "type": "translation"
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "translation": [1, 1],
+                        "type": "translation"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -414,55 +369,51 @@
       "formerly": "invalid/too_many_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "angle",
-                "type": "custom"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "t",
-                "type": "time"
-              },
-              {
-                "name": "c",
-                "type": "channel"
-              },
-              {
-                "name": "z",
-                "type": "space"
-              },
-              {
-                "name": "y",
-                "type": "space"
-              },
-              {
-                "name": "x",
-                "type": "space"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1,
-                      1,
-                      1,
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "angle",
+                    "type": "custom"
+                  },
+                  {
+                    "name": "t",
+                    "type": "time"
+                  },
+                  {
+                    "name": "c",
+                    "type": "channel"
+                  },
+                  {
+                    "name": "z",
+                    "type": "space"
+                  },
+                  {
+                    "name": "y",
+                    "type": "space"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1, 1, 1, 1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -470,53 +421,53 @@
       "formerly": "invalid/invalid_channels_color.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
             ],
-            "version": "0.5-dev"
-          }
-        ],
-        "omero": {
-          "channels": [
-            {
-              "active": true,
-              "coefficient": 1.0,
-              "color": 255,
-              "family": "linear",
-              "label": "1234",
-              "window": {
-                "end": 1765.0,
-                "max": 2555.0,
-                "min": 5.0,
-                "start": 0.0
-              }
+            "omero": {
+              "channels": [
+                {
+                  "active": true,
+                  "coefficient": 1.0,
+                  "color": 255,
+                  "family": "linear",
+                  "label": "1234",
+                  "window": {
+                    "end": 1765.0,
+                    "max": 2555.0,
+                    "min": 5.0,
+                    "start": 0.0
+                  }
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": false
@@ -525,35 +476,35 @@
       "formerly": "invalid/missing_axes_name.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "type": "space",
-                "unit": "micron"
-              },
-              {
-                "type": "space",
-                "unit": "micron"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      0.13,
-                      0.13
-                    ],
-                    "type": "scale"
+                    "type": "space",
+                    "unit": "micron"
+                  },
+                  {
+                    "type": "space",
+                    "unit": "micron"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [0.13, 0.13],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -561,32 +512,32 @@
       "formerly": "invalid/invalid_axes_count.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -594,40 +545,39 @@
       "formerly": "invalid/one_space_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "t",
-                "type": "time"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "c",
-                "type": "channel"
-              },
-              {
-                "name": "x",
-                "type": "space"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "t",
+                    "type": "time"
+                  },
+                  {
+                    "name": "c",
+                    "type": "channel"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -635,37 +585,37 @@
       "formerly": "invalid/invalid_path.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": 0,
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": 0,
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -673,45 +623,43 @@
       "formerly": "invalid/invalid_multiscales_transformations.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
+                  }
+                ],
                 "coordinateTransformations": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
+                    "scale": ["invalid"],
                     "type": "scale"
                   }
                 ]
               }
-            ],
-            "coordinateTransformations": [
-              {
-                "scale": [
-                  "invalid"
-                ],
-                "type": "scale"
-              }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -719,28 +667,31 @@
       "formerly": "invalid/missing_transformations.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0"
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0"
+                  }
+                ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -748,149 +699,80 @@
       "formerly": "invalid/no_datasets.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [],
-            "version": "0.5-dev"
-          }
-        ]
-      },
-      "valid": false
-    },
-    {
-      "formerly": "invalid/missing_datasets.json",
-      "description": "TBD",
-      "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "version": "0.5-dev"
-          }
-        ]
-      },
-      "valid": false
-    },
-    {
-      "formerly": "invalid/missing_axes.json",
-      "description": "TBD",
-      "data": {
-        "multiscales": [
-          {
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
                   }
-                ]
+                ],
+                "datasets": []
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
     {
-      "formerly": "invalid/invalid_version.json",
+      "formerly": "invalid/missing_datasets.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
                   }
                 ]
               }
-            ],
-            "version": "0.3"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
     {
-      "formerly": "invalid/missing_version.json",
+      "formerly": "invalid/missing_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "datasets": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
             ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -898,37 +780,37 @@
       "formerly": "invalid/invalid_axis_type.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "y",
-                "type": "invalid",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "invalid",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -936,44 +818,41 @@
       "formerly": "invalid/duplicate_scale.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
                   },
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      },
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -981,26 +860,26 @@
       "formerly": "invalid/no_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [],
+                "datasets": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -1008,45 +887,43 @@
       "formerly": "invalid/too_many_space_axes.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "X",
-                "type": "space"
-              },
-              {
-                "name": "z",
-                "type": "space"
-              },
-              {
-                "name": "y",
-                "type": "space"
-              },
-              {
-                "name": "x",
-                "type": "space"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1,
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "X",
+                    "type": "space"
+                  },
+                  {
+                    "name": "z",
+                    "type": "space"
+                  },
+                  {
+                    "name": "y",
+                    "type": "space"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1, 1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -1054,8 +931,9 @@
       "formerly": "invalid/no_multiscales.json",
       "description": "TBD",
       "data": {
-        "@type": "ngff:Image",
-        "multiscales": []
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": { "multiscales": [] }
+        }
       },
       "valid": false
     },
@@ -1063,53 +941,53 @@
       "formerly": "invalid/invalid_channels_window.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
             ],
-            "version": "0.5-dev"
-          }
-        ],
-        "omero": {
-          "channels": [
-            {
-              "active": true,
-              "coefficient": 1.0,
-              "color": "ff0000",
-              "family": "linear",
-              "label": "1234",
-              "window": {
-                "end": "100",
-                "max": 2555.0,
-                "min": 5.0,
-                "start": 0.0
-              }
+            "omero": {
+              "channels": [
+                {
+                  "active": true,
+                  "coefficient": 1.0,
+                  "color": "ff0000",
+                  "family": "linear",
+                  "label": "1234",
+                  "window": {
+                    "end": "100",
+                    "max": 2555.0,
+                    "min": 5.0,
+                    "start": 0.0
+                  }
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": false
@@ -1118,29 +996,32 @@
       "formerly": "invalid/empty_transformations.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
-                "coordinateTransformations": []
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": []
+                  }
+                ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     },
@@ -1148,36 +1029,36 @@
       "formerly": "invalid/missing_path.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
                   }
                 ]
               }
-            ],
-            "version": "0.5-dev"
+            ]
           }
-        ]
+        }
       },
       "valid": false
     }
diff --git a/latest/tests/label_suite.json b/latest/tests/label_suite.json
index 634225c8..64f9b2c3 100644
--- a/latest/tests/label_suite.json
+++ b/latest/tests/label_suite.json
@@ -7,13 +7,17 @@
     {
       "formerly": "image-label/minimal",
       "data": {
-        "image-label": {
-          "colors": [
-            {
-              "label-value": 1,
-              "rgba": [0, 0, 0, 0]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "colors": [
+                {
+                  "label-value": 1,
+                  "rgba": [0, 0, 0, 0]
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": true
@@ -21,18 +25,22 @@
     {
       "formerly": "image-label/minimal_properties",
       "data": {
-        "image-label": {
-          "colors": [
-            {
-              "label-value": 1,
-              "rgba": [0, 0, 0, 0]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "colors": [
+                {
+                  "label-value": 1,
+                  "rgba": [0, 0, 0, 0]
+                }
+              ],
+              "properties": [
+                {
+                  "label-value": 1
+                }
+              ]
             }
-          ],
-          "properties": [
-            {
-              "label-value": 1
-            }
-          ]
+          }
         }
       },
       "valid": true
@@ -40,8 +48,12 @@
     {
       "formerly": "image-label/empty_colors",
       "data": {
-        "image-label": {
-          "colors": []
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "colors": []
+            }
+          }
         }
       },
       "valid": false
@@ -49,8 +61,12 @@
     {
       "formerly": "image-label/empty_properties",
       "data": {
-        "image-label": {
-          "properties": []
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "properties": []
+            }
+          }
         }
       },
       "valid": false
@@ -58,12 +74,16 @@
     {
       "formerly": "image-label/colors_no_label_value",
       "data": {
-        "image-label": {
-          "colors": [
-            {
-              "rgba": [0, 0, 0, 0]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "colors": [
+                {
+                  "rgba": [0, 0, 0, 0]
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": false
@@ -71,12 +91,16 @@
     {
       "formerly": "image-label/properties_no_label_value",
       "data": {
-        "image-label": {
-          "properties": [
-            {
-              "value": "foo"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "properties": [
+                {
+                  "value": "foo"
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": false
@@ -84,13 +108,17 @@
     {
       "formerly": "image-label/colors_rgba_length",
       "data": {
-        "image-label": {
-          "colors": [
-            {
-              "label-value": 1,
-              "rgba": [0, 0, 0]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "colors": [
+                {
+                  "label-value": 1,
+                  "rgba": [0, 0, 0]
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": false
@@ -98,13 +126,17 @@
     {
       "formerly": "image-label/colors_rgba_type",
       "data": {
-        "image-label": {
-          "colors": [
-            {
-              "label-value": 1,
-              "rgba": [0, 0, 0, 500]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "colors": [
+                {
+                  "label-value": 1,
+                  "rgba": [0, 0, 0, 500]
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": false
@@ -112,17 +144,21 @@
     {
       "formerly": "image-label/colors_duplicate",
       "data": {
-        "image-label": {
-          "colors": [
-            {
-              "label-value": 1,
-              "rgba": [0, 0, 0, 0]
-            },
-            {
-              "label-value": 1,
-              "rgba": [0, 0, 0, 0]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "image-label": {
+              "colors": [
+                {
+                  "label-value": 1,
+                  "rgba": [0, 0, 0, 0]
+                },
+                {
+                  "label-value": 1,
+                  "rgba": [0, 0, 0, 0]
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": false
diff --git a/latest/tests/plate_suite.json b/latest/tests/plate_suite.json
index 876d7c45..35272bf7 100644
--- a/latest/tests/plate_suite.json
+++ b/latest/tests/plate_suite.json
@@ -7,25 +7,28 @@
     {
       "formerly": "plate/minimal_no_acquisitions",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": true
@@ -33,30 +36,33 @@
     {
       "formerly": "plate/minimal_acquisitions",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": 0
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": true
@@ -64,20 +70,23 @@
     {
       "formerly": "plate/missing_rows",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -85,21 +94,24 @@
     {
       "formerly": "plate/empty_rows",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -107,28 +119,31 @@
     {
       "formerly": "plate/duplicate_rows",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            },
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                },
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -136,20 +151,23 @@
     {
       "formerly": "plate/missing_columns",
       "data": {
-        "version": "0.5-dev",
-        "plate": {
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -157,21 +175,24 @@
     {
       "formerly": "plate/empty_columns",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -179,28 +200,31 @@
     {
       "formerly": "plate/duplicate_columns",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            },
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                },
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -208,18 +232,21 @@
     {
       "formerly": "plate/missing_wells",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ]
             }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ]
+          }
         }
       },
       "valid": false
@@ -227,19 +254,22 @@
     {
       "formerly": "plate/empty_wells",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": {}
             }
-          ],
-          "wells": {}
+          }
         }
       },
       "valid": false
@@ -247,33 +277,36 @@
     {
       "formerly": "plate/duplicate_rows",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            },
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            },
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                },
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                },
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -281,25 +314,28 @@
     {
       "formerly": "plate/missing_column_name",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "concentration": 10
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "concentration": 10
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -307,25 +343,28 @@
     {
       "formerly": "plate/missing_row_name",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "concentration": 10
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "concentration": 10
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -333,24 +372,27 @@
     {
       "formerly": "plate/missing_well_path",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -358,24 +400,27 @@
     {
       "formerly": "plate/missing_well_rowIndex",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -383,24 +428,27 @@
     {
       "formerly": "plate/missing_well_columnIndex",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -408,24 +456,27 @@
     {
       "formerly": "plate/well_1group",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A1",
-              "rowIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A1",
+                  "rowIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -433,75 +484,27 @@
     {
       "formerly": "plate/well_3groups",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "plate/A/1",
-              "rowIndex": 0
-            }
-          ]
-        }
-      },
-      "valid": false
-    },
-    {
-      "formerly": "plate/invalid_version",
-      "data": {
-        "plate": {
-          "version": "foo",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
-        }
-      },
-      "valid": false
-    },
-    {
-      "formerly": "plate/missing_version",
-      "data": {
-        "plate": {
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "plate/A/1",
+                  "rowIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -509,25 +512,28 @@
     {
       "formerly": "plate/non_alphanumeric_column",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A-1"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A-1/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A-1"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A-1/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -535,25 +541,28 @@
     {
       "formerly": "plate/non_alphanumeric_row",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "A1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/A1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "A1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/A1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": true
@@ -561,30 +570,33 @@
     {
       "formerly": "plate/missing_acquisition_id",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "maximumfieldcount": 1
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "maximumfieldcount": 1
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -592,30 +604,33 @@
     {
       "formerly": "plate/non_integer_acquisition_id",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": "0"
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": "0"
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -623,30 +638,33 @@
     {
       "formerly": "plate/negative_acquisition_id",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": -1
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": -1
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -654,31 +672,34 @@
     {
       "formerly": "plate/non_integer_acquisition_maximumfieldcount",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": 0,
-              "maximumfieldcount": "0"
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "maximumfieldcount": "0"
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -686,31 +707,34 @@
     {
       "formerly": "plate/acquisition_zero_maximumfieldcount",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": 0,
-              "maximumfieldcount": 0
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "maximumfieldcount": 0
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -718,31 +742,34 @@
     {
       "formerly": "plate/acquisition_noninteger_starttime",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": 0,
-              "starttime": "2022-05-13T13:48:06+00:00"
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "starttime": "2022-05-13T13:48:06+00:00"
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -750,31 +777,34 @@
     {
       "formerly": "plate/acquisition_negative_starttime",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": 0,
-              "starttime": -1
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "starttime": -1
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -782,31 +812,34 @@
     {
       "formerly": "plate/acquisition_noninteger_endtime",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": 0,
-              "endtime": "2022-05-13T13:48:06+00:00"
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "endtime": "2022-05-13T13:48:06+00:00"
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -814,31 +847,34 @@
     {
       "formerly": "plate/negative_endtime",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "acquisitions": [
-            {
-              "id": 0,
-              "endtime": -1
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "endtime": -1
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -846,26 +882,29 @@
     {
       "formerly": "plate/zero_field_count",
       "data": {
-        "plate": {
-          "version": "0.5-dev",
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "field_count": 0,
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "field_count": 0,
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
diff --git a/latest/tests/strict_image_suite.json b/latest/tests/strict_image_suite.json
index 7bff90ca..faf667f2 100644
--- a/latest/tests/strict_image_suite.json
+++ b/latest/tests/strict_image_suite.json
@@ -8,107 +8,86 @@
       "formerly": "valid_strict/multiscales_example.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "version": "0.5-dev",
-            "name": "example",
-            "axes": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "t",
-                "type": "time",
-                "unit": "millisecond"
-              },
-              {
-                "name": "c",
-                "type": "channel"
-              },
-              {
-                "name": "z",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "name": "example",
+                "axes": [
                   {
-                    "type": "scale",
-                    "scale": [
-                      1.0,
-                      1.0,
-                      0.5,
-                      0.5,
-                      0.5
-                    ]
+                    "name": "t",
+                    "type": "time",
+                    "unit": "millisecond"
+                  },
+                  {
+                    "name": "c",
+                    "type": "channel"
+                  },
+                  {
+                    "name": "z",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
                   }
-                ]
-              },
-              {
-                "path": "1",
-                "coordinateTransformations": [
+                ],
+                "datasets": [
                   {
-                    "type": "scale",
-                    "scale": [
-                      1.0,
-                      1.0,
-                      1.0,
-                      1.0,
-                      1.0
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "type": "scale",
+                        "scale": [1.0, 1.0, 0.5, 0.5, 0.5]
+                      }
+                    ]
+                  },
+                  {
+                    "path": "1",
+                    "coordinateTransformations": [
+                      {
+                        "type": "scale",
+                        "scale": [1.0, 1.0, 1.0, 1.0, 1.0]
+                      }
+                    ]
+                  },
+                  {
+                    "path": "2",
+                    "coordinateTransformations": [
+                      {
+                        "type": "scale",
+                        "scale": [1.0, 1.0, 2.0, 2.0, 2.0]
+                      }
                     ]
                   }
-                ]
-              },
-              {
-                "path": "2",
+                ],
                 "coordinateTransformations": [
                   {
                     "type": "scale",
-                    "scale": [
-                      1.0,
-                      1.0,
-                      2.0,
-                      2.0,
-                      2.0
-                    ]
+                    "scale": [0.1, 1.0, 1.0, 1.0, 1.0]
                   }
-                ]
-              }
-            ],
-            "coordinateTransformations": [
-              {
-                "type": "scale",
-                "scale": [
-                  0.1,
-                  1.0,
-                  1.0,
-                  1.0,
-                  1.0
-                ]
-              }
-            ],
-            "type": "gaussian",
-            "metadata": {
-              "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given",
-              "method": "skimage.transform.pyramid_gaussian",
-              "version": "0.16.1",
-              "args": "[true]",
-              "kwargs": {
-                "multichannel": true
+                ],
+                "type": "gaussian",
+                "metadata": {
+                  "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given",
+                  "method": "skimage.transform.pyramid_gaussian",
+                  "version": "0.16.1",
+                  "args": "[true]",
+                  "kwargs": {
+                    "multichannel": true
+                  }
+                }
               }
-            }
+            ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -116,51 +95,48 @@
       "formerly": "valid_strict/multiscales_transformations.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "path": "0",
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
+                  }
+                ],
                 "coordinateTransformations": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
+                    "scale": [10, 10],
                     "type": "scale"
                   }
-                ]
-              }
-            ],
-            "coordinateTransformations": [
-              {
-                "scale": [
-                  10,
-                  10
                 ],
-                "type": "scale"
+                "name": "image_with_coordinateTransformations",
+                "type": "foo",
+                "metadata": {
+                  "key": "value"
+                }
               }
-            ],
-            "version": "0.5-dev",
-            "name": "image_with_coordinateTransformations",
-            "type": "foo",
-            "metadata": {
-              "key": "value"
-            }
+            ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -168,53 +144,50 @@
       "formerly": "valid_strict/image_metadata.json",
       "description": "TBD",
       "data": {
-        "@id": "top",
-        "@type": "ngff:Image",
-        "multiscales": [
-          {
-            "@id": "inner",
-            "version": "0.5-dev",
-            "name": "example",
-            "datasets": [
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "@id": "top",
+            "@type": "ngff:Image",
+            "multiscales": [
               {
-                "path": "path/to/0",
-                "coordinateTransformations": [
+                "@id": "inner",
+                "name": "example",
+                "datasets": [
                   {
-                    "type": "scale",
-                    "scale": [
-                      1,
-                      1
+                    "path": "path/to/0",
+                    "coordinateTransformations": [
+                      {
+                        "type": "scale",
+                        "scale": [1, 1]
+                      }
                     ]
                   }
+                ],
+                "type": "gaussian",
+                "metadata": {
+                  "method": "skimage.transform.pyramid_gaussian",
+                  "version": "0.16.1",
+                  "args": ["true", "false"],
+                  "kwargs": {
+                    "multichannel": true
+                  }
+                },
+                "axes": [
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
+                  }
                 ]
               }
-            ],
-            "type": "gaussian",
-            "metadata": {
-              "method": "skimage.transform.pyramid_gaussian",
-              "version": "0.16.1",
-              "args": [
-                "true",
-                "false"
-              ],
-              "kwargs": {
-                "multichannel": true
-              }
-            },
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
             ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -222,42 +195,42 @@
       "formerly": "valid_strict/image.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1
-                    ],
-                    "type": "scale"
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
                   }
-                ]
+                ],
+                "datasets": [
+                  {
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1],
+                        "type": "scale"
+                      }
+                    ]
+                  }
+                ],
+                "name": "simple_image",
+                "type": "foo",
+                "metadata": {
+                  "key": "value"
+                }
               }
-            ],
-            "version": "0.5-dev",
-            "name": "simple_image",
-            "type": "foo",
-            "metadata": {
-              "key": "value"
-            }
+            ]
           }
-        ]
+        }
       },
       "valid": true
     },
@@ -265,121 +238,106 @@
       "formerly": "valid_strict/image_omero.json",
       "description": "TBD",
       "data": {
-        "multiscales": [
-          {
-            "axes": [
-              {
-                "name": "t",
-                "type": "time"
-              },
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "multiscales": [
               {
-                "name": "c",
-                "type": "channel"
-              },
-              {
-                "name": "z",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "y",
-                "type": "space",
-                "unit": "micrometer"
-              },
-              {
-                "name": "x",
-                "type": "space",
-                "unit": "micrometer"
-              }
-            ],
-            "datasets": [
-              {
-                "path": "0",
-                "coordinateTransformations": [
+                "axes": [
                   {
-                    "scale": [
-                      1,
-                      1,
-                      0.5,
-                      0.13,
-                      0.13
-                    ],
-                    "type": "scale"
+                    "name": "t",
+                    "type": "time"
                   },
                   {
-                    "translation": [
-                      0,
-                      9,
-                      0.5,
-                      25.74,
-                      21.58
-                    ],
-                    "type": "translation"
+                    "name": "c",
+                    "type": "channel"
+                  },
+                  {
+                    "name": "z",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "y",
+                    "type": "space",
+                    "unit": "micrometer"
+                  },
+                  {
+                    "name": "x",
+                    "type": "space",
+                    "unit": "micrometer"
                   }
-                ]
-              },
-              {
-                "path": "1",
-                "coordinateTransformations": [
+                ],
+                "datasets": [
                   {
-                    "scale": [
-                      1,
-                      1,
-                      1,
-                      0.26,
-                      0.26
-                    ],
-                    "type": "scale"
+                    "path": "0",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1, 0.5, 0.13, 0.13],
+                        "type": "scale"
+                      },
+                      {
+                        "translation": [0, 9, 0.5, 25.74, 21.58],
+                        "type": "translation"
+                      }
+                    ]
+                  },
+                  {
+                    "path": "1",
+                    "coordinateTransformations": [
+                      {
+                        "scale": [1, 1, 1, 0.26, 0.26],
+                        "type": "scale"
+                      }
+                    ]
                   }
-                ]
+                ],
+                "name": "image_with_omero_metadata",
+                "type": "foo",
+                "metadata": {
+                  "key": "value"
+                }
               }
             ],
-            "version": "0.5-dev",
-            "name": "image_with_omero_metadata",
-            "type": "foo",
-            "metadata": {
-              "key": "value"
+            "omero": {
+              "channels": [
+                {
+                  "active": true,
+                  "coefficient": 1.0,
+                  "color": "00FF00",
+                  "family": "linear",
+                  "inverted": false,
+                  "label": "FITC",
+                  "window": {
+                    "end": 813.0,
+                    "max": 870.0,
+                    "min": 102.0,
+                    "start": 82.0
+                  }
+                },
+                {
+                  "active": true,
+                  "coefficient": 1.0,
+                  "color": "FF0000",
+                  "family": "linear",
+                  "inverted": false,
+                  "label": "RD-TR-PE",
+                  "window": {
+                    "end": 815.0,
+                    "max": 441.0,
+                    "min": 129.0,
+                    "start": 78.0
+                  }
+                }
+              ],
+              "id": 1,
+              "rdefs": {
+                "defaultT": 0,
+                "defaultZ": 2,
+                "model": "color"
+              },
+              "version": "0.5-dev"
             }
           }
-        ],
-        "omero": {
-          "channels": [
-            {
-              "active": true,
-              "coefficient": 1.0,
-              "color": "00FF00",
-              "family": "linear",
-              "inverted": false,
-              "label": "FITC",
-              "window": {
-                "end": 813.0,
-                "max": 870.0,
-                "min": 102.0,
-                "start": 82.0
-              }
-            },
-            {
-              "active": true,
-              "coefficient": 1.0,
-              "color": "FF0000",
-              "family": "linear",
-              "inverted": false,
-              "label": "RD-TR-PE",
-              "window": {
-                "end": 815.0,
-                "max": 441.0,
-                "min": 129.0,
-                "start": 78.0
-              }
-            }
-          ],
-          "id": 1,
-          "rdefs": {
-            "defaultT": 0,
-            "defaultZ": 2,
-            "model": "color"
-          },
-          "version": "0.5-dev"
         }
       },
       "valid": true
diff --git a/latest/tests/strict_label_suite.json b/latest/tests/strict_label_suite.json
index 9fe0cda2..96632835 100644
--- a/latest/tests/strict_label_suite.json
+++ b/latest/tests/strict_label_suite.json
@@ -4,25 +4,11 @@
     "id": "schemas/strict_label.schema"
   },
   "tests": [
-    {
-      "formerly": "image-label/no_version",
-      "data": {
-        "image-label": {
-          "colors": [
-            {
-              "label-value": 1,
-              "rgba": [0, 0, 0, 0]
-            }
-          ]
-        }
-      },
-      "valid": false
-    },
     {
       "formerly": "image-label/no_colors",
       "data": {
-        "image-label": {
-          "version": "0.5-dev"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": { "image-label": {} }
         }
       },
       "valid": false
diff --git a/latest/tests/strict_plate_suite.json b/latest/tests/strict_plate_suite.json
index 931cf7e7..4cbd40fa 100644
--- a/latest/tests/strict_plate_suite.json
+++ b/latest/tests/strict_plate_suite.json
@@ -7,26 +7,29 @@
     {
       "formerly": "plate/strict_no_acquisitions",
       "data": {
-        "plate": {
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "name": "test plate",
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "version": "0.5-dev",
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "name": "test plate",
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": true
@@ -34,51 +37,28 @@
     {
       "formerly": "plate/missing_name",
       "data": {
-        "plate": {
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "version": "0.5-dev",
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
-        }
-      },
-      "valid": false
-    },
-    {
-      "formerly": "plate/missing_version",
-      "data": {
-        "plate": {
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "name": "test plate",
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -86,33 +66,36 @@
     {
       "formerly": "plate/strict_acquisitions",
       "data": {
-        "plate": {
-          "acquisitions": [
-            {
-              "id": 0,
-              "name": "0",
-              "maximumfieldcount": 1
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "name": "test plate",
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "version": "0.5-dev",
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "name": "0",
+                  "maximumfieldcount": 1
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "name": "test plate",
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": true
@@ -120,32 +103,35 @@
     {
       "formerly": "plate/missing_acquisition_name",
       "data": {
-        "plate": {
-          "acquisitions": [
-            {
-              "id": 0,
-              "maximumfieldcount": 1
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "name": "test plate",
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "version": "0.5-dev",
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "maximumfieldcount": 1
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "name": "test plate",
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
@@ -153,32 +139,35 @@
     {
       "formerly": "plate/missing_acquisition_maximumfieldcount",
       "data": {
-        "plate": {
-          "acquisitions": [
-            {
-              "id": 0,
-              "name": "0"
-            }
-          ],
-          "columns": [
-            {
-              "name": "A"
-            }
-          ],
-          "name": "test plate",
-          "rows": [
-            {
-              "name": "1"
-            }
-          ],
-          "version": "0.5-dev",
-          "wells": [
-            {
-              "path": "A/1",
-              "rowIndex": 0,
-              "columnIndex": 0
-            }
-          ]
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "plate": {
+              "acquisitions": [
+                {
+                  "id": 0,
+                  "name": "0"
+                }
+              ],
+              "columns": [
+                {
+                  "name": "A"
+                }
+              ],
+              "name": "test plate",
+              "rows": [
+                {
+                  "name": "1"
+                }
+              ],
+              "wells": [
+                {
+                  "path": "A/1",
+                  "rowIndex": 0,
+                  "columnIndex": 0
+                }
+              ]
+            }
+          }
         }
       },
       "valid": false
diff --git a/latest/tests/strict_well_suite.json b/latest/tests/strict_well_suite.json
index edfb2936..b47c8df8 100644
--- a/latest/tests/strict_well_suite.json
+++ b/latest/tests/strict_well_suite.json
@@ -7,41 +7,34 @@
     {
       "formerly": "well/strict_no_acquisitions",
       "data": {
-        "well": {
-          "images": [
-            {
-              "path": "0"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "well": {
+              "images": [
+                {
+                  "path": "0"
+                }
+              ]
             }
-          ],
-          "version": "0.5-dev"
+          }
         }
       },
       "valid": true
     },
-    {
-      "formerly": "plate/missing_version",
-      "data": {
-        "well": {
-          "images": [
-            {
-              "path": "0"
-            }
-          ]
-        }
-      },
-      "valid": false
-    },
     {
       "formerly": "plate/strict_acquisitions",
       "data": {
-        "well": {
-          "images": [
-            {
-              "acquisition": 0,
-              "path": "0"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "well": {
+              "images": [
+                {
+                  "acquisition": 0,
+                  "path": "0"
+                }
+              ]
             }
-          ],
-          "version": "0.5-dev"
+          }
         }
       },
       "valid": true
diff --git a/latest/tests/test_validation.py b/latest/tests/test_validation.py
index 2b862785..53d4adcc 100644
--- a/latest/tests/test_validation.py
+++ b/latest/tests/test_validation.py
@@ -16,9 +16,12 @@
         schema = json.load(f)
         schema_store[schema["$id"]] = schema
 
+print(schema_store)
+
+
 @dataclass
 class Suite:
-    schema:  dict
+    schema: dict
     data: dict
     valid: bool = True
 
@@ -72,7 +75,9 @@ def pytest_generate_tests(metafunc):
             for filename in glob.glob(f"{example_folder}/*.json"):
                 with open(filename) as f:
                     # Strip comments
-                    data = ''.join(line for line in f if not line.lstrip().startswith('//'))
+                    data = "".join(
+                        line for line in f if not line.lstrip().startswith("//")
+                    )
                     data = json.loads(data)
                 ids.append("example_" + str(filename).split("/")[-1][0:-5])
                 suites.append(Suite(schema, data, True))  # Assume true
diff --git a/latest/tests/well_suite.json b/latest/tests/well_suite.json
index 0f752551..a18d5060 100644
--- a/latest/tests/well_suite.json
+++ b/latest/tests/well_suite.json
@@ -7,12 +7,16 @@
     {
       "formerly": "well/minimal_no_acquisition",
       "data": {
-        "well": {
-          "images": [
-            {
-              "path": "0"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "well": {
+              "images": [
+                {
+                  "path": "0"
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": true
@@ -20,13 +24,17 @@
     {
       "formerly": "well/minimal_acquisitions",
       "data": {
-        "well": {
-          "images": [
-            {
-              "acquisition": 1,
-              "path": "0"
+        "attributes": {
+          "https://ngff.openmicroscopy.org/0.5": {
+            "well": {
+              "images": [
+                {
+                  "acquisition": 1,
+                  "path": "0"
+                }
+              ]
             }
-          ]
+          }
         }
       },
       "valid": true
@@ -56,20 +64,6 @@
       },
       "valid": false
     },
-    {
-      "formerly": "well/invalid_version",
-      "data": {
-        "well": {
-          "images": [
-            {
-              "path": "0"
-            }
-          ],
-          "version": "foo"
-        }
-      },
-      "valid": false
-    },
     {
       "formerly": "well/non_integer_acquisition_id",
       "data": {
diff --git a/rfc/2/index.md b/rfc/2/index.md
index 95571c2d..0800e823 100644
--- a/rfc/2/index.md
+++ b/rfc/2/index.md
@@ -130,7 +130,7 @@ In the future, the OME-Zarr community MAY decide to restrict the allowed feature
 
 While the adoption of Zarr v3 does not strictly require changes to the OME-Zarr metadata, this proposal contains changes to align with community conventions and ease implementation:
 
-- OME-Zarr metadata will be stored under a dedicated key in the Zarr array or group attributes. The key will be a well-known URI of the OME-NGFF specification with a version number, e.g. `https://ngff.openmicroscopy.org/0.6`.
+- OME-Zarr metadata will be stored under a dedicated key in the Zarr array or group attributes. The key will be a well-known URI of the OME-NGFF specification with a version number, e.g. `https://ngff.openmicroscopy.org/0.5`.
 - Since the version is already encoded in the new metadata key, the `version` keys in `multiscale`, `plate`, `well` etc. are removed.
 - The `dimension_names` attribute in the Zarr metadata must match the axes names in the OME-Zarr metadata.
 

From 81d87426251fb6b78584ff9f49c6aa88c1553918 Mon Sep 17 00:00:00 2001
From: Norman Rzepka 
Date: Sun, 2 Jun 2024 08:26:37 +0200
Subject: [PATCH 2/7] typo

---
 latest/index.bs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/latest/index.bs b/latest/index.bs
index ee3b11bb..999423e3 100644
--- a/latest/index.bs
+++ b/latest/index.bs
@@ -187,7 +187,7 @@ hierarchy. In this file, the metadata is stored under the namespaced key
 
 The "axes" are used as part of [[#multiscale-md]]. The length of "axes" MUST be equal to the number of dimensions of the arrays that contain the image data.
 
-The "dimension_names" attribute in the `zarr.json` of the Zarr array of a multiscale level MUS match the names in the "axes" metadata.
+The "dimension_names" attribute in the `zarr.json` of the Zarr array of a multiscale level MUST match the names in the "axes" metadata.
 
 
 "bioformats2raw.layout" (transitional) {#bf2raw}

From 00371a3c28d1a93a042bc5dc831e84b41505fc66 Mon Sep 17 00:00:00 2001
From: Norman Rzepka 
Date: Fri, 28 Jun 2024 14:28:31 +0200
Subject: [PATCH 3/7] change version in link

---
 latest/index.bs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/latest/index.bs b/latest/index.bs
index 999423e3..8e34416f 100644
--- a/latest/index.bs
+++ b/latest/index.bs
@@ -19,7 +19,7 @@ Abstract: This document contains next-generation file format (NGFF)
 Abstract: specifications for storing bioimaging data in the cloud.
 Abstract: All specifications are submitted to the https://image.sc community for review.
 Status Text: The current released version of this specification is
-Status Text: 0.4. Migration scripts
+Status Text: 0.5. Migration scripts
 Status Text: will be provided between numbered versions. Data written with these latest changes
 Status Text: (an "editor's draft") will not necessarily be supported.
 
From ee4ce14d82961745a92e15e8b052ad4524f65b82 Mon Sep 17 00:00:00 2001 From: Norman Rzepka Date: Tue, 2 Jul 2024 17:16:20 +0200 Subject: [PATCH 4/7] adapt spec to RFC-2 revision --- latest/examples/bf2raw/image.json | 2 +- latest/examples/bf2raw/plate.json | 3 +- .../label_strict/colors_properties.json | 3 +- .../multiscales_example.json | 3 +- .../multiscales_transformations.json | 3 +- latest/examples/ome/series-2.json | 4 +- .../examples/plate_strict/plate_2wells.json | 3 +- .../examples/plate_strict/plate_6wells.json | 3 +- latest/examples/well_strict/well_2fields.json | 3 +- latest/examples/well_strict/well_4fields.json | 3 +- latest/index.bs | 13 ++- latest/schemas/bf2raw.schema | 10 ++- latest/schemas/image.schema | 10 ++- latest/schemas/label.schema | 10 ++- latest/schemas/ome.schema | 10 ++- latest/schemas/plate.schema | 10 ++- latest/schemas/strict_image.schema | 2 +- latest/schemas/strict_label.schema | 2 +- latest/schemas/strict_plate.schema | 2 +- latest/schemas/version.schema | 10 +++ latest/schemas/well.schema | 10 ++- latest/tests/image_suite.json | 86 ++++++++++++------ latest/tests/label_suite.json | 27 ++++-- latest/tests/plate_suite.json | 90 ++++++++++++------- latest/tests/strict_image_suite.json | 15 ++-- latest/tests/strict_label_suite.json | 5 +- latest/tests/strict_plate_suite.json | 15 ++-- latest/tests/strict_well_suite.json | 6 +- latest/tests/well_suite.json | 6 +- 29 files changed, 250 insertions(+), 119 deletions(-) create mode 100644 latest/schemas/version.schema diff --git a/latest/examples/bf2raw/image.json b/latest/examples/bf2raw/image.json index 0a6445d1..1a9667ab 100644 --- a/latest/examples/bf2raw/image.json +++ b/latest/examples/bf2raw/image.json @@ -2,6 +2,6 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { "bioformats2raw.layout": 3 } + "ome": { "version": "0.5", "bioformats2raw.layout": 3 } } } diff --git a/latest/examples/bf2raw/plate.json b/latest/examples/bf2raw/plate.json index 76865d36..ef1ac0a7 100644 --- a/latest/examples/bf2raw/plate.json +++ b/latest/examples/bf2raw/plate.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "bioformats2raw.layout": 3, "plate": { "columns": [ diff --git a/latest/examples/label_strict/colors_properties.json b/latest/examples/label_strict/colors_properties.json index 42793d12..fa1f4cd6 100644 --- a/latest/examples/label_strict/colors_properties.json +++ b/latest/examples/label_strict/colors_properties.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [ { diff --git a/latest/examples/multiscales_strict/multiscales_example.json b/latest/examples/multiscales_strict/multiscales_example.json index 0fcc2434..4b2c718a 100644 --- a/latest/examples/multiscales_strict/multiscales_example.json +++ b/latest/examples/multiscales_strict/multiscales_example.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "name": "example", diff --git a/latest/examples/multiscales_strict/multiscales_transformations.json b/latest/examples/multiscales_strict/multiscales_transformations.json index e6c14c79..e4eb742a 100644 --- a/latest/examples/multiscales_strict/multiscales_transformations.json +++ b/latest/examples/multiscales_strict/multiscales_transformations.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ diff --git a/latest/examples/ome/series-2.json b/latest/examples/ome/series-2.json index 660e1115..235c1910 100644 --- a/latest/examples/ome/series-2.json +++ b/latest/examples/ome/series-2.json @@ -2,8 +2,6 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { - "series": ["0", "1"] - } + "ome": { "version": "0.5", "series": ["0", "1"] } } } diff --git a/latest/examples/plate_strict/plate_2wells.json b/latest/examples/plate_strict/plate_2wells.json index c0df297f..e8961001 100644 --- a/latest/examples/plate_strict/plate_2wells.json +++ b/latest/examples/plate_strict/plate_2wells.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { diff --git a/latest/examples/plate_strict/plate_6wells.json b/latest/examples/plate_strict/plate_6wells.json index c07a8c5b..bf1b8afe 100644 --- a/latest/examples/plate_strict/plate_6wells.json +++ b/latest/examples/plate_strict/plate_6wells.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { diff --git a/latest/examples/well_strict/well_2fields.json b/latest/examples/well_strict/well_2fields.json index b1531059..987fe5e4 100644 --- a/latest/examples/well_strict/well_2fields.json +++ b/latest/examples/well_strict/well_2fields.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "well": { "images": [ { diff --git a/latest/examples/well_strict/well_4fields.json b/latest/examples/well_strict/well_4fields.json index 18eb60eb..581ec66b 100644 --- a/latest/examples/well_strict/well_4fields.json +++ b/latest/examples/well_strict/well_4fields.json @@ -2,7 +2,8 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "well": { "images": [ { diff --git a/latest/index.bs b/latest/index.bs index 8e34416f..30bb7c38 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -162,13 +162,17 @@ for discovering certain types of data, especially images. The OME-Zarr Metadata is stored in the various `zarr.json` files throughout the above array hierarchy. In this file, the metadata is stored under the namespaced key -`https://ngff.openmicroscopy.org/0.5` in `attributes`. +`ome` in `attributes`. +The version of the OME-Zarr Metadata is denoted as a string in the `version` attribute within the `ome` namespace. + +The OME-Zarr Metadata version MUST be consistent within a hierarchy. ```json { ... "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", ... } } @@ -402,7 +406,8 @@ labeled multiscale image(s). All label images SHOULD be listed within this metad { ... "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "labels": [ "cell_space_segmentation" ] @@ -609,7 +614,7 @@ Citing {#citing} [Next-generation file format (NGFF) specifications for storing bioimaging data in the cloud.](https://ngff.openmicroscopy.org/0.4) J. Moore, *et al*. Open Microscopy Environment Consortium, 8 February 2022. -This edition of the specification is [https://ngff.openmicroscopy.org/0.4/](https://ngff.openmicroscopy.org/0.4/]). +This edition of the specification is [https://ngff.openmicroscopy.org/0.5/](https://ngff.openmicroscopy.org/0.5/]). The latest edition is available at [https://ngff.openmicroscopy.org/latest/](https://ngff.openmicroscopy.org/latest/). [(doi:10.5281/zenodo.4282107)](https://doi.org/10.5281/zenodo.4282107) diff --git a/latest/schemas/bf2raw.schema b/latest/schemas/bf2raw.schema index 929516ba..62a183ad 100644 --- a/latest/schemas/bf2raw.schema +++ b/latest/schemas/bf2raw.schema @@ -9,7 +9,7 @@ "description": "The zarr.json attributes key", "type": "object", "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { @@ -19,15 +19,19 @@ "enum": [ 3 ] + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" } }, "required": [ - "bioformats2raw.layout" + "bioformats2raw.layout", + "version" ] } }, "required": [ - "https://ngff.openmicroscopy.org/0.5" + "ome" ] } }, diff --git a/latest/schemas/image.schema b/latest/schemas/image.schema index 57a3d811..1729ceb1 100644 --- a/latest/schemas/image.schema +++ b/latest/schemas/image.schema @@ -9,7 +9,7 @@ "description": "The zarr.json attributes key", "type": "object", "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { @@ -18,15 +18,19 @@ }, "omero": { "$ref": "#/$defs/omero" + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" } }, "required": [ - "multiscales" + "multiscales", + "version" ] } }, "required": [ - "https://ngff.openmicroscopy.org/0.5" + "ome" ] } }, diff --git a/latest/schemas/label.schema b/latest/schemas/label.schema index 193e64fe..9ff0f932 100644 --- a/latest/schemas/label.schema +++ b/latest/schemas/label.schema @@ -9,21 +9,25 @@ "description": "The zarr.json attributes key", "type": "object", "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { "image-label": { "$ref": "#/$defs/image-label" + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" } }, "required": [ - "image-label" + "image-label", + "version" ] } }, "required": [ - "https://ngff.openmicroscopy.org/0.5" + "ome" ] } }, diff --git a/latest/schemas/ome.schema b/latest/schemas/ome.schema index e0ce77a5..88056e20 100644 --- a/latest/schemas/ome.schema +++ b/latest/schemas/ome.schema @@ -9,7 +9,7 @@ "description": "The zarr.json attributes key", "type": "object", "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { @@ -20,15 +20,19 @@ "type": "string" }, "minContains": 1 + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" } }, "required": [ - "series" + "series", + "version" ] } }, "required": [ - "https://ngff.openmicroscopy.org/0.5" + "ome" ] } }, diff --git a/latest/schemas/plate.schema b/latest/schemas/plate.schema index c33a75fc..60ae11a9 100644 --- a/latest/schemas/plate.schema +++ b/latest/schemas/plate.schema @@ -9,7 +9,7 @@ "description": "The zarr.json attributes key", "type": "object", "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { @@ -140,15 +140,19 @@ "rows", "wells" ] + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" } }, "required": [ - "plate" + "plate", + "version" ] } }, "required": [ - "https://ngff.openmicroscopy.org/0.5" + "ome" ] } }, diff --git a/latest/schemas/strict_image.schema b/latest/schemas/strict_image.schema index 1b04f7ad..df755af0 100644 --- a/latest/schemas/strict_image.schema +++ b/latest/schemas/strict_image.schema @@ -8,7 +8,7 @@ "properties": { "attributes": { "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "properties": { "multiscales": { "items": { diff --git a/latest/schemas/strict_label.schema b/latest/schemas/strict_label.schema index 8936ee11..8bcc7d27 100644 --- a/latest/schemas/strict_label.schema +++ b/latest/schemas/strict_label.schema @@ -8,7 +8,7 @@ "properties": { "attributes": { "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "properties": { "image-label": { "required": [ diff --git a/latest/schemas/strict_plate.schema b/latest/schemas/strict_plate.schema index 21075845..61d2e837 100644 --- a/latest/schemas/strict_plate.schema +++ b/latest/schemas/strict_plate.schema @@ -8,7 +8,7 @@ "properties": { "attributes": { "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "properties": { "plate": { "properties": { diff --git a/latest/schemas/version.schema b/latest/schemas/version.schema new file mode 100644 index 00000000..4e04f077 --- /dev/null +++ b/latest/schemas/version.schema @@ -0,0 +1,10 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://ngff.openmicroscopy.org/latest/schemas/version.schema", + "title": "OME-Zarr Metadata version", + "description": "The version of the OME-Zarr Metadata", + "type": "string", + "enum": [ + "0.5" + ] +} diff --git a/latest/schemas/well.schema b/latest/schemas/well.schema index b44a8e35..d2dddfca 100644 --- a/latest/schemas/well.schema +++ b/latest/schemas/well.schema @@ -9,7 +9,7 @@ "description": "The zarr.json attributes key", "type": "object", "properties": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { @@ -43,15 +43,19 @@ "required": [ "images" ] + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" } }, "required": [ - "well" + "well", + "version" ] } }, "required": [ - "https://ngff.openmicroscopy.org/0.5" + "ome" ] } }, diff --git a/latest/tests/image_suite.json b/latest/tests/image_suite.json index 645fd683..63925b1a 100644 --- a/latest/tests/image_suite.json +++ b/latest/tests/image_suite.json @@ -9,7 +9,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -52,7 +53,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -93,7 +95,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -131,7 +134,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "datasets": [ @@ -178,7 +182,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -220,7 +225,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -258,7 +264,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -294,7 +301,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -332,7 +340,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -370,7 +379,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -422,7 +432,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -477,7 +488,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -513,7 +525,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -546,7 +559,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -586,7 +600,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -624,7 +639,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -668,7 +684,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -700,7 +717,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -728,7 +746,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -755,7 +774,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "datasets": [ @@ -781,7 +801,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -819,7 +840,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -861,7 +883,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [], @@ -888,7 +911,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -932,7 +956,10 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { "multiscales": [] } + "ome": { + "version": "0.5", + "multiscales": [] + } } }, "valid": false @@ -942,7 +969,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -997,7 +1025,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -1030,7 +1059,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ diff --git a/latest/tests/label_suite.json b/latest/tests/label_suite.json index 64f9b2c3..f9d9d051 100644 --- a/latest/tests/label_suite.json +++ b/latest/tests/label_suite.json @@ -8,7 +8,8 @@ "formerly": "image-label/minimal", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [ { @@ -26,7 +27,8 @@ "formerly": "image-label/minimal_properties", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [ { @@ -49,7 +51,8 @@ "formerly": "image-label/empty_colors", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [] } @@ -62,7 +65,8 @@ "formerly": "image-label/empty_properties", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "properties": [] } @@ -75,7 +79,8 @@ "formerly": "image-label/colors_no_label_value", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [ { @@ -92,7 +97,8 @@ "formerly": "image-label/properties_no_label_value", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "properties": [ { @@ -109,7 +115,8 @@ "formerly": "image-label/colors_rgba_length", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [ { @@ -127,7 +134,8 @@ "formerly": "image-label/colors_rgba_type", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [ { @@ -145,7 +153,8 @@ "formerly": "image-label/colors_duplicate", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "image-label": { "colors": [ { diff --git a/latest/tests/plate_suite.json b/latest/tests/plate_suite.json index 35272bf7..d5aa2abd 100644 --- a/latest/tests/plate_suite.json +++ b/latest/tests/plate_suite.json @@ -8,7 +8,8 @@ "formerly": "plate/minimal_no_acquisitions", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -37,7 +38,8 @@ "formerly": "plate/minimal_acquisitions", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -71,7 +73,8 @@ "formerly": "plate/missing_rows", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -95,7 +98,8 @@ "formerly": "plate/empty_rows", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -120,7 +124,8 @@ "formerly": "plate/duplicate_rows", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -152,7 +157,8 @@ "formerly": "plate/missing_columns", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "rows": [ { @@ -176,7 +182,8 @@ "formerly": "plate/empty_columns", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [], "rows": [ @@ -201,7 +208,8 @@ "formerly": "plate/duplicate_columns", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -233,7 +241,8 @@ "formerly": "plate/missing_wells", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -255,7 +264,8 @@ "formerly": "plate/empty_wells", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -278,7 +288,8 @@ "formerly": "plate/duplicate_rows", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -315,7 +326,8 @@ "formerly": "plate/missing_column_name", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -344,7 +356,8 @@ "formerly": "plate/missing_row_name", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -373,7 +386,8 @@ "formerly": "plate/missing_well_path", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -401,7 +415,8 @@ "formerly": "plate/missing_well_rowIndex", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -429,7 +444,8 @@ "formerly": "plate/missing_well_columnIndex", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -457,7 +473,8 @@ "formerly": "plate/well_1group", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -485,7 +502,8 @@ "formerly": "plate/well_3groups", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -513,7 +531,8 @@ "formerly": "plate/non_alphanumeric_column", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -542,7 +561,8 @@ "formerly": "plate/non_alphanumeric_row", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -571,7 +591,8 @@ "formerly": "plate/missing_acquisition_id", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -605,7 +626,8 @@ "formerly": "plate/non_integer_acquisition_id", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -639,7 +661,8 @@ "formerly": "plate/negative_acquisition_id", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -673,7 +696,8 @@ "formerly": "plate/non_integer_acquisition_maximumfieldcount", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -708,7 +732,8 @@ "formerly": "plate/acquisition_zero_maximumfieldcount", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -743,7 +768,8 @@ "formerly": "plate/acquisition_noninteger_starttime", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -778,7 +804,8 @@ "formerly": "plate/acquisition_negative_starttime", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -813,7 +840,8 @@ "formerly": "plate/acquisition_noninteger_endtime", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -848,7 +876,8 @@ "formerly": "plate/negative_endtime", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -883,7 +912,8 @@ "formerly": "plate/zero_field_count", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { diff --git a/latest/tests/strict_image_suite.json b/latest/tests/strict_image_suite.json index faf667f2..ee4336e6 100644 --- a/latest/tests/strict_image_suite.json +++ b/latest/tests/strict_image_suite.json @@ -9,7 +9,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "name": "example", @@ -96,7 +97,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -145,7 +147,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "@id": "top", "@type": "ngff:Image", "multiscales": [ @@ -196,7 +199,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ @@ -239,7 +243,8 @@ "description": "TBD", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "multiscales": [ { "axes": [ diff --git a/latest/tests/strict_label_suite.json b/latest/tests/strict_label_suite.json index 96632835..32c732ed 100644 --- a/latest/tests/strict_label_suite.json +++ b/latest/tests/strict_label_suite.json @@ -8,7 +8,10 @@ "formerly": "image-label/no_colors", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { "image-label": {} } + "ome": { + "version": "0.5", + "image-label": {} + } } }, "valid": false diff --git a/latest/tests/strict_plate_suite.json b/latest/tests/strict_plate_suite.json index 4cbd40fa..91d1e166 100644 --- a/latest/tests/strict_plate_suite.json +++ b/latest/tests/strict_plate_suite.json @@ -8,7 +8,8 @@ "formerly": "plate/strict_no_acquisitions", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -38,7 +39,8 @@ "formerly": "plate/missing_name", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "columns": [ { @@ -67,7 +69,8 @@ "formerly": "plate/strict_acquisitions", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -104,7 +107,8 @@ "formerly": "plate/missing_acquisition_name", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { @@ -140,7 +144,8 @@ "formerly": "plate/missing_acquisition_maximumfieldcount", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "plate": { "acquisitions": [ { diff --git a/latest/tests/strict_well_suite.json b/latest/tests/strict_well_suite.json index b47c8df8..3b11d4ca 100644 --- a/latest/tests/strict_well_suite.json +++ b/latest/tests/strict_well_suite.json @@ -8,7 +8,8 @@ "formerly": "well/strict_no_acquisitions", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "well": { "images": [ { @@ -25,7 +26,8 @@ "formerly": "plate/strict_acquisitions", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "well": { "images": [ { diff --git a/latest/tests/well_suite.json b/latest/tests/well_suite.json index a18d5060..18ef453f 100644 --- a/latest/tests/well_suite.json +++ b/latest/tests/well_suite.json @@ -8,7 +8,8 @@ "formerly": "well/minimal_no_acquisition", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "well": { "images": [ { @@ -25,7 +26,8 @@ "formerly": "well/minimal_acquisitions", "data": { "attributes": { - "https://ngff.openmicroscopy.org/0.5": { + "ome": { + "version": "0.5", "well": { "images": [ { From f1bab0c826176aac856ae25bae31e4b850d79d30 Mon Sep 17 00:00:00 2001 From: Norman Rzepka Date: Thu, 4 Jul 2024 14:05:10 +0200 Subject: [PATCH 5/7] Update rfc/2/index.md --- rfc/2/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfc/2/index.md b/rfc/2/index.md index 0800e823..95571c2d 100644 --- a/rfc/2/index.md +++ b/rfc/2/index.md @@ -130,7 +130,7 @@ In the future, the OME-Zarr community MAY decide to restrict the allowed feature While the adoption of Zarr v3 does not strictly require changes to the OME-Zarr metadata, this proposal contains changes to align with community conventions and ease implementation: -- OME-Zarr metadata will be stored under a dedicated key in the Zarr array or group attributes. The key will be a well-known URI of the OME-NGFF specification with a version number, e.g. `https://ngff.openmicroscopy.org/0.5`. +- OME-Zarr metadata will be stored under a dedicated key in the Zarr array or group attributes. The key will be a well-known URI of the OME-NGFF specification with a version number, e.g. `https://ngff.openmicroscopy.org/0.6`. - Since the version is already encoded in the new metadata key, the `version` keys in `multiscale`, `plate`, `well` etc. are removed. - The `dimension_names` attribute in the Zarr metadata must match the axes names in the OME-Zarr metadata. From 4e4bf5a9b705c68afc6f992242c37a99232fbfbb Mon Sep 17 00:00:00 2001 From: Norman Rzepka Date: Thu, 26 Sep 2024 15:43:43 +0200 Subject: [PATCH 6/7] adds schema_url + changes the root object for the JSON schemas to 'attributes' within a zarr.json --- latest/examples/bf2raw/image.json | 6 +- latest/examples/bf2raw/plate.json | 1 + .../label_strict/colors_properties.json | 1 + .../multiscales_example.json | 1 + .../multiscales_transformations.json | 1 + latest/examples/ome/series-2.json | 6 +- .../examples/plate_strict/plate_2wells.json | 1 + .../examples/plate_strict/plate_6wells.json | 1 + latest/examples/well_strict/well_2fields.json | 1 + latest/examples/well_strict/well_4fields.json | 1 + latest/index.bs | 6 +- latest/schemas/_schema_url.schema | 10 + .../{version.schema => _version.schema} | 2 +- latest/schemas/bf2raw.schema | 41 +- latest/schemas/image.schema | 47 +- latest/schemas/label.schema | 41 +- latest/schemas/ome.schema | 43 +- latest/schemas/ome_zarr.schema | 24 + latest/schemas/plate.schema | 257 ++- latest/schemas/strict_image.schema | 20 +- latest/schemas/strict_label.schema | 14 +- latest/schemas/strict_plate.schema | 30 +- latest/schemas/well.schema | 73 +- latest/tests/image_suite.json | 1682 ++++++++--------- latest/tests/label_suite.json | 183 +- latest/tests/plate_suite.json | 1360 +++++++------ latest/tests/strict_image_suite.json | 571 +++--- latest/tests/strict_label_suite.json | 9 +- latest/tests/strict_plate_suite.json | 261 ++- latest/tests/strict_well_suite.json | 40 +- latest/tests/test_validation.py | 15 + latest/tests/well_suite.json | 40 +- 32 files changed, 2366 insertions(+), 2423 deletions(-) create mode 100644 latest/schemas/_schema_url.schema rename latest/schemas/{version.schema => _version.schema} (73%) create mode 100644 latest/schemas/ome_zarr.schema diff --git a/latest/examples/bf2raw/image.json b/latest/examples/bf2raw/image.json index 1a9667ab..564dec83 100644 --- a/latest/examples/bf2raw/image.json +++ b/latest/examples/bf2raw/image.json @@ -2,6 +2,10 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "ome": { "version": "0.5", "bioformats2raw.layout": 3 } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "bioformats2raw.layout": 3 + } } } diff --git a/latest/examples/bf2raw/plate.json b/latest/examples/bf2raw/plate.json index ef1ac0a7..54a5e99b 100644 --- a/latest/examples/bf2raw/plate.json +++ b/latest/examples/bf2raw/plate.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "bioformats2raw.layout": 3, "plate": { "columns": [ diff --git a/latest/examples/label_strict/colors_properties.json b/latest/examples/label_strict/colors_properties.json index fa1f4cd6..9bff14a5 100644 --- a/latest/examples/label_strict/colors_properties.json +++ b/latest/examples/label_strict/colors_properties.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { diff --git a/latest/examples/multiscales_strict/multiscales_example.json b/latest/examples/multiscales_strict/multiscales_example.json index 4b2c718a..e10b93c8 100644 --- a/latest/examples/multiscales_strict/multiscales_example.json +++ b/latest/examples/multiscales_strict/multiscales_example.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "name": "example", diff --git a/latest/examples/multiscales_strict/multiscales_transformations.json b/latest/examples/multiscales_strict/multiscales_transformations.json index e4eb742a..7569ddb3 100644 --- a/latest/examples/multiscales_strict/multiscales_transformations.json +++ b/latest/examples/multiscales_strict/multiscales_transformations.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ diff --git a/latest/examples/ome/series-2.json b/latest/examples/ome/series-2.json index 235c1910..f7c7ce00 100644 --- a/latest/examples/ome/series-2.json +++ b/latest/examples/ome/series-2.json @@ -2,6 +2,10 @@ "zarr_format": 3, "node_type": "group", "attributes": { - "ome": { "version": "0.5", "series": ["0", "1"] } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "series": ["0", "1"] + } } } diff --git a/latest/examples/plate_strict/plate_2wells.json b/latest/examples/plate_strict/plate_2wells.json index e8961001..09214c10 100644 --- a/latest/examples/plate_strict/plate_2wells.json +++ b/latest/examples/plate_strict/plate_2wells.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { diff --git a/latest/examples/plate_strict/plate_6wells.json b/latest/examples/plate_strict/plate_6wells.json index bf1b8afe..45cb725c 100644 --- a/latest/examples/plate_strict/plate_6wells.json +++ b/latest/examples/plate_strict/plate_6wells.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { diff --git a/latest/examples/well_strict/well_2fields.json b/latest/examples/well_strict/well_2fields.json index 987fe5e4..0c3a22df 100644 --- a/latest/examples/well_strict/well_2fields.json +++ b/latest/examples/well_strict/well_2fields.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ { diff --git a/latest/examples/well_strict/well_4fields.json b/latest/examples/well_strict/well_4fields.json index 581ec66b..687deb9e 100644 --- a/latest/examples/well_strict/well_4fields.json +++ b/latest/examples/well_strict/well_4fields.json @@ -4,6 +4,7 @@ "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ { diff --git a/latest/index.bs b/latest/index.bs index 30bb7c38..bb288311 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -164,6 +164,7 @@ The OME-Zarr Metadata is stored in the various `zarr.json` files throughout the hierarchy. In this file, the metadata is stored under the namespaced key `ome` in `attributes`. The version of the OME-Zarr Metadata is denoted as a string in the `version` attribute within the `ome` namespace. +A URL to the JSON Schema of the OME-Zarr Metadata is denoted as a string in the `schema_url` attribute within the `ome` namespace. The OME-Zarr Metadata version MUST be consistent within a hierarchy. @@ -173,6 +174,7 @@ The OME-Zarr Metadata version MUST be consistent within a hierarchy. "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", ... } } @@ -324,7 +326,7 @@ Each "multiscales" dictionary MAY contain the field "coordinateTransformations", The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them. They can for example be used to specify the `scale` for a dimension that is the same for all resolutions. -Each "multiscales" dictionary SHOULD contain the field "name". It MUST contain the field "version", which indicates the version of the multiscale metadata of this image (current version is [NGFFVERSION]). +Each "multiscales" dictionary SHOULD contain the field "name". Each "multiscales" dictionary SHOULD contain the field "type", which gives the type of downscaling method used to generate the multiscale image pyramid. It SHOULD contain the field "metadata", which contains a dictionary with additional information about the downscaling method. @@ -358,7 +360,6 @@ can be found under the "omero" key in the group-level metadata: ```json "id": 1, # ID in OMERO "name": "example.tif", # Name as shown in the UI -"version": "0.5-dev", # Current version "channels": [ # Array matching the c dimension size { "active": true, @@ -408,6 +409,7 @@ labeled multiscale image(s). All label images SHOULD be listed within this metad "attributes": { "ome": { "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/latest/schemas/ome_zarr.schema", "labels": [ "cell_space_segmentation" ] diff --git a/latest/schemas/_schema_url.schema b/latest/schemas/_schema_url.schema new file mode 100644 index 00000000..432f1b12 --- /dev/null +++ b/latest/schemas/_schema_url.schema @@ -0,0 +1,10 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema", + "title": "OME-Zarr Schema URL", + "description": "A URL to the JSON schema of the OME-Zarr Metadata", + "type": "string", + "enum": [ + "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema" + ] +} diff --git a/latest/schemas/version.schema b/latest/schemas/_version.schema similarity index 73% rename from latest/schemas/version.schema rename to latest/schemas/_version.schema index 4e04f077..af941b61 100644 --- a/latest/schemas/version.schema +++ b/latest/schemas/_version.schema @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://ngff.openmicroscopy.org/latest/schemas/version.schema", + "$id": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema", "title": "OME-Zarr Metadata version", "description": "The version of the OME-Zarr Metadata", "type": "string", diff --git a/latest/schemas/bf2raw.schema b/latest/schemas/bf2raw.schema index 62a183ad..896f83eb 100644 --- a/latest/schemas/bf2raw.schema +++ b/latest/schemas/bf2raw.schema @@ -2,40 +2,35 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://ngff.openmicroscopy.org/latest/schemas/bf2raw.schema", "title": "OME-Zarr container produced by bioformats2raw", - "description": "JSON from OME-Zarr zarr.json", + "description": "The zarr.json attributes key", "type": "object", "properties": { - "attributes": { - "description": "The zarr.json attributes key", + "ome": { + "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { - "ome": { - "description": "The versioned OME-Zarr Metadata namespace", - "type": "object", - "properties": { - "bioformats2raw.layout": { - "description": "The top-level identifier metadata added by bioformats2raw", - "type": "number", - "enum": [ - 3 - ] - }, - "version": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" - } - }, - "required": [ - "bioformats2raw.layout", - "version" + "bioformats2raw.layout": { + "description": "The top-level identifier metadata added by bioformats2raw", + "type": "number", + "enum": [ + 3 ] + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" + }, + "schema_url": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ - "ome" + "bioformats2raw.layout", + "version", + "schema_url" ] } }, "required": [ - "attributes" + "ome" ] } diff --git a/latest/schemas/image.schema b/latest/schemas/image.schema index 1729ceb1..c5f05e1f 100644 --- a/latest/schemas/image.schema +++ b/latest/schemas/image.schema @@ -2,38 +2,36 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://ngff.openmicroscopy.org/latest/schemas/image.schema", "title": "OME-Zarr Image", - "description": "JSON from OME-Zarr zarr.json", + "description": "The zarr.json attributes key", "type": "object", "properties": { - "attributes": { - "description": "The zarr.json attributes key", + "ome": { + "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { - "ome": { - "description": "The versioned OME-Zarr Metadata namespace", - "type": "object", - "properties": { - "multiscales": { - "$ref": "#/$defs/multiscales" - }, - "omero": { - "$ref": "#/$defs/omero" - }, - "version": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" - } - }, - "required": [ - "multiscales", - "version" - ] + "multiscales": { + "$ref": "#/$defs/multiscales" + }, + "omero": { + "$ref": "#/$defs/omero" + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" + }, + "schema_url": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ - "ome" + "multiscales", + "version", + "schema_url" ] } }, + "required": [ + "ome" + ], "$defs": { "multiscales": { "description": "The multiscale datasets for this image", @@ -270,8 +268,5 @@ ] } } - }, - "required": [ - "attributes" - ] + } } diff --git a/latest/schemas/label.schema b/latest/schemas/label.schema index 9ff0f932..e2fca2eb 100644 --- a/latest/schemas/label.schema +++ b/latest/schemas/label.schema @@ -2,35 +2,33 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://ngff.openmicroscopy.org/latest/schemas/label.schema", "title": "OME-Zarr labelled image schema", - "description": "JSON from OME-Zarr zarr.json", + "description": "The zarr.json attributes key", "type": "object", "properties": { - "attributes": { - "description": "The zarr.json attributes key", + "ome": { + "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { - "ome": { - "description": "The versioned OME-Zarr Metadata namespace", - "type": "object", - "properties": { - "image-label": { - "$ref": "#/$defs/image-label" - }, - "version": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" - } - }, - "required": [ - "image-label", - "version" - ] + "image-label": { + "$ref": "#/$defs/image-label" + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" + }, + "schema_url": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ - "ome" + "image-label", + "version", + "schema_url" ] } }, + "required": [ + "ome" + ], "$defs": { "image-label": { "type": "object", @@ -93,8 +91,5 @@ } } } - }, - "required": [ - "attributes" - ] + } } diff --git a/latest/schemas/ome.schema b/latest/schemas/ome.schema index 88056e20..900a083d 100644 --- a/latest/schemas/ome.schema +++ b/latest/schemas/ome.schema @@ -2,41 +2,36 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://ngff.openmicroscopy.org/latest/schemas/ome.schema", "title": "OME-Zarr group produced by bioformats2raw to contain OME metadata", - "description": "JSON from OME-Zarr OME/zarr.json linked to an OME-XML file", + "description": "The zarr.json attributes key", "type": "object", "properties": { - "attributes": { - "description": "The zarr.json attributes key", + "ome": { + "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { - "ome": { - "description": "The versioned OME-Zarr Metadata namespace", - "type": "object", - "properties": { - "series": { - "description": "An array of the same length and the same order as the images defined in the OME-XML", - "type": "array", - "items": { - "type": "string" - }, - "minContains": 1 - }, - "version": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" - } + "series": { + "description": "An array of the same length and the same order as the images defined in the OME-XML", + "type": "array", + "items": { + "type": "string" }, - "required": [ - "series", - "version" - ] + "minContains": 1 + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" + }, + "schema_url": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ - "ome" + "series", + "version", + "schema_url" ] } }, "required": [ - "attributes" + "ome" ] } diff --git a/latest/schemas/ome_zarr.schema b/latest/schemas/ome_zarr.schema new file mode 100644 index 00000000..9c1c642a --- /dev/null +++ b/latest/schemas/ome_zarr.schema @@ -0,0 +1,24 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://ngff.openmicroscopy.org/latest/schemas/ome_zarr.schema", + "anyOf": [ + { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/bf2raw.schema" + }, + { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/image.schema" + }, + { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/label.schema" + }, + { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/ome.schema" + }, + { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/plate.schema" + }, + { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/well.schema" + } + ] +} diff --git a/latest/schemas/plate.schema b/latest/schemas/plate.schema index 60ae11a9..6b43c61f 100644 --- a/latest/schemas/plate.schema +++ b/latest/schemas/plate.schema @@ -2,161 +2,156 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://ngff.openmicroscopy.org/0.4/schemas/plate.schema", "title": "OME-Zarr plate schema", - "description": "JSON from OME-Zarr zarr.json", + "description": "The zarr.json attributes key", "type": "object", "properties": { - "attributes": { - "description": "The zarr.json attributes key", + "ome": { + "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { - "ome": { - "description": "The versioned OME-Zarr Metadata namespace", + "plate": { "type": "object", "properties": { - "plate": { - "type": "object", - "properties": { - "acquisitions": { - "description": "The acquisitions for this plate", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "description": "A unique identifier within the context of the plate", - "type": "integer", - "minimum": 0 - }, - "maximumfieldcount": { - "description": "The maximum number of fields of view for the acquisition", - "type": "integer", - "exclusiveMinimum": 0 - }, - "name": { - "description": "The name of the acquisition", - "type": "string" - }, - "description": { - "description": "The description of the acquisition", - "type": "string" - }, - "starttime": { - "description": "The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch", - "type": "integer", - "minimum": 0 - }, - "endtime": { - "description": "The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch", - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "id" - ] + "acquisitions": { + "description": "The acquisitions for this plate", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "description": "A unique identifier within the context of the plate", + "type": "integer", + "minimum": 0 + }, + "maximumfieldcount": { + "description": "The maximum number of fields of view for the acquisition", + "type": "integer", + "exclusiveMinimum": 0 + }, + "name": { + "description": "The name of the acquisition", + "type": "string" + }, + "description": { + "description": "The description of the acquisition", + "type": "string" + }, + "starttime": { + "description": "The start timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch", + "type": "integer", + "minimum": 0 + }, + "endtime": { + "description": "The end timestamp of the acquisition, expressed as epoch time i.e. the number seconds since the Epoch", + "type": "integer", + "minimum": 0 } }, - "field_count": { - "description": "The maximum number of fields per view across all wells", - "type": "integer", - "exclusiveMinimum": 0 + "required": [ + "id" + ] + } + }, + "field_count": { + "description": "The maximum number of fields per view across all wells", + "type": "integer", + "exclusiveMinimum": 0 + }, + "name": { + "description": "The name of the plate", + "type": "string" + }, + "columns": { + "description": "The columns of the plate", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "The column name", + "type": "string", + "pattern": "^[A-Za-z0-9]+$" + } }, - "name": { - "description": "The name of the plate", - "type": "string" + "required": [ + "name" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "rows": { + "description": "The rows of the plate", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "The row name", + "type": "string", + "pattern": "^[A-Za-z0-9]+$" + } }, - "columns": { - "description": "The columns of the plate", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "The column name", - "type": "string", - "pattern": "^[A-Za-z0-9]+$" - } - }, - "required": [ - "name" - ] + "required": [ + "name" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "wells": { + "description": "The wells of the plate", + "type": "array", + "items": { + "type": "object", + "properties": { + "path": { + "description": "The path to the well subgroup", + "type": "string", + "pattern": "^[A-Za-z0-9]+/[A-Za-z0-9]+$" }, - "minItems": 1, - "uniqueItems": true - }, - "rows": { - "description": "The rows of the plate", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "The row name", - "type": "string", - "pattern": "^[A-Za-z0-9]+$" - } - }, - "required": [ - "name" - ] + "rowIndex": { + "description": "The index of the well in the rows list", + "type": "integer", + "minimum": 0 }, - "minItems": 1, - "uniqueItems": true + "columnIndex": { + "description": "The index of the well in the columns list", + "type": "integer", + "minimum": 0 + } }, - "wells": { - "description": "The wells of the plate", - "type": "array", - "items": { - "type": "object", - "properties": { - "path": { - "description": "The path to the well subgroup", - "type": "string", - "pattern": "^[A-Za-z0-9]+/[A-Za-z0-9]+$" - }, - "rowIndex": { - "description": "The index of the well in the rows list", - "type": "integer", - "minimum": 0 - }, - "columnIndex": { - "description": "The index of the well in the columns list", - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "path", - "rowIndex", - "columnIndex" - ] - }, - "minItems": 1, - "uniqueItems": true - } + "required": [ + "path", + "rowIndex", + "columnIndex" + ] }, - "required": [ - "columns", - "rows", - "wells" - ] - }, - "version": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" + "minItems": 1, + "uniqueItems": true } }, "required": [ - "plate", - "version" + "columns", + "rows", + "wells" ] + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" + }, + "schema_url": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ - "ome" + "plate", + "version", + "schema_url" ] } }, "required": [ - "attributes" + "ome" ] } diff --git a/latest/schemas/strict_image.schema b/latest/schemas/strict_image.schema index df755af0..c1084497 100644 --- a/latest/schemas/strict_image.schema +++ b/latest/schemas/strict_image.schema @@ -6,19 +6,15 @@ }, { "properties": { - "attributes": { + "ome": { "properties": { - "ome": { - "properties": { - "multiscales": { - "items": { - "required": [ - "metadata", - "type", - "name" - ] - } - } + "multiscales": { + "items": { + "required": [ + "metadata", + "type", + "name" + ] } } } diff --git a/latest/schemas/strict_label.schema b/latest/schemas/strict_label.schema index 8bcc7d27..6a55b36e 100644 --- a/latest/schemas/strict_label.schema +++ b/latest/schemas/strict_label.schema @@ -6,16 +6,12 @@ }, { "properties": { - "attributes": { + "ome": { "properties": { - "ome": { - "properties": { - "image-label": { - "required": [ - "colors" - ] - } - } + "image-label": { + "required": [ + "colors" + ] } } } diff --git a/latest/schemas/strict_plate.schema b/latest/schemas/strict_plate.schema index 61d2e837..c5228888 100644 --- a/latest/schemas/strict_plate.schema +++ b/latest/schemas/strict_plate.schema @@ -6,26 +6,22 @@ }, { "properties": { - "attributes": { + "ome": { "properties": { - "ome": { + "plate": { "properties": { - "plate": { - "properties": { - "acquisitions": { - "items": { - "required": [ - "name", - "maximumfieldcount" - ] - } - } - }, - "required": [ - "name" - ] + "acquisitions": { + "items": { + "required": [ + "name", + "maximumfieldcount" + ] + } } - } + }, + "required": [ + "name" + ] } } } diff --git a/latest/schemas/well.schema b/latest/schemas/well.schema index d2dddfca..768ee500 100644 --- a/latest/schemas/well.schema +++ b/latest/schemas/well.schema @@ -5,61 +5,56 @@ "description": "JSON from OME-Zarr zarr.json", "type": "object", "properties": { - "attributes": { - "description": "The zarr.json attributes key", + "ome": { + "description": "The versioned OME-Zarr Metadata namespace", "type": "object", "properties": { - "ome": { - "description": "The versioned OME-Zarr Metadata namespace", + "well": { "type": "object", "properties": { - "well": { - "type": "object", - "properties": { - "images": { - "description": "The fields of view for this well", - "type": "array", - "items": { - "type": "object", - "properties": { - "acquisition": { - "description": "A unique identifier within the context of the plate", - "type": "integer" - }, - "path": { - "description": "The path for this field of view subgroup", - "type": "string", - "pattern": "^[A-Za-z0-9]+$" - } - }, - "required": [ - "path" - ] + "images": { + "description": "The fields of view for this well", + "type": "array", + "items": { + "type": "object", + "properties": { + "acquisition": { + "description": "A unique identifier within the context of the plate", + "type": "integer" }, - "minItems": 1, - "uniqueItems": true - } + "path": { + "description": "The path for this field of view subgroup", + "type": "string", + "pattern": "^[A-Za-z0-9]+$" + } + }, + "required": [ + "path" + ] }, - "required": [ - "images" - ] - }, - "version": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/version.schema" + "minItems": 1, + "uniqueItems": true } }, "required": [ - "well", - "version" + "images" ] + }, + "version": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" + }, + "schema_url": { + "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ - "ome" + "well", + "version", + "schema_url" ] } }, "required": [ - "attributes" + "ome" ] } diff --git a/latest/tests/image_suite.json b/latest/tests/image_suite.json index 63925b1a..c9e4d659 100644 --- a/latest/tests/image_suite.json +++ b/latest/tests/image_suite.json @@ -8,42 +8,41 @@ "formerly": "valid/mismatch_axes_units.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "t", - "type": "time", - "unit": "micrometer" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [0.13, 0.13], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "t", + "type": "time", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [0.13, 0.13], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": true @@ -52,40 +51,39 @@ "formerly": "valid/untyped_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "angle" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "angle" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": true @@ -94,37 +92,36 @@ "formerly": "valid/invalid_axis_units.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micron" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [0.13, 0.13], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micron" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [0.13, 0.13], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": true @@ -133,46 +130,45 @@ "formerly": "valid/missing_name.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "datasets": [ - { - "path": "path/to/0", - "coordinateTransformations": [ - { - "type": "scale", - "scale": [1, 1] - } - ] - } - ], - "type": "gaussian", - "metadata": { - "method": "skimage.transform.pyramid_gaussian", - "version": "0.16.1", - "args": ["true", "false"], - "kwargs": { - "multichannel": true - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "datasets": [ + { + "path": "path/to/0", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [1, 1] + } + ] + } + ], + "type": "gaussian", + "metadata": { + "method": "skimage.transform.pyramid_gaussian", + "version": "0.16.1", + "args": ["true", "false"], + "kwargs": { + "multichannel": true + } + }, + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" }, - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ] - } - ] - } + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] + } + ] } }, "valid": true @@ -181,41 +177,40 @@ "formerly": "valid/custom_type_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "angle", - "type": "custom" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "angle", + "type": "custom" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": true @@ -224,37 +219,36 @@ "formerly": "invalid/duplicate_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "x", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "x", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -263,35 +257,34 @@ "formerly": "invalid/missing_space_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "t", - "type": "time" - }, - { - "name": "c", - "type": "channel" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -300,37 +293,36 @@ "formerly": "invalid/invalid_transformation_type.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "translation" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "translation" + } + ] + } + ] + } + ] } }, "valid": false @@ -339,37 +331,36 @@ "formerly": "invalid/missing_scale.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "translation": [1, 1], - "type": "translation" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "translation": [1, 1], + "type": "translation" + } + ] + } + ] + } + ] } }, "valid": false @@ -378,51 +369,50 @@ "formerly": "invalid/too_many_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "angle", - "type": "custom" - }, - { - "name": "t", - "type": "time" - }, - { - "name": "c", - "type": "channel" - }, - { - "name": "z", - "type": "space" - }, - { - "name": "y", - "type": "space" - }, - { - "name": "x", - "type": "space" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1, 1, 1, 1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "angle", + "type": "custom" + }, + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1, 1, 1, 1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -431,53 +421,52 @@ "formerly": "invalid/invalid_channels_color.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ], - "omero": { - "channels": [ - { - "active": true, - "coefficient": 1.0, - "color": 255, - "family": "linear", - "label": "1234", - "window": { - "end": 1765.0, - "max": 2555.0, - "min": 5.0, - "start": 0.0 - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] } ] } + ], + "omero": { + "channels": [ + { + "active": true, + "coefficient": 1.0, + "color": 255, + "family": "linear", + "label": "1234", + "window": { + "end": 1765.0, + "max": 2555.0, + "min": 5.0, + "start": 0.0 + } + } + ] } } }, @@ -487,35 +476,34 @@ "formerly": "invalid/missing_axes_name.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "type": "space", - "unit": "micron" - }, - { - "type": "space", - "unit": "micron" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [0.13, 0.13], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "type": "space", + "unit": "micron" + }, + { + "type": "space", + "unit": "micron" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [0.13, 0.13], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -524,32 +512,31 @@ "formerly": "invalid/invalid_axes_count.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -558,39 +545,38 @@ "formerly": "invalid/one_space_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "t", - "type": "time" - }, - { - "name": "c", - "type": "channel" - }, - { - "name": "x", - "type": "space" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "x", + "type": "space" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -599,37 +585,36 @@ "formerly": "invalid/invalid_path.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": 0, - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": 0, + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -638,43 +623,42 @@ "formerly": "invalid/invalid_multiscales_transformations.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ], - "coordinateTransformations": [ - { - "scale": ["invalid"], - "type": "scale" - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ], + "coordinateTransformations": [ + { + "scale": ["invalid"], + "type": "scale" + } + ] + } + ] } }, "valid": false @@ -683,31 +667,30 @@ "formerly": "invalid/missing_transformations.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0" - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0" + } + ] + } + ] } }, "valid": false @@ -716,27 +699,26 @@ "formerly": "invalid/no_datasets.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [] + } + ] } }, "valid": false @@ -745,26 +727,25 @@ "formerly": "invalid/missing_datasets.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] + } + ] } }, "valid": false @@ -773,25 +754,24 @@ "formerly": "invalid/missing_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -800,37 +780,36 @@ "formerly": "invalid/invalid_axis_type.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "invalid", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "invalid", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -839,41 +818,40 @@ "formerly": "invalid/duplicate_scale.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - }, - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + }, + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -882,26 +860,25 @@ "formerly": "invalid/no_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -910,43 +887,42 @@ "formerly": "invalid/too_many_space_axes.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "X", - "type": "space" - }, - { - "name": "z", - "type": "space" - }, - { - "name": "y", - "type": "space" - }, - { - "name": "x", - "type": "space" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1, 1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "X", + "type": "space" + }, + { + "name": "z", + "type": "space" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1, 1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false @@ -955,11 +931,10 @@ "formerly": "invalid/no_multiscales.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [] } }, "valid": false @@ -968,53 +943,52 @@ "formerly": "invalid/invalid_channels_window.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ], - "omero": { - "channels": [ - { - "active": true, - "coefficient": 1.0, - "color": "ff0000", - "family": "linear", - "label": "1234", - "window": { - "end": "100", - "max": 2555.0, - "min": 5.0, - "start": 0.0 - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] } ] } + ], + "omero": { + "channels": [ + { + "active": true, + "coefficient": 1.0, + "color": "ff0000", + "family": "linear", + "label": "1234", + "window": { + "end": "100", + "max": 2555.0, + "min": 5.0, + "start": 0.0 + } + } + ] } } }, @@ -1024,32 +998,31 @@ "formerly": "invalid/empty_transformations.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [] + } + ] + } + ] } }, "valid": false @@ -1058,36 +1031,35 @@ "formerly": "invalid/missing_path.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] + } + ] + } + ] } }, "valid": false diff --git a/latest/tests/label_suite.json b/latest/tests/label_suite.json index f9d9d051..deeeee55 100644 --- a/latest/tests/label_suite.json +++ b/latest/tests/label_suite.json @@ -7,17 +7,16 @@ { "formerly": "image-label/minimal", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "colors": [ - { - "label-value": 1, - "rgba": [0, 0, 0, 0] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "colors": [ + { + "label-value": 1, + "rgba": [0, 0, 0, 0] + } + ] } } }, @@ -26,22 +25,21 @@ { "formerly": "image-label/minimal_properties", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "colors": [ - { - "label-value": 1, - "rgba": [0, 0, 0, 0] - } - ], - "properties": [ - { - "label-value": 1 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "colors": [ + { + "label-value": 1, + "rgba": [0, 0, 0, 0] + } + ], + "properties": [ + { + "label-value": 1 + } + ] } } }, @@ -50,12 +48,11 @@ { "formerly": "image-label/empty_colors", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "colors": [] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "colors": [] } } }, @@ -64,12 +61,11 @@ { "formerly": "image-label/empty_properties", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "properties": [] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "properties": [] } } }, @@ -78,16 +74,15 @@ { "formerly": "image-label/colors_no_label_value", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "colors": [ - { - "rgba": [0, 0, 0, 0] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "colors": [ + { + "rgba": [0, 0, 0, 0] + } + ] } } }, @@ -96,16 +91,15 @@ { "formerly": "image-label/properties_no_label_value", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "properties": [ - { - "value": "foo" - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "properties": [ + { + "value": "foo" + } + ] } } }, @@ -114,17 +108,16 @@ { "formerly": "image-label/colors_rgba_length", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "colors": [ - { - "label-value": 1, - "rgba": [0, 0, 0] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "colors": [ + { + "label-value": 1, + "rgba": [0, 0, 0] + } + ] } } }, @@ -133,17 +126,16 @@ { "formerly": "image-label/colors_rgba_type", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "colors": [ - { - "label-value": 1, - "rgba": [0, 0, 0, 500] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "colors": [ + { + "label-value": 1, + "rgba": [0, 0, 0, 500] + } + ] } } }, @@ -152,21 +144,20 @@ { "formerly": "image-label/colors_duplicate", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": { - "colors": [ - { - "label-value": 1, - "rgba": [0, 0, 0, 0] - }, - { - "label-value": 1, - "rgba": [0, 0, 0, 0] - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": { + "colors": [ + { + "label-value": 1, + "rgba": [0, 0, 0, 0] + }, + { + "label-value": 1, + "rgba": [0, 0, 0, 0] + } + ] } } }, diff --git a/latest/tests/plate_suite.json b/latest/tests/plate_suite.json index d5aa2abd..3bef1f15 100644 --- a/latest/tests/plate_suite.json +++ b/latest/tests/plate_suite.json @@ -7,28 +7,27 @@ { "formerly": "plate/minimal_no_acquisitions", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -37,33 +36,32 @@ { "formerly": "plate/minimal_acquisitions", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0 - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0 + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -72,23 +70,22 @@ { "formerly": "plate/missing_rows", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -97,24 +94,23 @@ { "formerly": "plate/empty_rows", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -123,31 +119,30 @@ { "formerly": "plate/duplicate_rows", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - }, - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + }, + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -156,23 +151,22 @@ { "formerly": "plate/missing_columns", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -181,24 +175,23 @@ { "formerly": "plate/empty_columns", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -207,31 +200,30 @@ { "formerly": "plate/duplicate_columns", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - }, - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + }, + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -240,21 +232,20 @@ { "formerly": "plate/missing_wells", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ] } } }, @@ -263,22 +254,21 @@ { "formerly": "plate/empty_wells", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": {} - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": {} } } }, @@ -287,36 +277,35 @@ { "formerly": "plate/duplicate_rows", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - }, - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - }, - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + }, + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + }, + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -325,28 +314,27 @@ { "formerly": "plate/missing_column_name", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "concentration": 10 - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "concentration": 10 + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -355,28 +343,27 @@ { "formerly": "plate/missing_row_name", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "concentration": 10 - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "concentration": 10 + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -385,27 +372,26 @@ { "formerly": "plate/missing_well_path", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -414,27 +400,26 @@ { "formerly": "plate/missing_well_rowIndex", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "columnIndex": 0 + } + ] } } }, @@ -443,27 +428,26 @@ { "formerly": "plate/missing_well_columnIndex", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0 + } + ] } } }, @@ -472,27 +456,26 @@ { "formerly": "plate/well_1group", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A1", - "rowIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A1", + "rowIndex": 0 + } + ] } } }, @@ -501,27 +484,26 @@ { "formerly": "plate/well_3groups", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "plate/A/1", - "rowIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "plate/A/1", + "rowIndex": 0 + } + ] } } }, @@ -530,28 +512,27 @@ { "formerly": "plate/non_alphanumeric_column", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A-1" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A-1/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A-1" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A-1/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -560,28 +541,27 @@ { "formerly": "plate/non_alphanumeric_row", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "A1" - } - ], - "wells": [ - { - "path": "A/A1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "A1" + } + ], + "wells": [ + { + "path": "A/A1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -590,33 +570,32 @@ { "formerly": "plate/missing_acquisition_id", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "maximumfieldcount": 1 - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "maximumfieldcount": 1 + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -625,33 +604,32 @@ { "formerly": "plate/non_integer_acquisition_id", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": "0" - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": "0" + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -660,33 +638,32 @@ { "formerly": "plate/negative_acquisition_id", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": -1 - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": -1 + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -695,34 +672,33 @@ { "formerly": "plate/non_integer_acquisition_maximumfieldcount", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "maximumfieldcount": "0" - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "maximumfieldcount": "0" + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -731,34 +707,33 @@ { "formerly": "plate/acquisition_zero_maximumfieldcount", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "maximumfieldcount": 0 - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "maximumfieldcount": 0 + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -767,34 +742,33 @@ { "formerly": "plate/acquisition_noninteger_starttime", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "starttime": "2022-05-13T13:48:06+00:00" - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "starttime": "2022-05-13T13:48:06+00:00" + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -803,34 +777,33 @@ { "formerly": "plate/acquisition_negative_starttime", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "starttime": -1 - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "starttime": -1 + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -839,34 +812,33 @@ { "formerly": "plate/acquisition_noninteger_endtime", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "endtime": "2022-05-13T13:48:06+00:00" - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "endtime": "2022-05-13T13:48:06+00:00" + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -875,34 +847,33 @@ { "formerly": "plate/negative_endtime", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "endtime": -1 - } - ], - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "endtime": -1 + } + ], + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -911,29 +882,28 @@ { "formerly": "plate/zero_field_count", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "field_count": 0, - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "field_count": 0, + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, diff --git a/latest/tests/strict_image_suite.json b/latest/tests/strict_image_suite.json index ee4336e6..99a6db0e 100644 --- a/latest/tests/strict_image_suite.json +++ b/latest/tests/strict_image_suite.json @@ -8,86 +8,85 @@ "formerly": "valid_strict/multiscales_example.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "name": "example", - "axes": [ - { - "name": "t", - "type": "time", - "unit": "millisecond" - }, - { - "name": "c", - "type": "channel" - }, - { - "name": "z", - "type": "space", - "unit": "micrometer" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "type": "scale", - "scale": [1.0, 1.0, 0.5, 0.5, 0.5] - } - ] - }, - { - "path": "1", - "coordinateTransformations": [ - { - "type": "scale", - "scale": [1.0, 1.0, 1.0, 1.0, 1.0] - } - ] - }, - { - "path": "2", - "coordinateTransformations": [ - { - "type": "scale", - "scale": [1.0, 1.0, 2.0, 2.0, 2.0] - } - ] - } - ], - "coordinateTransformations": [ - { - "type": "scale", - "scale": [0.1, 1.0, 1.0, 1.0, 1.0] - } - ], - "type": "gaussian", - "metadata": { - "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given", - "method": "skimage.transform.pyramid_gaussian", - "version": "0.16.1", - "args": "[true]", - "kwargs": { - "multichannel": true - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "name": "example", + "axes": [ + { + "name": "t", + "type": "time", + "unit": "millisecond" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [1.0, 1.0, 0.5, 0.5, 0.5] + } + ] + }, + { + "path": "1", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [1.0, 1.0, 1.0, 1.0, 1.0] + } + ] + }, + { + "path": "2", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [1.0, 1.0, 2.0, 2.0, 2.0] + } + ] + } + ], + "coordinateTransformations": [ + { + "type": "scale", + "scale": [0.1, 1.0, 1.0, 1.0, 1.0] + } + ], + "type": "gaussian", + "metadata": { + "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given", + "method": "skimage.transform.pyramid_gaussian", + "version": "0.16.1", + "args": "[true]", + "kwargs": { + "multichannel": true } } - ] - } + } + ] } }, "valid": true @@ -96,48 +95,47 @@ "formerly": "valid_strict/multiscales_transformations.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ], - "coordinateTransformations": [ - { - "scale": [10, 10], - "type": "scale" - } - ], - "name": "image_with_coordinateTransformations", - "type": "foo", - "metadata": { - "key": "value" + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] } + ], + "coordinateTransformations": [ + { + "scale": [10, 10], + "type": "scale" + } + ], + "name": "image_with_coordinateTransformations", + "type": "foo", + "metadata": { + "key": "value" } - ] - } + } + ] } }, "valid": true @@ -146,50 +144,49 @@ "formerly": "valid_strict/image_metadata.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "@id": "top", - "@type": "ngff:Image", - "multiscales": [ - { - "@id": "inner", - "name": "example", - "datasets": [ - { - "path": "path/to/0", - "coordinateTransformations": [ - { - "type": "scale", - "scale": [1, 1] - } - ] - } - ], - "type": "gaussian", - "metadata": { - "method": "skimage.transform.pyramid_gaussian", - "version": "0.16.1", - "args": ["true", "false"], - "kwargs": { - "multichannel": true - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "@id": "top", + "@type": "ngff:Image", + "multiscales": [ + { + "@id": "inner", + "name": "example", + "datasets": [ + { + "path": "path/to/0", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [1, 1] + } + ] + } + ], + "type": "gaussian", + "metadata": { + "method": "skimage.transform.pyramid_gaussian", + "version": "0.16.1", + "args": ["true", "false"], + "kwargs": { + "multichannel": true + } + }, + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" }, - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ] - } - ] - } + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] + } + ] } }, "valid": true @@ -198,42 +195,41 @@ "formerly": "valid_strict/image.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1], - "type": "scale" - } - ] - } - ], - "name": "simple_image", - "type": "foo", - "metadata": { - "key": "value" + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ], + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1], + "type": "scale" + } + ] } + ], + "name": "simple_image", + "type": "foo", + "metadata": { + "key": "value" } - ] - } + } + ] } }, "valid": true @@ -242,106 +238,105 @@ "formerly": "valid_strict/image_omero.json", "description": "TBD", "data": { - "attributes": { - "ome": { - "version": "0.5", - "multiscales": [ - { - "axes": [ - { - "name": "t", - "type": "time" - }, - { - "name": "c", - "type": "channel" - }, - { - "name": "z", - "type": "space", - "unit": "micrometer" - }, - { - "name": "y", - "type": "space", - "unit": "micrometer" - }, - { - "name": "x", - "type": "space", - "unit": "micrometer" - } - ], - "datasets": [ - { - "path": "0", - "coordinateTransformations": [ - { - "scale": [1, 1, 0.5, 0.13, 0.13], - "type": "scale" - }, - { - "translation": [0, 9, 0.5, 25.74, 21.58], - "type": "translation" - } - ] - }, - { - "path": "1", - "coordinateTransformations": [ - { - "scale": [1, 1, 1, 0.26, 0.26], - "type": "scale" - } - ] - } - ], - "name": "image_with_omero_metadata", - "type": "foo", - "metadata": { - "key": "value" + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "multiscales": [ + { + "axes": [ + { + "name": "t", + "type": "time" + }, + { + "name": "c", + "type": "channel" + }, + { + "name": "z", + "type": "space", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" } - } - ], - "omero": { - "channels": [ + ], + "datasets": [ { - "active": true, - "coefficient": 1.0, - "color": "00FF00", - "family": "linear", - "inverted": false, - "label": "FITC", - "window": { - "end": 813.0, - "max": 870.0, - "min": 102.0, - "start": 82.0 - } + "path": "0", + "coordinateTransformations": [ + { + "scale": [1, 1, 0.5, 0.13, 0.13], + "type": "scale" + }, + { + "translation": [0, 9, 0.5, 25.74, 21.58], + "type": "translation" + } + ] }, { - "active": true, - "coefficient": 1.0, - "color": "FF0000", - "family": "linear", - "inverted": false, - "label": "RD-TR-PE", - "window": { - "end": 815.0, - "max": 441.0, - "min": 129.0, - "start": 78.0 - } + "path": "1", + "coordinateTransformations": [ + { + "scale": [1, 1, 1, 0.26, 0.26], + "type": "scale" + } + ] } ], - "id": 1, - "rdefs": { - "defaultT": 0, - "defaultZ": 2, - "model": "color" - }, - "version": "0.5-dev" + "name": "image_with_omero_metadata", + "type": "foo", + "metadata": { + "key": "value" + } } + ], + "omero": { + "channels": [ + { + "active": true, + "coefficient": 1.0, + "color": "00FF00", + "family": "linear", + "inverted": false, + "label": "FITC", + "window": { + "end": 813.0, + "max": 870.0, + "min": 102.0, + "start": 82.0 + } + }, + { + "active": true, + "coefficient": 1.0, + "color": "FF0000", + "family": "linear", + "inverted": false, + "label": "RD-TR-PE", + "window": { + "end": 815.0, + "max": 441.0, + "min": 129.0, + "start": 78.0 + } + } + ], + "id": 1, + "rdefs": { + "defaultT": 0, + "defaultZ": 2, + "model": "color" + }, + "version": "0.5-dev" } } }, diff --git a/latest/tests/strict_label_suite.json b/latest/tests/strict_label_suite.json index 32c732ed..f0156100 100644 --- a/latest/tests/strict_label_suite.json +++ b/latest/tests/strict_label_suite.json @@ -7,11 +7,10 @@ { "formerly": "image-label/no_colors", "data": { - "attributes": { - "ome": { - "version": "0.5", - "image-label": {} - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "image-label": {} } }, "valid": false diff --git a/latest/tests/strict_plate_suite.json b/latest/tests/strict_plate_suite.json index 91d1e166..ad372e41 100644 --- a/latest/tests/strict_plate_suite.json +++ b/latest/tests/strict_plate_suite.json @@ -7,29 +7,28 @@ { "formerly": "plate/strict_no_acquisitions", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "name": "test plate", - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "name": "test plate", + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -38,28 +37,27 @@ { "formerly": "plate/missing_name", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "columns": [ - { - "name": "A" - } - ], - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "columns": [ + { + "name": "A" + } + ], + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -68,36 +66,35 @@ { "formerly": "plate/strict_acquisitions", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "name": "0", - "maximumfieldcount": 1 - } - ], - "columns": [ - { - "name": "A" - } - ], - "name": "test plate", - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "name": "0", + "maximumfieldcount": 1 + } + ], + "columns": [ + { + "name": "A" + } + ], + "name": "test plate", + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -106,35 +103,34 @@ { "formerly": "plate/missing_acquisition_name", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "maximumfieldcount": 1 - } - ], - "columns": [ - { - "name": "A" - } - ], - "name": "test plate", - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "maximumfieldcount": 1 + } + ], + "columns": [ + { + "name": "A" + } + ], + "name": "test plate", + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, @@ -143,35 +139,34 @@ { "formerly": "plate/missing_acquisition_maximumfieldcount", "data": { - "attributes": { - "ome": { - "version": "0.5", - "plate": { - "acquisitions": [ - { - "id": 0, - "name": "0" - } - ], - "columns": [ - { - "name": "A" - } - ], - "name": "test plate", - "rows": [ - { - "name": "1" - } - ], - "wells": [ - { - "path": "A/1", - "rowIndex": 0, - "columnIndex": 0 - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "plate": { + "acquisitions": [ + { + "id": 0, + "name": "0" + } + ], + "columns": [ + { + "name": "A" + } + ], + "name": "test plate", + "rows": [ + { + "name": "1" + } + ], + "wells": [ + { + "path": "A/1", + "rowIndex": 0, + "columnIndex": 0 + } + ] } } }, diff --git a/latest/tests/strict_well_suite.json b/latest/tests/strict_well_suite.json index 3b11d4ca..0eacf7ec 100644 --- a/latest/tests/strict_well_suite.json +++ b/latest/tests/strict_well_suite.json @@ -7,16 +7,15 @@ { "formerly": "well/strict_no_acquisitions", "data": { - "attributes": { - "ome": { - "version": "0.5", - "well": { - "images": [ - { - "path": "0" - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "well": { + "images": [ + { + "path": "0" + } + ] } } }, @@ -25,17 +24,16 @@ { "formerly": "plate/strict_acquisitions", "data": { - "attributes": { - "ome": { - "version": "0.5", - "well": { - "images": [ - { - "acquisition": 0, - "path": "0" - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "well": { + "images": [ + { + "acquisition": 0, + "path": "0" + } + ] } } }, diff --git a/latest/tests/test_validation.py b/latest/tests/test_validation.py index 53d4adcc..615fc26f 100644 --- a/latest/tests/test_validation.py +++ b/latest/tests/test_validation.py @@ -16,6 +16,10 @@ schema = json.load(f) schema_store[schema["$id"]] = schema +GENERIC_SCHEMA = schema_store[ + "https://ngff.openmicroscopy.org/latest/schemas/ome_zarr.schema" +] + print(schema_store) @@ -32,6 +36,10 @@ def validate(self, validator) -> None: else: validator.validate(self.data) + def maybe_validate(self, validator) -> None: + if self.valid: + validator.validate(self.data) + def pytest_generate_tests(metafunc): """ @@ -79,6 +87,7 @@ def pytest_generate_tests(metafunc): line for line in f if not line.lstrip().startswith("//") ) data = json.loads(data) + data = data["attributes"] # Only validate the attributes object ids.append("example_" + str(filename).split("/")[-1][0:-5]) suites.append(Suite(schema, data, True)) # Assume true @@ -96,6 +105,12 @@ def test_run(suite): suite.validate(validator) +def test_generic_run(suite): + resolver = RefResolver.from_schema(GENERIC_SCHEMA, store=schema_store) + validator = Validator(GENERIC_SCHEMA, resolver=resolver) + suite.maybe_validate(validator) + + def test_example_configs(): """ Test that all example folders have a config file diff --git a/latest/tests/well_suite.json b/latest/tests/well_suite.json index 18ef453f..c5996578 100644 --- a/latest/tests/well_suite.json +++ b/latest/tests/well_suite.json @@ -7,16 +7,15 @@ { "formerly": "well/minimal_no_acquisition", "data": { - "attributes": { - "ome": { - "version": "0.5", - "well": { - "images": [ - { - "path": "0" - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "well": { + "images": [ + { + "path": "0" + } + ] } } }, @@ -25,17 +24,16 @@ { "formerly": "well/minimal_acquisitions", "data": { - "attributes": { - "ome": { - "version": "0.5", - "well": { - "images": [ - { - "acquisition": 1, - "path": "0" - } - ] - } + "ome": { + "version": "0.5", + "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", + "well": { + "images": [ + { + "acquisition": 1, + "path": "0" + } + ] } } }, From 4df0940e4738c3f337a037ecdfb543328e5222e8 Mon Sep 17 00:00:00 2001 From: Norman Rzepka Date: Fri, 27 Sep 2024 12:03:11 +0200 Subject: [PATCH 7/7] rm schema_url --- latest/examples/bf2raw/image.json | 1 - latest/examples/bf2raw/plate.json | 1 - .../label_strict/colors_properties.json | 1 - .../multiscales_example.json | 1 - .../multiscales_transformations.json | 1 - latest/examples/ome/series-2.json | 1 - .../examples/plate_strict/plate_2wells.json | 1 - .../examples/plate_strict/plate_6wells.json | 1 - latest/examples/well_strict/well_2fields.json | 1 - latest/examples/well_strict/well_4fields.json | 1 - latest/index.bs | 2 -- latest/schemas/bf2raw.schema | 6 +--- latest/schemas/image.schema | 6 +--- latest/schemas/label.schema | 6 +--- latest/schemas/ome.schema | 6 +--- latest/schemas/plate.schema | 6 +--- latest/schemas/well.schema | 6 +--- latest/tests/image_suite.json | 28 ----------------- latest/tests/label_suite.json | 9 ------ latest/tests/plate_suite.json | 30 ------------------- latest/tests/strict_image_suite.json | 5 ---- latest/tests/strict_label_suite.json | 1 - latest/tests/strict_plate_suite.json | 5 ---- latest/tests/strict_well_suite.json | 2 -- latest/tests/well_suite.json | 2 -- 25 files changed, 6 insertions(+), 124 deletions(-) diff --git a/latest/examples/bf2raw/image.json b/latest/examples/bf2raw/image.json index 564dec83..8fda1fd2 100644 --- a/latest/examples/bf2raw/image.json +++ b/latest/examples/bf2raw/image.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "bioformats2raw.layout": 3 } } diff --git a/latest/examples/bf2raw/plate.json b/latest/examples/bf2raw/plate.json index 54a5e99b..ef1ac0a7 100644 --- a/latest/examples/bf2raw/plate.json +++ b/latest/examples/bf2raw/plate.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "bioformats2raw.layout": 3, "plate": { "columns": [ diff --git a/latest/examples/label_strict/colors_properties.json b/latest/examples/label_strict/colors_properties.json index 9bff14a5..fa1f4cd6 100644 --- a/latest/examples/label_strict/colors_properties.json +++ b/latest/examples/label_strict/colors_properties.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { diff --git a/latest/examples/multiscales_strict/multiscales_example.json b/latest/examples/multiscales_strict/multiscales_example.json index e10b93c8..4b2c718a 100644 --- a/latest/examples/multiscales_strict/multiscales_example.json +++ b/latest/examples/multiscales_strict/multiscales_example.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "name": "example", diff --git a/latest/examples/multiscales_strict/multiscales_transformations.json b/latest/examples/multiscales_strict/multiscales_transformations.json index 7569ddb3..e4eb742a 100644 --- a/latest/examples/multiscales_strict/multiscales_transformations.json +++ b/latest/examples/multiscales_strict/multiscales_transformations.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ diff --git a/latest/examples/ome/series-2.json b/latest/examples/ome/series-2.json index f7c7ce00..ad4c25e8 100644 --- a/latest/examples/ome/series-2.json +++ b/latest/examples/ome/series-2.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "series": ["0", "1"] } } diff --git a/latest/examples/plate_strict/plate_2wells.json b/latest/examples/plate_strict/plate_2wells.json index 09214c10..e8961001 100644 --- a/latest/examples/plate_strict/plate_2wells.json +++ b/latest/examples/plate_strict/plate_2wells.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { diff --git a/latest/examples/plate_strict/plate_6wells.json b/latest/examples/plate_strict/plate_6wells.json index 45cb725c..bf1b8afe 100644 --- a/latest/examples/plate_strict/plate_6wells.json +++ b/latest/examples/plate_strict/plate_6wells.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { diff --git a/latest/examples/well_strict/well_2fields.json b/latest/examples/well_strict/well_2fields.json index 0c3a22df..987fe5e4 100644 --- a/latest/examples/well_strict/well_2fields.json +++ b/latest/examples/well_strict/well_2fields.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ { diff --git a/latest/examples/well_strict/well_4fields.json b/latest/examples/well_strict/well_4fields.json index 687deb9e..581ec66b 100644 --- a/latest/examples/well_strict/well_4fields.json +++ b/latest/examples/well_strict/well_4fields.json @@ -4,7 +4,6 @@ "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ { diff --git a/latest/index.bs b/latest/index.bs index bb288311..88006d27 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -164,7 +164,6 @@ The OME-Zarr Metadata is stored in the various `zarr.json` files throughout the hierarchy. In this file, the metadata is stored under the namespaced key `ome` in `attributes`. The version of the OME-Zarr Metadata is denoted as a string in the `version` attribute within the `ome` namespace. -A URL to the JSON Schema of the OME-Zarr Metadata is denoted as a string in the `schema_url` attribute within the `ome` namespace. The OME-Zarr Metadata version MUST be consistent within a hierarchy. @@ -174,7 +173,6 @@ The OME-Zarr Metadata version MUST be consistent within a hierarchy. "attributes": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", ... } } diff --git a/latest/schemas/bf2raw.schema b/latest/schemas/bf2raw.schema index 896f83eb..db9e05e2 100644 --- a/latest/schemas/bf2raw.schema +++ b/latest/schemas/bf2raw.schema @@ -18,15 +18,11 @@ }, "version": { "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" - }, - "schema_url": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ "bioformats2raw.layout", - "version", - "schema_url" + "version" ] } }, diff --git a/latest/schemas/image.schema b/latest/schemas/image.schema index c5f05e1f..4f141c59 100644 --- a/latest/schemas/image.schema +++ b/latest/schemas/image.schema @@ -17,15 +17,11 @@ }, "version": { "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" - }, - "schema_url": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ "multiscales", - "version", - "schema_url" + "version" ] } }, diff --git a/latest/schemas/label.schema b/latest/schemas/label.schema index e2fca2eb..6c618210 100644 --- a/latest/schemas/label.schema +++ b/latest/schemas/label.schema @@ -14,15 +14,11 @@ }, "version": { "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" - }, - "schema_url": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ "image-label", - "version", - "schema_url" + "version" ] } }, diff --git a/latest/schemas/ome.schema b/latest/schemas/ome.schema index 900a083d..7baa6dec 100644 --- a/latest/schemas/ome.schema +++ b/latest/schemas/ome.schema @@ -19,15 +19,11 @@ }, "version": { "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" - }, - "schema_url": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ "series", - "version", - "schema_url" + "version" ] } }, diff --git a/latest/schemas/plate.schema b/latest/schemas/plate.schema index 6b43c61f..9707ac06 100644 --- a/latest/schemas/plate.schema +++ b/latest/schemas/plate.schema @@ -139,15 +139,11 @@ }, "version": { "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" - }, - "schema_url": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ "plate", - "version", - "schema_url" + "version" ] } }, diff --git a/latest/schemas/well.schema b/latest/schemas/well.schema index 768ee500..a04a4834 100644 --- a/latest/schemas/well.schema +++ b/latest/schemas/well.schema @@ -42,15 +42,11 @@ }, "version": { "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_version.schema" - }, - "schema_url": { - "$ref": "https://ngff.openmicroscopy.org/latest/schemas/_schema_url.schema" } }, "required": [ "well", - "version", - "schema_url" + "version" ] } }, diff --git a/latest/tests/image_suite.json b/latest/tests/image_suite.json index c9e4d659..df359ce4 100644 --- a/latest/tests/image_suite.json +++ b/latest/tests/image_suite.json @@ -10,7 +10,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -53,7 +52,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -94,7 +92,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -132,7 +129,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "datasets": [ @@ -179,7 +175,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -221,7 +216,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -259,7 +253,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -295,7 +288,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -333,7 +325,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -371,7 +362,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -423,7 +413,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -478,7 +467,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -514,7 +502,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -547,7 +534,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -587,7 +573,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -625,7 +610,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -669,7 +653,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -701,7 +684,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -729,7 +711,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -756,7 +737,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "datasets": [ @@ -782,7 +762,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -820,7 +799,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -862,7 +840,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [], @@ -889,7 +866,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -933,7 +909,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [] } }, @@ -945,7 +920,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -1000,7 +974,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -1033,7 +1006,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ diff --git a/latest/tests/label_suite.json b/latest/tests/label_suite.json index deeeee55..66a2d35d 100644 --- a/latest/tests/label_suite.json +++ b/latest/tests/label_suite.json @@ -9,7 +9,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { @@ -27,7 +26,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { @@ -50,7 +48,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [] } @@ -63,7 +60,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "properties": [] } @@ -76,7 +72,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { @@ -93,7 +88,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "properties": [ { @@ -110,7 +104,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { @@ -128,7 +121,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { @@ -146,7 +138,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": { "colors": [ { diff --git a/latest/tests/plate_suite.json b/latest/tests/plate_suite.json index 3bef1f15..3db70de7 100644 --- a/latest/tests/plate_suite.json +++ b/latest/tests/plate_suite.json @@ -9,7 +9,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -38,7 +37,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -72,7 +70,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -96,7 +93,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -121,7 +117,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -153,7 +148,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "rows": [ { @@ -177,7 +171,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [], "rows": [ @@ -202,7 +195,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -234,7 +226,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -256,7 +247,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -279,7 +269,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -316,7 +305,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -345,7 +333,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -374,7 +361,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -402,7 +388,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -430,7 +415,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -458,7 +442,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -486,7 +469,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -514,7 +496,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -543,7 +524,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -572,7 +552,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -606,7 +585,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -640,7 +618,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -674,7 +651,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -709,7 +685,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -744,7 +719,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -779,7 +753,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -814,7 +787,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -849,7 +821,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -884,7 +855,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { diff --git a/latest/tests/strict_image_suite.json b/latest/tests/strict_image_suite.json index 99a6db0e..b52fd2d3 100644 --- a/latest/tests/strict_image_suite.json +++ b/latest/tests/strict_image_suite.json @@ -10,7 +10,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "name": "example", @@ -97,7 +96,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -146,7 +144,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "@id": "top", "@type": "ngff:Image", "multiscales": [ @@ -197,7 +194,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ @@ -240,7 +236,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "multiscales": [ { "axes": [ diff --git a/latest/tests/strict_label_suite.json b/latest/tests/strict_label_suite.json index f0156100..1b3535c2 100644 --- a/latest/tests/strict_label_suite.json +++ b/latest/tests/strict_label_suite.json @@ -9,7 +9,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "image-label": {} } }, diff --git a/latest/tests/strict_plate_suite.json b/latest/tests/strict_plate_suite.json index ad372e41..7cea0747 100644 --- a/latest/tests/strict_plate_suite.json +++ b/latest/tests/strict_plate_suite.json @@ -9,7 +9,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -39,7 +38,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "columns": [ { @@ -68,7 +66,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -105,7 +102,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { @@ -141,7 +137,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "plate": { "acquisitions": [ { diff --git a/latest/tests/strict_well_suite.json b/latest/tests/strict_well_suite.json index 0eacf7ec..f56b6c24 100644 --- a/latest/tests/strict_well_suite.json +++ b/latest/tests/strict_well_suite.json @@ -9,7 +9,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ { @@ -26,7 +25,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ { diff --git a/latest/tests/well_suite.json b/latest/tests/well_suite.json index c5996578..7fbf8ca2 100644 --- a/latest/tests/well_suite.json +++ b/latest/tests/well_suite.json @@ -9,7 +9,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ { @@ -26,7 +25,6 @@ "data": { "ome": { "version": "0.5", - "schema_url": "https://ngff.openmicroscopy.org/0.5/schemas/ome_zarr.schema", "well": { "images": [ {