{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Schema for Modeling Hub model metadata",
    "description": "This is the schema for model metadata files, please refer to https://github.com/covid19-forecast-hub-europe/covid19-forecast-hub-europe/wiki/Metadata for more information.",
    "type": "object",
    "properties": {
        "team_name": {
            "description": "The name of the team submitting the model",
            "type": "string"
        },
        "team_abbr": {
            "description": "Abbreviated name of the team submitting the model",
            "type": "string",
            "pattern": "^[a-zA-Z0-9_+]+$",
            "maxLength": 16
        },
        "model_name": {
            "description": "The name of the model",
            "type": "string"
        },
        "model_abbr": {
            "description": "Abbreviated name of the model",
            "type": "string",
            "pattern": "^[a-zA-Z0-9_+]+$",
            "maxLength": 16
        },
        "model_version": {
            "description": "Identifier of the version of the model",
            "type": "string"
        },
        "model_contributors": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "affiliation": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string",
                        "format": "email"
                    },
                    "orcid": {
                        "type": "string",
                        "pattern": "^\\d{4}\\-\\d{4}\\-\\d{4}\\-[\\dX]{4}$"
                    }
                },
                "additionalProperties": false,
                "required": ["name", "affiliation", "email"]
            }
        },
        "website_url": {
            "description": "Public facing website for the model",
            "type": "string",
            "format": "uri"
        },
        "repo_url": {
            "description": "Repository containing code for the model",
            "type": "string",
            "format": "uri"
        },
        "license": {
            "description": "License for use of model output data",
            "type": "string",
            "enum": [
                "CC0-1.0",
                "CC-BY-4.0",
                "CC-BY_SA-4.0",
                "PPDL",
                "ODC-by",
                "ODbL",
                "OGL-3.0"
            ]
        },
        "designated_model": {
            "description": "Team-specified indicator for whether the model should be eligible for inclusion in a Hub ensemble and public visualization. A team may designate up to two models.",
            "type": "boolean"
        },
        "citation": {
            "description": "One or more citations for this model",
            "type": "string",
            "examples": ["Gibson GC , Reich NG , Sheldon D. Real-time mechanistic bayesian forecasts of Covid-19 mortality. medRxiv. 2020. https://doi.org/10.1101/2020.12.22.20248736"]
        },
        "team_funding": {
            "description": "Any information about funding source for the team or members of the team.",
            "type": "string",
            "examples": ["National Institutes of General Medical Sciences (R01GM123456). The content is solely the responsibility of the authors and does not necessarily represent the official views of NIGMS."]
        },
        "data_inputs": {
            "description": "List or description of data inputs used by the model",
            "type": "string"
        },
        "methods": {
            "description": "A brief (200 char.) description of the methods used by this model",
            "type": "string",
            "maxLength": 200
        },
        "methods_long": {
            "description": "A full description of the methods used by this model. Among other details, this should include whether spatial correlation is considered and how the model accounts for uncertainty.",
            "type": "string"
        },
        "ensemble_of_models": {
            "description": "Indicator for whether this model is an ensemble of any separate component models",
            "type": "boolean"
        },
        "ensemble_of_hub_models": {
            "description": "Indicator for whether this model is an ensemble specifically of other models submitted to this Hub",
            "type": "boolean"
        }
    },
    "additionalProperties": true,
    "required": [
        "team_name",
        "team_abbr",
        "model_name",
        "model_abbr",
        "model_contributors",
        "license",
        "data_inputs",
        "methods",
        "methods_long",
        "ensemble_of_models",
        "ensemble_of_hub_models"
    ]
}
