Cell Feature Database Specification

Structure of the data stored in firebase and AWS

Table 1. Cell Feature Database Specification Properties
Type Description Required

dataset-descriptions

dataset-descriptions

Endpoint that gets called first to load all the available datasets. Each DATASET_ID maps to a megaset card

✓ Yes

manifests

object

Collection of manifests for each published dataset.

✓ Yes

dataset-data

object

High level data for a dataset, ie not per cell data

✓ Yes

cell-data

object

Per cell data

✓ Yes

measured-features

array-items/condensed-measured-feature []

File stored on AWS that has the condensed measured data. Is an array of condensed measured features.

✓ Yes

Additional properties are not allowed.

Cell Feature Database Specification.dataset-descriptions

Endpoint that gets called first to load all the available datasets. Each DATASET_ID maps to a megaset card

Cell Feature Database Specification.manifests

Collection of manifests for each published dataset.

  • Type: object

  • Required: ✓ Yes

Cell Feature Database Specification.dataset-data

High level data for a dataset, ie not per cell data

  • Type: object

  • Required: ✓ Yes

Cell Feature Database Specification.cell-data

Per cell data

  • Type: object

  • Required: ✓ Yes

Cell Feature Database Specification.measured-features

File stored on AWS that has the condensed measured data. Is an array of condensed measured features.


Condensed measured feature

Data per cell needed to create the CFE plot

Table 2. Condensed measured feature Properties
Type Description Required

f

(number or string)[]

ordered array of measured features

✓ Yes

p

string

Protein name

✓ Yes

t

string

Thumbnail Path

✓ Yes

i

string

Cell id

✓ Yes

Additional properties are not allowed.

array-items/condensed-measured-feature.f

ordered array of measured features

  • Type: (number or string)[]

    • Each element in the array must be one of the following values:

  • Required: ✓ Yes

array-items/condensed-measured-feature.p

Protein name

  • Type: string

  • Required: ✓ Yes

array-items/condensed-measured-feature.t

Thumbnail Path

  • Type: string

  • Required: ✓ Yes

array-items/condensed-measured-feature.i

Cell id

  • Type: string

  • Required: ✓ Yes


Condensed measured features JSON

File stored on AWS that has the condensed measured data. Is an array of condensed measured features.


Dataset Card

Data needed to render a dataset card

Table 3. Dataset Card 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

extra

string

Extra text to display on the card with a callout box

No

image

string

Url of the dataset card image file on AWS

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

index

number

Index of dataset in a megaset.

No

datasetLinks

array-items/dataset-link []

Array of dataset links

No

Additional properties are not allowed.

dataset-card.title

Display name of dataset.

  • Type: string

  • Required: ✓ Yes

dataset-card.name

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

  • Type: string

  • Required: ✓ Yes

dataset-card.version

Version year and number

  • Type: string

  • Required: ✓ Yes

dataset-card.description

Description of the dataset

  • Type: string

  • Required: ✓ Yes

dataset-card.extra

Extra text to display on the card with a callout box

  • Type: string

  • Required: No

dataset-card.image

Url of the dataset card image file on AWS

  • Type: string

  • Required: No

Link to website displaying the dataset

  • Type: string

  • Required: No

dataset-card.userData

Optional display data

dataset-card.production

Whether this dataset should be shown in production

  • Type: boolean

  • Required: No

dataset-card.index

Index of dataset in a megaset.

  • Type: number

  • Required: No

Array of dataset links


Dataset Description Collection

Endpoint that gets called first to load all the available datasets. Each DATASET_ID maps to a megaset card

Mapping interface: { [ key: ^(\w{1,})_(v\d{4}.\d{1,}|\w{1,})$ ]: megaset-card }

Table 4. megaset-card Properties
Type Description Required

datasets

dataset-card []

Array of dateset cards.

✓ Yes

dateCreated

string

Format: Firebase Timestamp.

✓ Yes

name

string

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

✓ Yes

production

boolean

Whether this dataset should be shown in production

✓ Yes

title

string

Display name of dataset group.

✓ Yes

publications

publication []

Publications associated with the group

No

Additional properties are allowed.


Schema for each single dataset

Table 5. 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 6. 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 7. 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 8. 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


File info

File info for one cell, this is the data needed to access images for the cell.

Table 9. File info Properties
Type Description Required

CellId

string

unique id for segmented cell

✓ Yes

FOVId

string

Field of view cell came from

✓ Yes

groupBy

string

Id of feature the data is grouped by by default

✓ Yes

thumbnailPath

string

Path to thumbnail image for cell

No

volumeviewerPath

string

path to 3d data for cell

✓ Yes

fovThumbnailPath

string

Path to fov thumbnail

No

fovVolumeviewerPath

string

Path to the fov 3d data

No

transform

object

Transform to apply to the cell

No

Additional properties are not allowed.

array-items/file-info.CellId

unique id for segmented cell

  • Type: string

  • Required: ✓ Yes

array-items/file-info.FOVId

Field of view cell came from

  • Type: string

  • Required: ✓ Yes

array-items/file-info.groupBy

Id of feature the data is grouped by by default

  • Type: string

  • Required: ✓ Yes

array-items/file-info.thumbnailPath

Path to thumbnail image for cell

  • Type: string

  • Required: No

array-items/file-info.volumeviewerPath

path to 3d data for cell

  • Type: string

  • Required: ✓ Yes

array-items/file-info.fovThumbnailPath

Path to fov thumbnail

  • Type: string

  • Required: No

array-items/file-info.fovVolumeviewerPath

Path to the fov 3d data

  • Type: string

  • Required: No

array-items/file-info.transform

Transform to apply to the cell

  • Type: object

  • Required: No


Input datasets

Array of dateset cards.


Manifest

High level data for each dataset that points to where all the data is stored for this dataset.

Table 10. Manifest Properties
Type Description Required

featuresDataPath

string

Url of the features JSON on AWS

✓ Yes

featureDefsPath

string

Database path to feature definition collection

No

viewerSettingsPath

string

Url of the per-channel settings file for the 3d viewer on AWS.

✓ Yes

albumPath

string

Database path to album information.

✓ Yes

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

Additional properties are not allowed.

manifest.featuresDataPath

Url of the features JSON on AWS

  • Type: string

  • Required: ✓ Yes

manifest.featureDefsPath

Database path to feature definition collection

  • Type: string

  • Required: No

manifest.viewerSettingsPath

Url of the per-channel settings file for the 3d viewer on AWS.

  • Type: string

  • Required: ✓ Yes

manifest.albumPath

Database path to album information.

  • Type: string

  • Required: ✓ Yes

manifest.thumbnailRoot

Root url for thumbnail images

  • Type: string

  • Required: ✓ Yes

manifest.downloadRoot

Root url for downloading cell data

  • Type: string

  • Required: ✓ Yes

manifest.volumeViewerDataRoot

Root url for 3d images

  • Type: string

  • Required: ✓ Yes

manifest.xAxis

manifest.yAxis

manifest.colorBy

manifest.groupBy

manifest.featuresDisplayOrder

Ordered array of feature keys for display on front end

  • Type: string []

  • Required: ✓ Yes

manifest.featuresDataOrder

Ordered array of feature keys for packing and unpacking data

  • Type: string []

  • Required: ✓ Yes


Megaset Card

Data needed to render a megaset card

Table 11. Megaset Card Properties
Type Description Required

datasets

dataset-card []

Array of dateset cards.

✓ Yes

dateCreated

string

Format: Firebase Timestamp.

✓ Yes

name

string

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

✓ Yes

production

boolean

Whether this dataset should be shown in production

✓ Yes

title

string

Display name of dataset group.

✓ Yes

publications

publication []

Publications associated with the group

No

Additional properties are not allowed.

megaset-card.datasets

Array of dateset cards.

megaset-card.dateCreated

Format: Firebase Timestamp.

  • Type: string

  • Required: ✓ Yes

megaset-card.name

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

  • Type: string

  • Required: ✓ Yes

megaset-card.production

Whether this dataset should be shown in production

  • Type: boolean

  • Required: ✓ Yes

megaset-card.title

Display name of dataset group.

  • Type: string

  • Required: ✓ Yes

megaset-card.publications

Publications associated with the group


Publication

Publication data

Table 12. 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 13. 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


User data

Optional display data

Additional properties are allowed.

Appendix

JSON Schema for Cell Feature Database Specification

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "database-schema",
    "title": "Cell Feature Database Specification",
    "description": "Structure of the data stored in firebase and AWS",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "dataset-descriptions": {
            "$ref": "dataset-descriptions.schema.json"
        },
        "manifests": {
            "description": "Collection of manifests for each published dataset.",
            "type": "object",
            "patternProperties": {
                "^(\\w{1,})_(v\\d{4}.\\d{1,}|\\w{1,})$": {
                    "type": "object",
                    "$ref": "manifest.schema.json"
                }
            }
        },
        "dataset-data": {
            "$id": "dataset-data",
            "description": "High level data for a dataset, ie not per cell data",
            "type": "object",
            "properties": {
                "feature-definitions": {
                    "type": "object",
                    "patternProperties": {
                        "^(\\w{1,})_(v\\d{4}.\\d{1,}|\\w{1,})$": {
                            "type": "object",
                            "$feature-key": {
                                "$ref": "feature-def.schema.json"
                            }
                        }
                    }
                }
            }
        },
        "cell-data": {
            "description": "Per cell data",
            "$id": "cell-data",
            "type": "object",
            "patternProperties": {
                "^(\\w{1,})_(v\\d{4}.\\d{1,}|\\w{1,})$": {
                    "type": "object",
                    "properties": {
                        "cell-file-info": {
                            "type": "object",
                            "description": "Per cell mapping of file info",
                            "patternProperties": {
                                "^\\d{1,}$": {
                                    "$ref": "array-items/file-info.schema.json"
                                }
                            }
                        }
                    }
                }
            }
        },
        "measured-features": {
            "$ref": "measured-features.schema.json"
        }
    },
    "required": [
        "dataset-descriptions",
        "manifests",
        "dataset-data",
        "cell-data",
        "measured-features"
    ]
}

JSON Schema for Condensed measured feature

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "array-items/condensed-measured-feature.schema.json",
    "title": "Condensed measured feature",
    "description": "Data per cell needed to create the CFE plot",
    "additionalProperties": false,
    "type": "object",
    "properties": {
        "f": {
            "description": "ordered array of measured features",
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "type": "number"
                    },
                    {
                        "type": "string",
                        "pattern": "[NaN]"
                    }
                ]
            }
        },
        "p": {
            "description": "Protein name",
            "type": "string"
        },
        "t": {
            "description": "Thumbnail Path",
            "type": "string"
        },
        "i": {
            "description": "Cell id",
            "type": "string"
        }
    },
    "required": [
        "f",
        "p",
        "t",
        "i"
    ]
}

JSON Schema for Condensed measured features JSON

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "measured-features.schema.json",
    "title": "Condensed measured features JSON",
    "description": "File stored on AWS that has the condensed measured data. Is an array of condensed measured features.",
    "type": "array",
    "items": {
        "$ref": "array-items/condensed-measured-feature.schema.json"
    }
}

JSON Schema for Dataset Card

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "dataset-card.schema.json",
    "title": "Dataset Card",
    "description": "Data needed to render a dataset card",
    "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"
        },
        "extra": {
            "$ref": "definitions.schema.json#/definitions/extra"
        },
        "image": {
            "$ref": "definitions.schema.json#/definitions/processed-image"
        },
        "link": {
            "$ref": "definitions.schema.json#/definitions/link"
        },
        "userData": {
            "$ref": "definitions.schema.json#/definitions/userData"
        },
        "production": {
            "$ref": "definitions.schema.json#/definitions/production"
        },
        "index": {
            "$ref": "definitions.schema.json#/definitions/index"
        },
        "datasetLinks": {
            "$ref": "definitions.schema.json#/definitions/datasetLinks"
        }
    },
    "required": [
        "title",
        "version",
        "name",
        "description"
    ]
}

JSON Schema for Dataset Description Collection

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "dataset-descriptions",
    "title": "Dataset Description Collection",
    "description": "Endpoint that gets called first to load all the available datasets. Each DATASET_ID maps to a megaset card",
    "type": "object",
    "patternProperties": {
        "^(\\w{1,})_(v\\d{4}.\\d{1,}|\\w{1,})$": {
            "$ref": "megaset-card.schema.json"
        }
    }
}
{
    "$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 File info

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "array-items/file-info.schema.json",
    "title": "File info",
    "description": "File info for one cell, this is the data needed to access images for the cell.",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "CellId": {
            "description": "unique id for segmented cell",
            "type": "string"
        },
        "FOVId": {
            "description": "Field of view cell came from",
            "type": "string"
        },
        "groupBy": {
            "description": "Id of feature the data is grouped by by default",
            "type": "string"
        },
        "thumbnailPath": {
            "description": "Path to thumbnail image for cell",
            "type": "string"
        },
        "volumeviewerPath": {
            "description": "path to 3d data for cell",
            "type": "string"
        },
        "fovThumbnailPath": {
            "description": "Path to fov thumbnail",
            "type": "string"
        },
        "fovVolumeviewerPath": {
            "description": "Path to the fov 3d data",
            "type": "string"
        },
        "transform": {
            "description": "Transform to apply to the cell",
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "translation": {
                    "description": "Translation to apply to the cell",
                    "type": "array",
                    "items": {
                        "type": "number"
                    }
                },
                "rotation": {
                    "description": "Rotation to apply to the cell, as XYZ Euler angles in radians",
                    "type": "array",
                    "items": {
                        "type": "number"
                    }
                }
            }
        }
    },
    "required": [
        "CellId",
        "FOVId",
        "groupBy",
        "volumeviewerPath"
    ]
}

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 Manifest

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "manifest.schema.json",
    "title": "Manifest",
    "description": "High level data for each dataset that points to where all the data is stored for this dataset.",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "featuresDataPath": {
            "$ref": "definitions.schema.json#/definitions/processed-featuresDataPath"
        },
        "featureDefsPath": {
            "$ref": "definitions.schema.json#/definitions/processed-featureDefsPath"
        },
        "viewerSettingsPath": {
            "$ref": "definitions.schema.json#/definitions/processed-viewerSettingsPath"
        },
        "albumPath": {
            "$ref": "definitions.schema.json#/definitions/processed-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"
        }
    },
    "required": [
        "featuresDataPath",
        "viewerSettingsPath",
        "albumPath",
        "thumbnailRoot",
        "downloadRoot",
        "volumeViewerDataRoot",
        "xAxis",
        "yAxis",
        "groupBy",
        "colorBy",
        "featuresDisplayOrder",
        "featuresDataOrder"
    ]
}

JSON Schema for Megaset Card

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "megaset-card.schema.json",
    "title": "Megaset Card",
    "description": "Data needed to render a megaset card",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "datasets": {
            "$ref": "definitions.schema.json#/definitions/processed-datasets"
        },
        "dateCreated": {
            "$ref": "definitions.schema.json#/definitions/processed-dateCreated"
        },
        "name": {
            "$ref": "definitions.schema.json#/definitions/name"
        },
        "production": {
            "$ref": "definitions.schema.json#/definitions/production"
        },
        "title": {
            "$ref": "definitions.schema.json#/definitions/group-title"
        },
        "publications": {
            "title": "Publications",
            "description": "Publications associated with the group",
            "type": "array",
            "items": {
                "$ref": "definitions.schema.json#/definitions/publication"
            }
        }
    },
    "required": [
        "datasets",
        "dateCreated",
        "name",
        "production",
        "title"
    ]
}

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 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"
            }
        }
    }
}