1. Create the files

(the only file names that matters are dataset.json)

For a single dataset:

Create a folder with 5 files:

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

Table 1. 3D Viewer Settings Properties
Type Description Required

maskChannelName

string

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

object []

Collection of named channel groupings. If omitted, then there will be a single group called "Channels".

No

Additional properties are not allowed.

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

Table 2. Cell Feature Dataset Handoff Specification Properties
Type Description Required

megaset

input-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

No

dataset

input-dataset-info

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

✓ Yes

feature-defs

feature-def []

File that describes the measured feature definitions. Is an array of feature definitions.

✓ Yes

measured-features

array-items/input-measured-features []

Input file containing measured features and file info for each image.

✓ Yes

images

images

Settings for the 3D viewer

No

Additional properties are not allowed.

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

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

Cell Feature Dataset Handoff Specification.feature-defs

File that describes the measured feature definitions. Is an array of feature definitions.

Cell Feature Dataset Handoff Specification.measured-features

Input file containing measured features and file info for each image.

Cell Feature Dataset Handoff Specification.images

Settings for the 3D viewer


Schema for each single dataset

Table 3. Dataset Link Properties
Type Description Required

date

string

Date of the dataset release

✓ Yes

title

string

✓ Yes

link

string

✓ Yes

Additional properties are not allowed.

Date of the dataset release

  • Type: string

  • Required: ✓ Yes

  • Type: string

  • Required: ✓ Yes

  • Type: string

  • Required: ✓ Yes


Discrete feature option

Schema for each category in a discrete feature

Table 4. Discrete feature option Properties
Type Description Required

color

string

Hex string

✓ Yes

name

string

Display name for the option. Doesn’t have to be unique, but if it’s not unique, key is required.

✓ Yes

key

string

unique key for the option.

No

Additional properties are not allowed.

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 }

Table 5. array-items/discrete-feature-option Properties
Type Description Required

color

string

Hex string

✓ Yes

name

string

Display name for the option. Doesn’t have to be unique, but if it’s not unique, key is required.

✓ Yes

key

string

unique key for the option.

No

Additional properties are allowed.


Feature data order

Ordered array of feature keys for packing and unpacking data


Feature Definition

Definition of a measured features in the dataset. Feature definitions file is an array of these objects.

Table 6. Feature Definition Properties
Type Description Required

displayName

string

Human readable name

✓ Yes

description

string

Description of how the data was collected/measured

No

tooltip

string

Shorter version of description

No

unit

string

unit of measurement

✓ Yes

key

string

Id of the feature

✓ Yes

discrete

boolean

Whether it’s a continuous measurement or not

✓ Yes

options

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.

No

Additional properties are not allowed.

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.


Feature display order

Ordered array of feature keys for display on front end


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

Table 7. Input dataset info `dataset.json` Properties
Type Description Required

title

string

Display name of dataset.

✓ Yes

name

string

Name of the group (no version number). Lowercase with underscores.

✓ Yes

version

string

Version year and number

✓ Yes

description

string

Description of the dataset

✓ Yes

image

string

Relative path to the dataset card image file, including filename.

No

link

string

Link to website displaying the dataset

No

userData

userData

Optional display data

No

production

boolean

Whether this dataset should be shown in production

No

featuresDataPath

string

Relative path to the per cell data json, including filename.

✓ Yes

featureDefsPath

string

Relative path to the feature definition file, including filename.

No

viewerSettingsPath

string

Relative path to image per-channel settings file for the 3d viewer, including filename.

No

albumPath

string

Relative path to the album file.

No

thumbnailRoot

string

Root url for thumbnail images

✓ Yes

downloadRoot

string

Root url for downloading cell data

✓ Yes

volumeViewerDataRoot

string

Root url for 3d images

✓ Yes

xAxis

selection-settings

✓ Yes

yAxis

selection-settings

✓ Yes

colorBy

selection-settings

✓ Yes

groupBy

selection-settings

✓ Yes

featuresDisplayOrder

string []

Ordered array of feature keys for display on front end

✓ Yes

featuresDataOrder

string []

Ordered array of feature keys for packing and unpacking data

✓ Yes

datasetLinks

array-items/dataset-link []

Array of dataset links

No

Additional properties are not allowed.

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

Link to website displaying the dataset

  • Type: string

  • Required: No

input-dataset-info.userData

Optional display data

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

input-dataset-info.yAxis

input-dataset-info.colorBy

input-dataset-info.groupBy

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

Array of dataset links


Input datasets

Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own dataset.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

Table 8. Input Megaset `dataset.json` Properties
Type Description Required

title

string

Display name of dataset group.

✓ Yes

name

string

Name of the group (no version number). Lowercase with underscores.

✓ Yes

datasets

string []

Array of subfolder names that point to each dataset in the group. Each subfolder should contain their own dataset.json.

✓ Yes

dateCreated

string

Format: Month Day, Year. If it’s not specified, the date will be set to the upload date.

No

publications

publication []

Publications associated with the group

No

Additional properties are not allowed.

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

input-megaset.publications

Publications associated with the group


measured features JSON

Input file containing measured features and file info for each image.


Publication

Publication data

Table 9. Publication Properties
Type Description Required

title

string

Article title

No

url

string

Article link

No

citation

string

Article journal and date

No

Additional properties are not allowed.

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

Table 10. Selection settings Properties
Type Description Required

default

string

Default feature key for the setting

✓ Yes

exclude

string []

Optional list of feature keys to exclude

No

Additional properties are not allowed.

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.

Table 11. The measured features and fileInfo for one image Properties
Type Description Required

file_info

(string or object)[7-8]

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

(number or string)[]

Ordered array of measured features. Needs to match the order of featuresDataOrder

✓ Yes

Additional properties are not allowed.

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

Optional display data

Additional properties are allowed.

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"
    ]
}
{
    "$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"
            }
        }
    }
}