1. Create the files
(the only file names that matters are dataset.json)
For a single dataset:
Create a folder with 5 files:
- 
card-cover.png (for display on the homepage) 
For a group of datasets, ie a Megaset
Create a folder with 1 file and one folder per dataset. Each folder should have the same 5 files listed above.
- Megaset Folder/
- 
- dataset.json
- dataset-1/
- 
- 
dataset.json
- 
… the other 4 files listed above 
 
- 
- dataset-2/
- 
- 
dataset.json
- 
… the other 4 files listed above 
 
- 
 
Refer to Megaset for more information.
2. Make a PR to this repo with your dataset folder.
Full Documentation
3D Viewer Settings
Settings for the 3D viewer
| Type | Description | Required | |
|---|---|---|---|
| maskChannelName | 
 | Name of channel to use as mask, applied to all other enabled channels. Generally this would be a segmentation channel or a channel with binary data. If omitted, then no masking will be available. | No | 
| groups | 
 | Collection of named channel groupings. If omitted, then there will be a single group called "Channels". | No | 
Additional properties are not allowed.
- 
JSON schema: images.schema.json
images.maskChannelName
Name of channel to use as mask, applied to all other enabled channels. Generally this would be a segmentation channel or a channel with binary data. If omitted, then no masking will be available.
- 
Type: string
- 
Required: No 
images.groups
Collection of named channel groupings. If omitted, then there will be a single group called "Channels".
- 
Type: object[]
- 
Required: No 
Cell Feature Dataset Handoff Specification
all the files needed for handoff
| Type | Description | Required | |
|---|---|---|---|
| megaset | File that describes a group of datasets (ie a 'Megaset'). Should be at the highest level, and the datasets nested in their own folders. This file needs to be named  | No | |
| dataset | File containing the data needed to process a dataset. If single dataset, should be at the highest folder level. If one of many in a group of datasets, should be in a subfolder pointed to by the megaset JSON  | ✓ Yes | |
| feature-defs | 
 | File that describes the measured feature definitions. Is an array of feature definitions. | ✓ Yes | 
| measured-features | Input file containing measured features and file info for each image. | ✓ Yes | |
| images | Settings for the 3D viewer | No | 
Additional properties are not allowed.
- 
JSON schema: input-dataset.schema.json
Cell Feature Dataset Handoff Specification.megaset
File that describes a group of datasets (ie a 'Megaset'). Should be at the highest level, and the datasets nested in their own folders. This file needs to be named dataset.json
- 
Type: input-megaset
- 
Required: No 
Cell Feature Dataset Handoff Specification.dataset
File containing the data needed to process a dataset. If single dataset, should be at the highest folder level. If one of many in a group of datasets, should be in a subfolder pointed to by the megaset JSON datasets array. Should be named dataset.json
- 
Type: input-dataset-info
- 
Required: ✓ Yes 
Cell Feature Dataset Handoff Specification.feature-defs
File that describes the measured feature definitions. Is an array of feature definitions.
- 
Type: feature-def[]
- 
Required: ✓ Yes 
Cell Feature Dataset Handoff Specification.measured-features
Input file containing measured features and file info for each image.
- 
Type: array-items/input-measured-features[]
- 
Required: ✓ Yes 
Cell Feature Dataset Handoff Specification.images
Settings for the 3D viewer
- 
Type: images
- 
Required: No 
Dataset Link
Schema for each single dataset
| Type | Description | Required | |
|---|---|---|---|
| date | 
 | Date of the dataset release | ✓ Yes | 
| title | 
 | ✓ Yes | |
| link | 
 | ✓ Yes | 
Additional properties are not allowed.
- 
JSON schema: array-items/dataset-link.schema.json
array-items/dataset-link.date
Date of the dataset release
- 
Type: string
- 
Required: ✓ Yes 
array-items/dataset-link.title
- 
Type: string
- 
Required: ✓ Yes 
array-items/dataset-link.link
- 
Type: string
- 
Required: ✓ Yes 
Discrete feature option
Schema for each category in a discrete feature
| Type | Description | Required | |
|---|---|---|---|
| color | 
 | Hex string | ✓ Yes | 
| name | 
 | Display name for the option. Doesn’t have to be unique, but if it’s not unique,  | ✓ Yes | 
| key | 
 | unique key for the option. | No | 
Additional properties are not allowed.
- 
JSON schema: array-items/discrete-feature-option.schema.json
array-items/discrete-feature-option.color
Hex string
- 
Type: string
- 
Required: ✓ Yes 
array-items/discrete-feature-option.name
Display name for the option. Doesn’t have to be unique, but if it’s not unique, key is required.
- 
Type: string
- 
Required: ✓ Yes 
array-items/discrete-feature-option.key
unique key for the option.
- 
Type: string
- 
Required: No 
Discrete feature options
Mapping of numeral key in the analysis to category names. There should be one key value pair for each category of a discrete feature. For example, if the feature is a boolean, and the numeral data is either 0 or 1, there should be two option mappings.
Mapping interface: {  [ key: ^\d{1,}$ ]: array-items/discrete-feature-option }
| Type | Description | Required | |
|---|---|---|---|
| color | 
 | Hex string | ✓ Yes | 
| name | 
 | Display name for the option. Doesn’t have to be unique, but if it’s not unique,  | ✓ Yes | 
| key | 
 | unique key for the option. | No | 
Additional properties are allowed.
- 
JSON schema: discrete-feature-options.schema.json
Feature data order
Ordered array of feature keys for packing and unpacking data
- 
Type: string
- 
JSON schema: definitions.schema.json
Feature Definition
Definition of a measured features in the dataset. Feature definitions file is an array of these objects.
| Type | Description | Required | |
|---|---|---|---|
| displayName | 
 | Human readable name | ✓ Yes | 
| description | 
 | Description of how the data was collected/measured | No | 
| tooltip | 
 | Shorter version of description | No | 
| unit | 
 | unit of measurement | ✓ Yes | 
| key | 
 | Id of the feature | ✓ Yes | 
| discrete | 
 | Whether it’s a continuous measurement or not | ✓ Yes | 
| options | Mapping of numeral key in the analysis to category names. There should be one key value pair for each category of a discrete feature. For example, if the feature is a boolean, and the numeral data is either  | No | 
Additional properties are not allowed.
- 
JSON schema: feature-def.schema.json
feature-def.displayName
Human readable name
- 
Type: string
- 
Required: ✓ Yes 
feature-def.description
Description of how the data was collected/measured
- 
Type: string
- 
Required: No 
feature-def.tooltip
Shorter version of description
- 
Type: string
- 
Required: No 
feature-def.unit
unit of measurement
- 
Type: string
- 
Required: ✓ Yes 
feature-def.key
Id of the feature
- 
Type: string
- 
Required: ✓ Yes 
feature-def.discrete
Whether it’s a continuous measurement or not
- 
Type: boolean
- 
Required: ✓ Yes 
feature-def.options
Mapping of numeral key in the analysis to category names. There should be one key value pair for each category of a discrete feature. For example, if the feature is a boolean, and the numeral data is either 0 or 1, there should be two option mappings.
- 
Type: discrete-feature-options
- 
Required: No 
Feature display order
Ordered array of feature keys for display on front end
- 
Type: string
- 
JSON schema: definitions.schema.json
Input dataset info dataset.json
File containing the data needed to process a dataset. If single dataset, should be at the highest folder level. If one of many in a group of datasets, should be in a subfolder pointed to by the megaset JSON datasets array. Should be named dataset.json
| Type | Description | Required | |
|---|---|---|---|
| title | 
 | Display name of dataset. | ✓ Yes | 
| name | 
 | Name of the group (no version number). Lowercase with underscores. | ✓ Yes | 
| version | 
 | Version year and number | ✓ Yes | 
| description | 
 | Description of the dataset | ✓ Yes | 
| image | 
 | Relative path to the dataset card image file, including filename. | No | 
| link | 
 | Link to website displaying the dataset | No | 
| userData | Optional display data | No | |
| production | 
 | Whether this dataset should be shown in production | No | 
| featuresDataPath | 
 | Relative path to the per cell data json, including filename. | ✓ Yes | 
| featureDefsPath | 
 | Relative path to the feature definition file, including filename. | No | 
| viewerSettingsPath | 
 | Relative path to image per-channel settings file for the 3d viewer, including filename. | No | 
| albumPath | 
 | Relative path to the album file. | No | 
| thumbnailRoot | 
 | Root url for thumbnail images | ✓ Yes | 
| downloadRoot | 
 | Root url for downloading cell data | ✓ Yes | 
| volumeViewerDataRoot | 
 | Root url for 3d images | ✓ Yes | 
| xAxis | ✓ Yes | ||
| yAxis | ✓ Yes | ||
| colorBy | ✓ Yes | ||
| groupBy | ✓ Yes | ||
| featuresDisplayOrder | 
 | Ordered array of feature keys for display on front end | ✓ Yes | 
| featuresDataOrder | 
 | Ordered array of feature keys for packing and unpacking data | ✓ Yes | 
| datasetLinks | Array of dataset links | No | 
Additional properties are not allowed.
- 
JSON schema: input-dataset-info.schema.json
input-dataset-info.title
Display name of dataset.
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.name
Name of the group (no version number). Lowercase with underscores.
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.version
Version year and number
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.description
Description of the dataset
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.image
Relative path to the dataset card image file, including filename.
- 
Type: string
- 
Required: No 
input-dataset-info.link
Link to website displaying the dataset
- 
Type: string
- 
Required: No 
input-dataset-info.production
Whether this dataset should be shown in production
- 
Type: boolean
- 
Required: No 
input-dataset-info.featuresDataPath
Relative path to the per cell data json, including filename.
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.featureDefsPath
Relative path to the feature definition file, including filename.
- 
Type: string
- 
Required: No 
input-dataset-info.viewerSettingsPath
Relative path to image per-channel settings file for the 3d viewer, including filename.
- 
Type: string
- 
Required: No 
input-dataset-info.albumPath
Relative path to the album file.
- 
Type: string
- 
Required: No 
input-dataset-info.thumbnailRoot
Root url for thumbnail images
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.downloadRoot
Root url for downloading cell data
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.volumeViewerDataRoot
Root url for 3d images
- 
Type: string
- 
Required: ✓ Yes 
input-dataset-info.xAxis
- 
Type: selection-settings
- 
Required: ✓ Yes 
input-dataset-info.yAxis
- 
Type: selection-settings
- 
Required: ✓ Yes 
input-dataset-info.colorBy
- 
Type: selection-settings
- 
Required: ✓ Yes 
input-dataset-info.groupBy
- 
Type: selection-settings
- 
Required: ✓ Yes 
input-dataset-info.featuresDisplayOrder
Ordered array of feature keys for display on front end
- 
Type: string[]
- 
Required: ✓ Yes 
input-dataset-info.featuresDataOrder
Ordered array of feature keys for packing and unpacking data
- 
Type: string[]
- 
Required: ✓ Yes 
input-dataset-info.datasetLinks
Array of dataset links
- 
Type: array-items/dataset-link[]
- 
Required: No 
Input datasets
Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own dataset.json.
- 
Type: string
- 
JSON schema: definitions.schema.json
Input Megaset dataset.json
File that describes a group of datasets (ie a 'Megaset'). Should be at the highest level, and the datasets nested in their own folders. This file needs to be named dataset.json
| Type | Description | Required | |
|---|---|---|---|
| title | 
 | Display name of dataset group. | ✓ Yes | 
| name | 
 | Name of the group (no version number). Lowercase with underscores. | ✓ Yes | 
| datasets | 
 | Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own  | ✓ Yes | 
| dateCreated | 
 | Format: Month Day, Year. If it’s not specified, the date will be set to the upload date. | No | 
| publications | 
 | Publications associated with the group | No | 
Additional properties are not allowed.
- 
JSON schema: input-megaset.schema.json
input-megaset.title
Display name of dataset group.
- 
Type: string
- 
Required: ✓ Yes 
input-megaset.name
Name of the group (no version number). Lowercase with underscores.
- 
Type: string
- 
Required: ✓ Yes 
input-megaset.datasets
Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own dataset.json.
- 
Type: string[]
- 
Required: ✓ Yes 
input-megaset.dateCreated
Format: Month Day, Year. If it’s not specified, the date will be set to the upload date.
- 
Type: string
- 
Required: No 
measured features JSON
Input file containing measured features and file info for each image.
- 
JSON schema: input-measured-features-doc.schema.json
Publication
Publication data
| Type | Description | Required | |
|---|---|---|---|
| title | 
 | Article title | No | 
| url | 
 | Article link | No | 
| citation | 
 | Article journal and date | No | 
Additional properties are not allowed.
- 
JSON schema: definitions.schema.json
publication.title
Article title
- 
Type: string
- 
Required: No 
publication.url
Article link
- 
Type: string
- 
Required: No 
publication.citation
Article journal and date
- 
Type: string
- 
Required: No 
Selection settings
| Type | Description | Required | |
|---|---|---|---|
| default | 
 | Default feature key for the setting | ✓ Yes | 
| exclude | 
 | Optional list of feature keys to exclude | No | 
Additional properties are not allowed.
- 
JSON schema: definitions.schema.json
selection-settings.default
Default feature key for the setting
- 
Type: string
- 
Required: ✓ Yes 
selection-settings.exclude
Optional list of feature keys to exclude
- 
Type: string[]
- 
Required: No 
The measured features and fileInfo for one image
Per data point object. The measured features JSON is an array of these objects.
| Type | Description | Required | |
|---|---|---|---|
| file_info | 
 | Ordered array of file info: [id, parentId, id of default group, thumbnail path, volume viewer path, parent thumbnail path, parent volume viewer path]. Any of these can be empty strings if they aren’t applicable, but the array needs to be at least 7 items long (8 if including the translation and rotation) | ✓ Yes | 
| features | 
 | Ordered array of measured features. Needs to match the order of featuresDataOrder | ✓ Yes | 
Additional properties are not allowed.
- 
JSON schema: array-items/input-measured-features.schema.json
array-items/input-measured-features.file_info
Ordered array of file info: [id, parentId, id of default group, thumbnail path, volume viewer path, parent thumbnail path, parent volume viewer path]. Any of these can be empty strings if they aren’t applicable, but the array needs to be at least 7 items long (8 if including the translation and rotation)
- 
Type: (string or object)[7-8]- 
Each element in the array must be one of the following values: 
 
- 
- 
Required: ✓ Yes 
array-items/input-measured-features.features
Ordered array of measured features. Needs to match the order of featuresDataOrder
- 
Type: (number or string)[]- 
Each element in the array must be one of the following values: 
 
- 
- 
Required: ✓ Yes 
User data
Appendix
JSON Schema for 3D Viewer Settings
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "images.schema.json",
    "title": "3D Viewer Settings",
    "description": "Settings for the 3D viewer",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "maskChannelName": {
            "description": "Name of channel to use as mask, applied to all other enabled channels. Generally this would be a segmentation channel or a channel with binary data.  If omitted, then no masking will be available.",
            "type": "string"
        },
        "groups": {
            "description": "Collection of named channel groupings. If omitted, then there will be a single group called \"Channels\".",
            "type": "array",
            "items": {
                "title": "3D Viewer Channel Group",
                "description": "Settings for a grouping of channels for the 3D viewer",
                "type": "object",
                "properties": {
                    "name":{
                        "description": "Name of the channel group",
                        "type":"string"
                    },
                    "channels": {
                        "description": "Collection of channel settings in the group",
                        "type": "array",
                        "items": {
                            "title": "Channel Settings",
                            "description": "Default 3D Viewer per-channel settings",
                            "type": "object",
                            "properties": {
                                "name": {
                                    "description": "Displayed name of the channel. If \"match\" is omitted, then this must be an actual channel name in the image.",
                                    "type": "string"
                                },
                                "match": {
                                    "description": "Regular expression, or List of Regular expressions to match channel names.",
                                    "anyOf": [
                                        {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        {
                                            "type":"string"
                                        }
                                    ]
                                },
                                "color": {
                                    "description": "Color to use for the channel. Must be a 6 digit hex value of format RRGGBB",
                                    "type": "string",
                                    "pattern": "^[0-9A-Fa-f]{6}$"
                                },
                                "enabled": {
                                    "description": "Whether the channel should be enabled (visible) by default",
                                    "type": "boolean"
                                },
                                "lut": {
                                    "description": "Min and max threshold values to use for this channel.  If omitted, viewer default will be used. Prefix with p for percentile, or m for percentage of median. E.g. m105 is 105% of the median intensity. p98 is the 98th percentile intensity. Plain number is interpreted as raw intensity value (0..255 max)",
                                    "type": "array",
                                    "maxItems": 2,
                                    "minItems": 2,
                                    "items": {
                                        "type": "string",
                                        "pattern": "^[pm0-9]+(\\.[0-9]+)?$"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}JSON Schema for Cell Feature Dataset Handoff Specification
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "input-dataset.schema.json",
    "title": "Cell Feature Dataset Handoff Specification",
    "description": "all the files needed for handoff",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "megaset": {
            "$ref": "input-megaset.schema.json"
        },
        "dataset": {
            "$ref": "input-dataset-info.schema.json"
        },
        "feature-defs": {
            "title": "Feature definitions `feature-defs.json`",
            "description": "File that describes the measured feature definitions. Is an array of feature definitions.",
            "type": "array",
            "items": {
                "$ref": "feature-def.schema.json"
            }
        },
        "measured-features": {
            "$ref": "input-measured-features-doc.schema.json"
        },
        "images": {
            "title": "3D Viewer settings `images.json`",
            "description": "File that contains the 3D viewer settings. These are settings consistent with the type of images being displayed.",
            "$ref": "images.schema.json"
        }
    },
    "required": [
        "dataset",
        "feature-defs",
        "measured-features"
    ]
}JSON Schema for Dataset Link
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "array-items/dataset-link.schema.json",
    "title": "Dataset Link",
    "description": "Schema for each single dataset",
    "additionalProperties": false,
    "type": "object",
    "properties": {
        "date": {
            "description": "Date of the dataset release",
            "type": "string"
        },
        "title":{ 
            "type": "string" 
        },
        "link": { 
            "type": "string" 
        }
    },
    "required": [
        "date",
        "title",
        "link"
    ]
}JSON Schema for Discrete feature option
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "array-items/discrete-feature-option.schema.json",
    "title": "Discrete feature option",
    "description": "Schema for each category in a discrete feature",
    "type": "object",
    "properties": {
        "color": {
            "description": "Hex string",
            "type": "string"
        },
        "name": {
            "description": "Display name for the option. Doesn't have to be unique, but if it's not unique, `key` is required.",
            "type": "string"
        },
        "key": {
            "description": "unique key for the option.",
            "type": "string"
        }
    },
    "additionalProperties": false,
    "required": [
        "name",
        "color"
    ]
}JSON Schema for Discrete feature options
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "discrete-feature-options.schema.json",
    "title": "Discrete feature options",
    "description": "Mapping of numeral key in the analysis to category names. There should be one key value pair for each category of a discrete feature. For example, if the feature is a boolean, and the numeral data is either `0` or `1`, there should be two option mappings.",
    "type": "object",
    "patternProperties": {
        "^\\d{1,}$": {
            "$ref": "array-items/discrete-feature-option.schema.json"
        }
    }
}JSON Schema for Feature data order
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "definitions.schema.json",
    "title": "Definitions of dataset properties",
    "type": "object",
    "additionalProperties": false,
    "definitions": {
        "group-title": {
            "title": "Group title",
            "description": "Display name of dataset group.",
            "type": "string"
        },
        "dataset-title": {
            "title": "Dataset title",
            "description": "Display name of dataset.",
            "type": "string"
        },
        "name": {
            "title": "Dataset name",
            "description": "Name of the group (no version number). Lowercase with underscores.",
            "type": "string"
        },
        "index": {
            "title": "Dataset index",
            "description": "Index of dataset in a megaset.",
            "type": "number"
        },
        "publication": {
            "title": "Publication",
            "description": "Publication data",
            "additionalProperties": false,
            "type": "object",
            "properties": {
                "title": {
                    "description": "Article title",
                    "type": "string"
                },
                "url": {
                    "description": "Article link",
                    "type": "string"
                },
                "citation": {
                    "description": "Article journal and date",
                    "type": "string"
                }
            }
        },
        "version": {
            "title": "Version",
            "description": "Version year and number",
            "type": "string"
        },
        "description": {
            "title": "Description",
            "description": "Description of the dataset",
            "type": "string"
        },
        "extra": {
            "title": "Extra",
            "description": "Extra text to display on the card with a callout box",
            "type": "string"
        },
        "link": {
            "title": "Link (deprecated)",
            "description": "Link to website displaying the dataset",
            "type": "string"
        },
        "userData": {
            "title": "User data",
            "description": "Optional display data",
            "type": "object"
        },
        "production": {
            "title": "Is production",
            "description": "Whether this dataset should be shown in production",
            "type": "boolean"
        },
        "thumbnailRoot": {
            "title": "Thumbnail root",
            "description": "Root url for thumbnail images",
            "type": "string"
        },
        "downloadRoot": {
            "title": "Download root",
            "description": "Root url for downloading cell data",
            "type": "string"
        },
        "volumeViewerDataRoot": {
            "title": "VolumeViewer data root",
            "description": "Root url for 3d images",
            "type": "string"
        },
        "selection-settings": {
            "title": "Selection settings",
            "type": "object",
            "properties": {
                "default": {
                    "description": "Default feature key for the setting",
                    "type": "string"
                },
                "exclude": {
                    "description": "Optional list of feature keys to exclude",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "default"
            ],
            "additionalProperties": false
        },
        "featuresDisplayOrder": {
            "title": "Feature display order",
            "description": "Ordered array of feature keys for display on front end",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "featuresDataOrder": {
            "title": "Feature data order",
            "description": "Ordered array of feature keys for packing and unpacking data",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Month Day, Year. If it's not specified, the date will be set to the upload date. ",
            "type": "string"
        },
        "input-datasets": {
            "title": "Input datasets",
            "description": "Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own `dataset.json`.",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-image": {
            "title": "Image file",
            "description": "Relative path to the dataset card image file, including filename.",
            "type": "string"
        },
        "input-featuresDataPath": {
            "title": "Feature data path",
            "description": "Relative path to the per cell data json, including filename.",
            "type": "string"
        },
        "input-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Relative path to the feature definition file, including filename.",
            "type": "string"
        },
        "input-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Relative path to image per-channel settings file for the 3d viewer, including filename.",
            "type": "string"
        },
        "input-albumPath": {
            "title": "Album path",
            "description": "Relative path to the album file.",
            "type": "string"
        },
        "processed-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Firebase Timestamp. ",
            "type": "string"
        },
        "processed-datasets": {
            "title": "Input datasets",
            "description": "Array of dateset cards.",
            "type": "array",
            "items": {
                "type": "object",
                "$ref": "dataset-card.schema.json"
            }
        },
        "processed-image": {
            "title": "Image file",
            "description": "Url of the dataset card image file on AWS",
            "type": "string"
        },
        "processed-featuresDataPath": {
            "title": "Feature data path",
            "description": "Url of the features JSON on AWS",
            "type": "string"
        },
        "processed-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Database path to feature definition collection",
            "type": "string"
        },
        "processed-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Url of the per-channel settings file for the 3d viewer on AWS.",
            "type": "string"
        },
        "processed-albumPath": {
            "title": "Album path",
            "description": "Database path to album information.",
            "type": "string"
        },
        "datasetLinks": {
            "title": "Dataset Link",
            "description": "Array of dataset links",
            "type": "array",
            "items": {
                "$ref": "array-items/dataset-link.schema.json",
                "type": "object"
            }
        }
    }
}JSON Schema for Feature Definition
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "feature-def.schema.json",
    "title": "Feature Definition",
    "description": "Definition of a measured features in the dataset. Feature definitions file is an array of these objects.",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "displayName": {
            "description": "Human readable name",
            "type": "string"
        },
        "description": {
            "description": "Description of how the data was collected/measured",
            "type": "string"
        },
        "tooltip": {
            "description": "Shorter version of description",
            "type": "string"
        },
        "unit": {
            "description": "unit of measurement",
            "type": "string"
        },
        "key": {
            "description": "Id of the feature",
            "type": "string"
        },
        "discrete": {
            "description": "Whether it's a continuous measurement or not",
            "type": "boolean"
        },
        "options": {
            "description": "Required for discrete features, options is a mapping of the numeral value in the 'measured' feature to the name and color for that category.",
            "type": "object",
            "$ref": "discrete-feature-options.schema.json"
        }
    },
    "required": [
        "displayName",
        "unit",
        "key",
        "discrete"
    ],
    "allOf": [
        {
            "if": {
                "properties": {
                    "discrete": {
                        "const": true
                    }
                }
            },
            "then": {
                "required": [
                    "options"
                ]
            },
            "else": {
                "not": {
                    "required": [
                        "options"
                    ]
                }
            }
        }
    ]
}JSON Schema for Feature display order
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "definitions.schema.json",
    "title": "Definitions of dataset properties",
    "type": "object",
    "additionalProperties": false,
    "definitions": {
        "group-title": {
            "title": "Group title",
            "description": "Display name of dataset group.",
            "type": "string"
        },
        "dataset-title": {
            "title": "Dataset title",
            "description": "Display name of dataset.",
            "type": "string"
        },
        "name": {
            "title": "Dataset name",
            "description": "Name of the group (no version number). Lowercase with underscores.",
            "type": "string"
        },
        "index": {
            "title": "Dataset index",
            "description": "Index of dataset in a megaset.",
            "type": "number"
        },
        "publication": {
            "title": "Publication",
            "description": "Publication data",
            "additionalProperties": false,
            "type": "object",
            "properties": {
                "title": {
                    "description": "Article title",
                    "type": "string"
                },
                "url": {
                    "description": "Article link",
                    "type": "string"
                },
                "citation": {
                    "description": "Article journal and date",
                    "type": "string"
                }
            }
        },
        "version": {
            "title": "Version",
            "description": "Version year and number",
            "type": "string"
        },
        "description": {
            "title": "Description",
            "description": "Description of the dataset",
            "type": "string"
        },
        "extra": {
            "title": "Extra",
            "description": "Extra text to display on the card with a callout box",
            "type": "string"
        },
        "link": {
            "title": "Link (deprecated)",
            "description": "Link to website displaying the dataset",
            "type": "string"
        },
        "userData": {
            "title": "User data",
            "description": "Optional display data",
            "type": "object"
        },
        "production": {
            "title": "Is production",
            "description": "Whether this dataset should be shown in production",
            "type": "boolean"
        },
        "thumbnailRoot": {
            "title": "Thumbnail root",
            "description": "Root url for thumbnail images",
            "type": "string"
        },
        "downloadRoot": {
            "title": "Download root",
            "description": "Root url for downloading cell data",
            "type": "string"
        },
        "volumeViewerDataRoot": {
            "title": "VolumeViewer data root",
            "description": "Root url for 3d images",
            "type": "string"
        },
        "selection-settings": {
            "title": "Selection settings",
            "type": "object",
            "properties": {
                "default": {
                    "description": "Default feature key for the setting",
                    "type": "string"
                },
                "exclude": {
                    "description": "Optional list of feature keys to exclude",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "default"
            ],
            "additionalProperties": false
        },
        "featuresDisplayOrder": {
            "title": "Feature display order",
            "description": "Ordered array of feature keys for display on front end",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "featuresDataOrder": {
            "title": "Feature data order",
            "description": "Ordered array of feature keys for packing and unpacking data",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Month Day, Year. If it's not specified, the date will be set to the upload date. ",
            "type": "string"
        },
        "input-datasets": {
            "title": "Input datasets",
            "description": "Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own `dataset.json`.",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-image": {
            "title": "Image file",
            "description": "Relative path to the dataset card image file, including filename.",
            "type": "string"
        },
        "input-featuresDataPath": {
            "title": "Feature data path",
            "description": "Relative path to the per cell data json, including filename.",
            "type": "string"
        },
        "input-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Relative path to the feature definition file, including filename.",
            "type": "string"
        },
        "input-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Relative path to image per-channel settings file for the 3d viewer, including filename.",
            "type": "string"
        },
        "input-albumPath": {
            "title": "Album path",
            "description": "Relative path to the album file.",
            "type": "string"
        },
        "processed-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Firebase Timestamp. ",
            "type": "string"
        },
        "processed-datasets": {
            "title": "Input datasets",
            "description": "Array of dateset cards.",
            "type": "array",
            "items": {
                "type": "object",
                "$ref": "dataset-card.schema.json"
            }
        },
        "processed-image": {
            "title": "Image file",
            "description": "Url of the dataset card image file on AWS",
            "type": "string"
        },
        "processed-featuresDataPath": {
            "title": "Feature data path",
            "description": "Url of the features JSON on AWS",
            "type": "string"
        },
        "processed-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Database path to feature definition collection",
            "type": "string"
        },
        "processed-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Url of the per-channel settings file for the 3d viewer on AWS.",
            "type": "string"
        },
        "processed-albumPath": {
            "title": "Album path",
            "description": "Database path to album information.",
            "type": "string"
        },
        "datasetLinks": {
            "title": "Dataset Link",
            "description": "Array of dataset links",
            "type": "array",
            "items": {
                "$ref": "array-items/dataset-link.schema.json",
                "type": "object"
            }
        }
    }
}JSON Schema for Input dataset info dataset.json
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "input-dataset-info.schema.json",
    "title": "Input dataset info `dataset.json`",
    "description": "File containing the data needed to process a dataset. If single dataset, should be at the highest folder level. If one of many in a group of datasets, should be in a subfolder pointed to by the megaset JSON `datasets` array. Should be named `dataset.json`",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "title": {
            "$ref": "definitions.schema.json#/definitions/dataset-title"
        },
        "name": {
            "$ref": "definitions.schema.json#/definitions/name"
        },
        "version": {
            "$ref": "definitions.schema.json#/definitions/version"
        },
        "description": {
            "$ref": "definitions.schema.json#/definitions/description"
        },
        "image": {
            "$ref": "definitions.schema.json#/definitions/input-image"
        },
        "link": {
            "$ref": "definitions.schema.json#/definitions/link"
        },
        "userData": {
            "$ref": "definitions.schema.json#/definitions/userData"
        },
        "production": {
            "$ref": "definitions.schema.json#/definitions/production"
        },
        "featuresDataPath": {
            "$ref": "definitions.schema.json#/definitions/input-featuresDataPath"
        },
        "featureDefsPath": {
            "$ref": "definitions.schema.json#/definitions/input-featureDefsPath"
        },
        "viewerSettingsPath": {
            "$ref": "definitions.schema.json#/definitions/input-viewerSettingsPath"
        },
        "albumPath": {
            "$ref": "definitions.schema.json#/definitions/input-albumPath"
        },
        "thumbnailRoot": {
            "$ref": "definitions.schema.json#/definitions/thumbnailRoot"
        },
        "downloadRoot": {
            "$ref": "definitions.schema.json#/definitions/downloadRoot"
        },
        "volumeViewerDataRoot": {
            "$ref": "definitions.schema.json#/definitions/volumeViewerDataRoot"
        },
        "xAxis": {
            "title": "xAxis settings",
            "description": "Settings for the x axis",
            "type": "object",
            "$ref": "definitions.schema.json#/definitions/selection-settings"
        },
        "yAxis": {
            "title": "yAxis settings",
            "description": "Settings for the y axis",
            "type": "object",
            "$ref": "definitions.schema.json#/definitions/selection-settings"
        },
        "colorBy": {
            "title": "Color settings",
            "description": "Settings for the color by menu",
            "type": "object",
            "$ref": "definitions.schema.json#/definitions/selection-settings"
        },
        "groupBy": {
            "title": "Grouping settings",
            "description": "Settings for the grouping menu",
            "type": "object",
            "$ref": "definitions.schema.json#/definitions/selection-settings"
        },
        "featuresDisplayOrder": {
            "$ref": "definitions.schema.json#/definitions/featuresDisplayOrder"
        },
        "featuresDataOrder": {
            "$ref": "definitions.schema.json#/definitions/featuresDataOrder"
        },
        "datasetLinks":{
            "$ref": "definitions.schema.json#/definitions/datasetLinks"
        }
    },
    "required": [
        "title",
        "version",
        "name",
        "description",
        "featuresDataPath",
        "thumbnailRoot",
        "downloadRoot",
        "volumeViewerDataRoot",
        "xAxis",
        "yAxis",
        "groupBy",
        "colorBy",
        "featuresDisplayOrder",
        "featuresDataOrder"
    ]
}JSON Schema for Input datasets
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "definitions.schema.json",
    "title": "Definitions of dataset properties",
    "type": "object",
    "additionalProperties": false,
    "definitions": {
        "group-title": {
            "title": "Group title",
            "description": "Display name of dataset group.",
            "type": "string"
        },
        "dataset-title": {
            "title": "Dataset title",
            "description": "Display name of dataset.",
            "type": "string"
        },
        "name": {
            "title": "Dataset name",
            "description": "Name of the group (no version number). Lowercase with underscores.",
            "type": "string"
        },
        "index": {
            "title": "Dataset index",
            "description": "Index of dataset in a megaset.",
            "type": "number"
        },
        "publication": {
            "title": "Publication",
            "description": "Publication data",
            "additionalProperties": false,
            "type": "object",
            "properties": {
                "title": {
                    "description": "Article title",
                    "type": "string"
                },
                "url": {
                    "description": "Article link",
                    "type": "string"
                },
                "citation": {
                    "description": "Article journal and date",
                    "type": "string"
                }
            }
        },
        "version": {
            "title": "Version",
            "description": "Version year and number",
            "type": "string"
        },
        "description": {
            "title": "Description",
            "description": "Description of the dataset",
            "type": "string"
        },
        "extra": {
            "title": "Extra",
            "description": "Extra text to display on the card with a callout box",
            "type": "string"
        },
        "link": {
            "title": "Link (deprecated)",
            "description": "Link to website displaying the dataset",
            "type": "string"
        },
        "userData": {
            "title": "User data",
            "description": "Optional display data",
            "type": "object"
        },
        "production": {
            "title": "Is production",
            "description": "Whether this dataset should be shown in production",
            "type": "boolean"
        },
        "thumbnailRoot": {
            "title": "Thumbnail root",
            "description": "Root url for thumbnail images",
            "type": "string"
        },
        "downloadRoot": {
            "title": "Download root",
            "description": "Root url for downloading cell data",
            "type": "string"
        },
        "volumeViewerDataRoot": {
            "title": "VolumeViewer data root",
            "description": "Root url for 3d images",
            "type": "string"
        },
        "selection-settings": {
            "title": "Selection settings",
            "type": "object",
            "properties": {
                "default": {
                    "description": "Default feature key for the setting",
                    "type": "string"
                },
                "exclude": {
                    "description": "Optional list of feature keys to exclude",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "default"
            ],
            "additionalProperties": false
        },
        "featuresDisplayOrder": {
            "title": "Feature display order",
            "description": "Ordered array of feature keys for display on front end",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "featuresDataOrder": {
            "title": "Feature data order",
            "description": "Ordered array of feature keys for packing and unpacking data",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Month Day, Year. If it's not specified, the date will be set to the upload date. ",
            "type": "string"
        },
        "input-datasets": {
            "title": "Input datasets",
            "description": "Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own `dataset.json`.",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-image": {
            "title": "Image file",
            "description": "Relative path to the dataset card image file, including filename.",
            "type": "string"
        },
        "input-featuresDataPath": {
            "title": "Feature data path",
            "description": "Relative path to the per cell data json, including filename.",
            "type": "string"
        },
        "input-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Relative path to the feature definition file, including filename.",
            "type": "string"
        },
        "input-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Relative path to image per-channel settings file for the 3d viewer, including filename.",
            "type": "string"
        },
        "input-albumPath": {
            "title": "Album path",
            "description": "Relative path to the album file.",
            "type": "string"
        },
        "processed-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Firebase Timestamp. ",
            "type": "string"
        },
        "processed-datasets": {
            "title": "Input datasets",
            "description": "Array of dateset cards.",
            "type": "array",
            "items": {
                "type": "object",
                "$ref": "dataset-card.schema.json"
            }
        },
        "processed-image": {
            "title": "Image file",
            "description": "Url of the dataset card image file on AWS",
            "type": "string"
        },
        "processed-featuresDataPath": {
            "title": "Feature data path",
            "description": "Url of the features JSON on AWS",
            "type": "string"
        },
        "processed-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Database path to feature definition collection",
            "type": "string"
        },
        "processed-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Url of the per-channel settings file for the 3d viewer on AWS.",
            "type": "string"
        },
        "processed-albumPath": {
            "title": "Album path",
            "description": "Database path to album information.",
            "type": "string"
        },
        "datasetLinks": {
            "title": "Dataset Link",
            "description": "Array of dataset links",
            "type": "array",
            "items": {
                "$ref": "array-items/dataset-link.schema.json",
                "type": "object"
            }
        }
    }
}JSON Schema for Input Megaset dataset.json
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "input-megaset.schema.json",
    "title": "Input Megaset `dataset.json`",
    "description": "File that describes a group of datasets (ie a 'Megaset'). Should be at the highest level, and the datasets nested in their own folders. This file needs to be named `dataset.json`",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "title": {
            "$ref": "definitions.schema.json#/definitions/group-title"
        },
        "name": {
            "$ref": "definitions.schema.json#/definitions/name"
        },
        "datasets": {
            "type": "array",
            "$ref": "definitions.schema.json#/definitions/input-datasets",
            "uniqueItems": true
        },
        "dateCreated": {
            "$ref": "definitions.schema.json#/definitions/input-dateCreated"
        },
        "publications": {
            "title": "Publications",
            "description": "Publications associated with the group",
            "type": "array",
            "items": {
                "$ref": "definitions.schema.json#/definitions/publication"
            }
        }
    },
    "required": [
        "title",
        "name",
        "datasets"
    ]
}JSON Schema for measured features JSON
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "input-measured-features-doc.schema.json",
    "title": "measured features JSON",
    "description": "Input file containing measured features and file info for each image.",
    "type": "array",
    "items": {
        "$ref": "array-items/input-measured-features.schema.json"
    }
}JSON Schema for Publication
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "definitions.schema.json",
    "title": "Definitions of dataset properties",
    "type": "object",
    "additionalProperties": false,
    "definitions": {
        "group-title": {
            "title": "Group title",
            "description": "Display name of dataset group.",
            "type": "string"
        },
        "dataset-title": {
            "title": "Dataset title",
            "description": "Display name of dataset.",
            "type": "string"
        },
        "name": {
            "title": "Dataset name",
            "description": "Name of the group (no version number). Lowercase with underscores.",
            "type": "string"
        },
        "index": {
            "title": "Dataset index",
            "description": "Index of dataset in a megaset.",
            "type": "number"
        },
        "publication": {
            "title": "Publication",
            "description": "Publication data",
            "additionalProperties": false,
            "type": "object",
            "properties": {
                "title": {
                    "description": "Article title",
                    "type": "string"
                },
                "url": {
                    "description": "Article link",
                    "type": "string"
                },
                "citation": {
                    "description": "Article journal and date",
                    "type": "string"
                }
            }
        },
        "version": {
            "title": "Version",
            "description": "Version year and number",
            "type": "string"
        },
        "description": {
            "title": "Description",
            "description": "Description of the dataset",
            "type": "string"
        },
        "extra": {
            "title": "Extra",
            "description": "Extra text to display on the card with a callout box",
            "type": "string"
        },
        "link": {
            "title": "Link (deprecated)",
            "description": "Link to website displaying the dataset",
            "type": "string"
        },
        "userData": {
            "title": "User data",
            "description": "Optional display data",
            "type": "object"
        },
        "production": {
            "title": "Is production",
            "description": "Whether this dataset should be shown in production",
            "type": "boolean"
        },
        "thumbnailRoot": {
            "title": "Thumbnail root",
            "description": "Root url for thumbnail images",
            "type": "string"
        },
        "downloadRoot": {
            "title": "Download root",
            "description": "Root url for downloading cell data",
            "type": "string"
        },
        "volumeViewerDataRoot": {
            "title": "VolumeViewer data root",
            "description": "Root url for 3d images",
            "type": "string"
        },
        "selection-settings": {
            "title": "Selection settings",
            "type": "object",
            "properties": {
                "default": {
                    "description": "Default feature key for the setting",
                    "type": "string"
                },
                "exclude": {
                    "description": "Optional list of feature keys to exclude",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "default"
            ],
            "additionalProperties": false
        },
        "featuresDisplayOrder": {
            "title": "Feature display order",
            "description": "Ordered array of feature keys for display on front end",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "featuresDataOrder": {
            "title": "Feature data order",
            "description": "Ordered array of feature keys for packing and unpacking data",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Month Day, Year. If it's not specified, the date will be set to the upload date. ",
            "type": "string"
        },
        "input-datasets": {
            "title": "Input datasets",
            "description": "Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own `dataset.json`.",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-image": {
            "title": "Image file",
            "description": "Relative path to the dataset card image file, including filename.",
            "type": "string"
        },
        "input-featuresDataPath": {
            "title": "Feature data path",
            "description": "Relative path to the per cell data json, including filename.",
            "type": "string"
        },
        "input-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Relative path to the feature definition file, including filename.",
            "type": "string"
        },
        "input-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Relative path to image per-channel settings file for the 3d viewer, including filename.",
            "type": "string"
        },
        "input-albumPath": {
            "title": "Album path",
            "description": "Relative path to the album file.",
            "type": "string"
        },
        "processed-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Firebase Timestamp. ",
            "type": "string"
        },
        "processed-datasets": {
            "title": "Input datasets",
            "description": "Array of dateset cards.",
            "type": "array",
            "items": {
                "type": "object",
                "$ref": "dataset-card.schema.json"
            }
        },
        "processed-image": {
            "title": "Image file",
            "description": "Url of the dataset card image file on AWS",
            "type": "string"
        },
        "processed-featuresDataPath": {
            "title": "Feature data path",
            "description": "Url of the features JSON on AWS",
            "type": "string"
        },
        "processed-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Database path to feature definition collection",
            "type": "string"
        },
        "processed-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Url of the per-channel settings file for the 3d viewer on AWS.",
            "type": "string"
        },
        "processed-albumPath": {
            "title": "Album path",
            "description": "Database path to album information.",
            "type": "string"
        },
        "datasetLinks": {
            "title": "Dataset Link",
            "description": "Array of dataset links",
            "type": "array",
            "items": {
                "$ref": "array-items/dataset-link.schema.json",
                "type": "object"
            }
        }
    }
}JSON Schema for Selection settings
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "definitions.schema.json",
    "title": "Definitions of dataset properties",
    "type": "object",
    "additionalProperties": false,
    "definitions": {
        "group-title": {
            "title": "Group title",
            "description": "Display name of dataset group.",
            "type": "string"
        },
        "dataset-title": {
            "title": "Dataset title",
            "description": "Display name of dataset.",
            "type": "string"
        },
        "name": {
            "title": "Dataset name",
            "description": "Name of the group (no version number). Lowercase with underscores.",
            "type": "string"
        },
        "index": {
            "title": "Dataset index",
            "description": "Index of dataset in a megaset.",
            "type": "number"
        },
        "publication": {
            "title": "Publication",
            "description": "Publication data",
            "additionalProperties": false,
            "type": "object",
            "properties": {
                "title": {
                    "description": "Article title",
                    "type": "string"
                },
                "url": {
                    "description": "Article link",
                    "type": "string"
                },
                "citation": {
                    "description": "Article journal and date",
                    "type": "string"
                }
            }
        },
        "version": {
            "title": "Version",
            "description": "Version year and number",
            "type": "string"
        },
        "description": {
            "title": "Description",
            "description": "Description of the dataset",
            "type": "string"
        },
        "extra": {
            "title": "Extra",
            "description": "Extra text to display on the card with a callout box",
            "type": "string"
        },
        "link": {
            "title": "Link (deprecated)",
            "description": "Link to website displaying the dataset",
            "type": "string"
        },
        "userData": {
            "title": "User data",
            "description": "Optional display data",
            "type": "object"
        },
        "production": {
            "title": "Is production",
            "description": "Whether this dataset should be shown in production",
            "type": "boolean"
        },
        "thumbnailRoot": {
            "title": "Thumbnail root",
            "description": "Root url for thumbnail images",
            "type": "string"
        },
        "downloadRoot": {
            "title": "Download root",
            "description": "Root url for downloading cell data",
            "type": "string"
        },
        "volumeViewerDataRoot": {
            "title": "VolumeViewer data root",
            "description": "Root url for 3d images",
            "type": "string"
        },
        "selection-settings": {
            "title": "Selection settings",
            "type": "object",
            "properties": {
                "default": {
                    "description": "Default feature key for the setting",
                    "type": "string"
                },
                "exclude": {
                    "description": "Optional list of feature keys to exclude",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "default"
            ],
            "additionalProperties": false
        },
        "featuresDisplayOrder": {
            "title": "Feature display order",
            "description": "Ordered array of feature keys for display on front end",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "featuresDataOrder": {
            "title": "Feature data order",
            "description": "Ordered array of feature keys for packing and unpacking data",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Month Day, Year. If it's not specified, the date will be set to the upload date. ",
            "type": "string"
        },
        "input-datasets": {
            "title": "Input datasets",
            "description": "Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own `dataset.json`.",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-image": {
            "title": "Image file",
            "description": "Relative path to the dataset card image file, including filename.",
            "type": "string"
        },
        "input-featuresDataPath": {
            "title": "Feature data path",
            "description": "Relative path to the per cell data json, including filename.",
            "type": "string"
        },
        "input-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Relative path to the feature definition file, including filename.",
            "type": "string"
        },
        "input-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Relative path to image per-channel settings file for the 3d viewer, including filename.",
            "type": "string"
        },
        "input-albumPath": {
            "title": "Album path",
            "description": "Relative path to the album file.",
            "type": "string"
        },
        "processed-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Firebase Timestamp. ",
            "type": "string"
        },
        "processed-datasets": {
            "title": "Input datasets",
            "description": "Array of dateset cards.",
            "type": "array",
            "items": {
                "type": "object",
                "$ref": "dataset-card.schema.json"
            }
        },
        "processed-image": {
            "title": "Image file",
            "description": "Url of the dataset card image file on AWS",
            "type": "string"
        },
        "processed-featuresDataPath": {
            "title": "Feature data path",
            "description": "Url of the features JSON on AWS",
            "type": "string"
        },
        "processed-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Database path to feature definition collection",
            "type": "string"
        },
        "processed-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Url of the per-channel settings file for the 3d viewer on AWS.",
            "type": "string"
        },
        "processed-albumPath": {
            "title": "Album path",
            "description": "Database path to album information.",
            "type": "string"
        },
        "datasetLinks": {
            "title": "Dataset Link",
            "description": "Array of dataset links",
            "type": "array",
            "items": {
                "$ref": "array-items/dataset-link.schema.json",
                "type": "object"
            }
        }
    }
}JSON Schema for The measured features and fileInfo for one image
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "array-items/input-measured-features.schema.json",
    "title": "The measured features and fileInfo for one image",
    "description": "Per data point object. The measured features JSON is an array of these objects.",
    "additionalProperties": false,
    "type": "object",
    "properties": {
        "file_info": {
            "description": "Ordered array of file info: [id, parentId, id of default group, thumbnail path, volume viewer path, parent thumbnail path, parent volume viewer path]. Any of these can be empty strings if they aren't applicable, but the array needs to be at least 7 items long (8 if including the translation and rotation)",
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "type": "string"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "rotation": {
                                "type": "array",
                                "maxItems": 3,
                                "minItems": 3,
                                "items": {
                                    "type": "number"
                                }
                            },
                            "translation": {
                                "type": "array",
                                "maxItems": 3,
                                "minItems": 3,
                                "items": {
                                    "type": "number"
                                }
                            }
                        }
                    }
                ]
            },
            "minItems": 7,
            "maxItems": 8
        },
        "features": {
            "description": "Ordered array of measured features. Needs to match the order of featuresDataOrder",
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "type": "number"
                    },
                    {
                        "type": "string",
                        "pattern": "[NaN]"
                    }
                ]
            }
        }
    },
    "required": [
        "file_info",
        "features"
    ]
}JSON Schema for User data
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "definitions.schema.json",
    "title": "Definitions of dataset properties",
    "type": "object",
    "additionalProperties": false,
    "definitions": {
        "group-title": {
            "title": "Group title",
            "description": "Display name of dataset group.",
            "type": "string"
        },
        "dataset-title": {
            "title": "Dataset title",
            "description": "Display name of dataset.",
            "type": "string"
        },
        "name": {
            "title": "Dataset name",
            "description": "Name of the group (no version number). Lowercase with underscores.",
            "type": "string"
        },
        "index": {
            "title": "Dataset index",
            "description": "Index of dataset in a megaset.",
            "type": "number"
        },
        "publication": {
            "title": "Publication",
            "description": "Publication data",
            "additionalProperties": false,
            "type": "object",
            "properties": {
                "title": {
                    "description": "Article title",
                    "type": "string"
                },
                "url": {
                    "description": "Article link",
                    "type": "string"
                },
                "citation": {
                    "description": "Article journal and date",
                    "type": "string"
                }
            }
        },
        "version": {
            "title": "Version",
            "description": "Version year and number",
            "type": "string"
        },
        "description": {
            "title": "Description",
            "description": "Description of the dataset",
            "type": "string"
        },
        "extra": {
            "title": "Extra",
            "description": "Extra text to display on the card with a callout box",
            "type": "string"
        },
        "link": {
            "title": "Link (deprecated)",
            "description": "Link to website displaying the dataset",
            "type": "string"
        },
        "userData": {
            "title": "User data",
            "description": "Optional display data",
            "type": "object"
        },
        "production": {
            "title": "Is production",
            "description": "Whether this dataset should be shown in production",
            "type": "boolean"
        },
        "thumbnailRoot": {
            "title": "Thumbnail root",
            "description": "Root url for thumbnail images",
            "type": "string"
        },
        "downloadRoot": {
            "title": "Download root",
            "description": "Root url for downloading cell data",
            "type": "string"
        },
        "volumeViewerDataRoot": {
            "title": "VolumeViewer data root",
            "description": "Root url for 3d images",
            "type": "string"
        },
        "selection-settings": {
            "title": "Selection settings",
            "type": "object",
            "properties": {
                "default": {
                    "description": "Default feature key for the setting",
                    "type": "string"
                },
                "exclude": {
                    "description": "Optional list of feature keys to exclude",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "default"
            ],
            "additionalProperties": false
        },
        "featuresDisplayOrder": {
            "title": "Feature display order",
            "description": "Ordered array of feature keys for display on front end",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "featuresDataOrder": {
            "title": "Feature data order",
            "description": "Ordered array of feature keys for packing and unpacking data",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Month Day, Year. If it's not specified, the date will be set to the upload date. ",
            "type": "string"
        },
        "input-datasets": {
            "title": "Input datasets",
            "description": "Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own `dataset.json`.",
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "input-image": {
            "title": "Image file",
            "description": "Relative path to the dataset card image file, including filename.",
            "type": "string"
        },
        "input-featuresDataPath": {
            "title": "Feature data path",
            "description": "Relative path to the per cell data json, including filename.",
            "type": "string"
        },
        "input-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Relative path to the feature definition file, including filename.",
            "type": "string"
        },
        "input-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Relative path to image per-channel settings file for the 3d viewer, including filename.",
            "type": "string"
        },
        "input-albumPath": {
            "title": "Album path",
            "description": "Relative path to the album file.",
            "type": "string"
        },
        "processed-dateCreated": {
            "title": "Date the dataset was created",
            "description": "Format: Firebase Timestamp. ",
            "type": "string"
        },
        "processed-datasets": {
            "title": "Input datasets",
            "description": "Array of dateset cards.",
            "type": "array",
            "items": {
                "type": "object",
                "$ref": "dataset-card.schema.json"
            }
        },
        "processed-image": {
            "title": "Image file",
            "description": "Url of the dataset card image file on AWS",
            "type": "string"
        },
        "processed-featuresDataPath": {
            "title": "Feature data path",
            "description": "Url of the features JSON on AWS",
            "type": "string"
        },
        "processed-featureDefsPath": {
            "title": "Feature defs path",
            "description": "Database path to feature definition collection",
            "type": "string"
        },
        "processed-viewerSettingsPath": {
            "title": "Viewer settings path",
            "description": "Url of the per-channel settings file for the 3d viewer on AWS.",
            "type": "string"
        },
        "processed-albumPath": {
            "title": "Album path",
            "description": "Database path to album information.",
            "type": "string"
        },
        "datasetLinks": {
            "title": "Dataset Link",
            "description": "Array of dataset links",
            "type": "array",
            "items": {
                "$ref": "array-items/dataset-link.schema.json",
                "type": "object"
            }
        }
    }
}