{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Data Package",
    "type": "object",
    "required": ["resources"],
    "properties": {
        "$schema": {
            "default": "https://datapackage.org/profiles/1.0/datapackage.json",
            "propertyOrder": 10,
            "title": "Profile",
            "type": "string"
        },
        "name": {
            "propertyOrder": 20,
            "title": "Name",
            "type": "string"
        },
        "id": {
            "propertyOrder": 30,
            "title": "ID",
            "type": "string"
        },
        "title": {
            "propertyOrder": 40,
            "title": "Title",
            "type": "string"
        },
        "description": {
            "propertyOrder": 50,
            "format": "textarea",
            "title": "Description",
            "type": "string"
        },
        "homepage": {
            "propertyOrder": 60,
            "title": "Home Page",
            "type": "string",
            "format": "uri"
        },
        "version": {
            "propertyOrder": 65,
            "title": "Version",
            "type": "string"
        },
        "created": {
            "propertyOrder": 70,
            "title": "Created",
            "type": "string",
            "format": "date-time"
        },
        "contributors": {
            "propertyOrder": 80,
            "title": "Contributors",
            "type": "array",
            "minItems": 1,
            "items": {
                "title": "Contributor",
                "properties": {
                    "title": {
                        "title": "Title",
                        "type": "string"
                    },
                    "path": {
                        "title": "Path",
                        "type": "string",
                        "pattern": "^((?=[^./~])(?!file:)((?!\\/\\.\\.\\/)(?!\\\\)(?!:\\/\\/).)*|(http|ftp)s?:\\/\\/.*)$"
                    },
                    "email": {
                        "title": "Email",
                        "type": "string",
                        "format": "email"
                    },
                    "givenName": {
                        "type": "string"
                    },
                    "familyName": {
                        "type": "string"
                    },
                    "organization": {
                        "title": "Organization",
                        "type": "string"
                    },
                    "roles": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                            "type": "string"
                        }
                    }
                },
                "minProperties": 1
            }
        },
        "keywords": {
            "propertyOrder": 90,
            "title": "Keywords",
            "type": "array",
            "minItems": 1,
            "items": {
                "type": "string"
            }
        },
        "image": {
            "propertyOrder": 100,
            "title": "Image",
            "type": "string"
        },
        "licenses": {
            "propertyOrder": 110,
            "title": "Licenses",
            "type": "array",
            "minItems": 1,
            "items": {
                "title": "License",
                "type": "object",
                "anyOf": [
                    {
                        "required": ["name"]
                    },
                    {
                        "required": ["path"]
                    }
                ],
                "properties": {
                    "name": {
                        "title": "Open Definition license identifier",
                        "type": "string",
                        "pattern": "^([-a-zA-Z0-9._])+$"
                    },
                    "path": {
                        "title": "Path",
                        "type": "string",
                        "pattern": "^((?=[^./~])(?!file:)((?!\\/\\.\\.\\/)(?!\\\\)(?!:\\/\\/).)*|(http|ftp)s?:\\/\\/.*)$"
                    },
                    "title": {
                        "title": "Title",
                        "type": "string"
                    }
                }
            }
        },
        "resources": {
            "propertyOrder": 120,
            "title": "Data Resources",
            "type": "array",
            "minItems": 1,
            "items": {
                "title": "Data Resource",
                "type": "object",
                "oneOf": [
                    {
                        "required": ["name", "data"]
                    },
                    {
                        "required": ["name", "path"]
                    }
                ],
                "properties": {
                    "$schema": {
                        "default": "https://datapackage.org/profiles/1.0/dataresource.json",
                        "propertyOrder": 10,
                        "title": "Profile",
                        "type": "string"
                    },
                    "name": {
                        "propertyOrder": 20,
                        "title": "Name",
                        "type": "string"
                    },
                    "path": {
                        "propertyOrder": 30,
                        "title": "Path",
                        "oneOf": [
                            {
                                "title": "Path",
                                "type": "string",
                                "pattern": "^((?=[^./~])(?!file:)((?!\\/\\.\\.\\/)(?!\\\\)(?!:\\/\\/).)*|(http|ftp)s?:\\/\\/.*)$"
                            },
                            {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                    "title": "Path",
                                    "type": "string",
                                    "pattern": "^((?=[^./~])(?!file:)((?!\\/\\.\\.\\/)(?!\\\\)(?!:\\/\\/).)*|(http|ftp)s?:\\/\\/.*)$"
                                }
                            }
                        ]
                    },
                    "data": {
                        "propertyOrder": 230,
                        "title": "Data"
                    },
                    "type": {
                        "propertyOrder": 235,
                        "type": "string",
                        "enum": ["table"]
                    },
                    "title": {
                        "title": "Title",
                        "type": "string",
                        "propertyOrder": 50
                    },
                    "description": {
                        "propertyOrder": 60,
                        "format": "textarea",
                        "title": "Description",
                        "type": "string"
                    },
                    "homepage": {
                        "propertyOrder": 70,
                        "title": "Home Page",
                        "type": "string",
                        "format": "uri"
                    },
                    "sources": {
                        "propertyOrder": 140,
                        "options": {
                            "hidden": true
                        },
                        "title": "Sources",
                        "type": "array",
                        "minItems": 0,
                        "items": {
                            "title": "Source",
                            "type": "object",
                            "minProperties": 1,
                            "properties": {
                                "title": {
                                    "title": "Title",
                                    "type": "string"
                                },
                                "path": {
                                    "title": "Path",
                                    "type": "string",
                                    "pattern": "^((?=[^./~])(?!file:)((?!\\/\\.\\.\\/)(?!\\\\)(?!:\\/\\/).)*|(http|ftp)s?:\\/\\/.*)$"
                                },
                                "email": {
                                    "title": "Email",
                                    "type": "string",
                                    "format": "email"
                                },
                                "version": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "licenses": {
                        "propertyOrder": 150,
                        "options": {
                            "hidden": true
                        },
                        "title": "Licenses",
                        "type": "array",
                        "minItems": 1,
                        "items": {
                            "title": "License",
                            "type": "object",
                            "anyOf": [
                                {
                                    "required": ["name"]
                                },
                                {
                                    "required": ["path"]
                                }
                            ],
                            "properties": {
                                "name": {
                                    "title": "Open Definition license identifier",
                                    "type": "string",
                                    "pattern": "^([-a-zA-Z0-9._])+$"
                                },
                                "path": {
                                    "title": "Path",
                                    "type": "string",
                                    "pattern": "^((?=[^./~])(?!file:)((?!\\/\\.\\.\\/)(?!\\\\)(?!:\\/\\/).)*|(http|ftp)s?:\\/\\/.*)$"
                                },
                                "title": {
                                    "title": "Title",
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "format": {
                        "propertyOrder": 80,
                        "title": "Format",
                        "type": "string"
                    },
                    "mediatype": {
                        "propertyOrder": 90,
                        "title": "Media Type",
                        "type": "string",
                        "pattern": "^(.+)/(.+)$"
                    },
                    "encoding": {
                        "propertyOrder": 100,
                        "title": "Encoding",
                        "type": "string",
                        "default": "utf-8"
                    },
                    "bytes": {
                        "propertyOrder": 110,
                        "options": {
                            "hidden": true
                        },
                        "title": "Bytes",
                        "type": "integer"
                    },
                    "hash": {
                        "propertyOrder": 120,
                        "options": {
                            "hidden": true
                        },
                        "title": "Hash",
                        "type": "string",
                        "pattern": "^([^:]+:[a-fA-F0-9]+|[a-fA-F0-9]{32}|)$"
                    },
                    "dialect": {
                        "propertyOrder": 130,
                        "title": "Table Dialect",
                        "type": "object",
                        "properties": {
                            "$schema": {
                                "default": "https://datapackage.org/profiles/1.0/tabledialect.json",
                                "propertyOrder": 10,
                                "title": "Profile",
                                "type": "string"
                            },
                            "header": {
                                "title": "Header",
                                "type": "boolean",
                                "default": true
                            },
                            "headerRows": {
                                "type": "array",
                                "default": [1],
                                "items": {
                                    "type": "integer",
                                    "minimum": 1
                                }
                            },
                            "headerJoin": {
                                "type": "string",
                                "default": " "
                            },
                            "commentRows": {
                                "type": "array",
                                "default": [1],
                                "items": {
                                    "type": "integer",
                                    "minimum": 1
                                }
                            },
                            "commentChar": {
                                "title": "Comment Character",
                                "type": "string"
                            },
                            "delimiter": {
                                "title": "Delimiter",
                                "type": "string",
                                "default": ","
                            },
                            "lineTerminator": {
                                "title": "Line Terminator",
                                "type": "string",
                                "default": "\r\n"
                            },
                            "quoteChar": {
                                "title": "Quote Character",
                                "type": "string",
                                "default": "\""
                            },
                            "doubleQuote": {
                                "title": "Double Quote",
                                "type": "boolean",
                                "default": true
                            },
                            "escapeChar": {
                                "title": "Escape Character",
                                "type": "string"
                            },
                            "nullSequence": {
                                "title": "Null Sequence",
                                "type": "string"
                            },
                            "skipInitialSpace": {
                                "title": "Skip Initial Space",
                                "type": "boolean",
                                "default": false
                            },
                            "property": {
                                "type": "string"
                            },
                            "itemType": {
                                "type": "string",
                                "enum": ["array", "object"]
                            },
                            "itemKeys": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "sheetNumber": {
                                "type": "integer",
                                "minimum": 1
                            },
                            "sheetName": {
                                "type": "string"
                            },
                            "table": {
                                "type": "string"
                            }
                        }
                    },
                    "schema": {
                        "propertyOrder": 140,
                        "title": "Table Schema",
                        "type": ["string", "object"],
                        "required": ["fields"],
                        "properties": {
                            "$schema": {
                                "default": "https://datapackage.org/profiles/1.0/tableschema.json",
                                "propertyOrder": 10,
                                "title": "Profile",
                                "type": "string"
                            },
                            "fields": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                    "title": "Table Schema Field",
                                    "type": "object",
                                    "oneOf": [
                                        {
                                            "type": "object",
                                            "title": "String Field",
                                            "required": ["name"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "categories": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ]
                                                },
                                                "categoriesOrdered": {
                                                    "type": "boolean"
                                                },
                                                "type": {
                                                    "enum": ["string"]
                                                },
                                                "format": {
                                                    "enum": ["default", "email", "uri", "binary", "uuid"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "pattern": {
                                                            "type": "string"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true,
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "minLength": {
                                                            "type": "integer"
                                                        },
                                                        "maxLength": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Number Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["number"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "bareNumber": {
                                                    "type": "boolean",
                                                    "title": "bareNumber",
                                                    "default": true
                                                },
                                                "groupChar": {
                                                    "type": "string",
                                                    "title": "groupChar"
                                                },
                                                "decimalChar": {
                                                    "type": "string"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "number"
                                                                    }
                                                                }
                                                            ]
                                                        },
                                                        "minimum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "number"
                                                                }
                                                            ]
                                                        },
                                                        "maximum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "number"
                                                                }
                                                            ]
                                                        },
                                                        "exclusiveMinimum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "number"
                                                                }
                                                            ]
                                                        },
                                                        "exclusiveMaximum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "number"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Integer Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "categories": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "integer"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ]
                                                },
                                                "categoriesOrdered": {
                                                    "type": "boolean"
                                                },
                                                "type": {
                                                    "enum": ["integer"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "bareNumber": {
                                                    "type": "boolean",
                                                    "title": "bareNumber",
                                                    "default": true
                                                },
                                                "groupChar": {
                                                    "type": "string",
                                                    "title": "groupChar"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "integer"
                                                                    }
                                                                }
                                                            ]
                                                        },
                                                        "minimum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        },
                                                        "maximum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        },
                                                        "exclusiveMinimum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        },
                                                        "exclusiveMaximum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Date Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["date"]
                                                },
                                                "format": {
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true,
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "minimum": {
                                                            "type": "string"
                                                        },
                                                        "maximum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMinimum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMaximum": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Time Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["time"]
                                                },
                                                "format": {
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true,
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "minimum": {
                                                            "type": "string"
                                                        },
                                                        "maximum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMinimum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMaximum": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Date Time Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["datetime"]
                                                },
                                                "format": {
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true,
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "minimum": {
                                                            "type": "string"
                                                        },
                                                        "maximum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMinimum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMaximum": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Year Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["year"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "integer"
                                                                    }
                                                                }
                                                            ]
                                                        },
                                                        "minimum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        },
                                                        "maximum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        },
                                                        "exclusiveMinimum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        },
                                                        "exclusiveMaximum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "string"
                                                                },
                                                                {
                                                                    "type": "integer"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Year Month Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["yearmonth"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true,
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "minimum": {
                                                            "type": "string"
                                                        },
                                                        "maximum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMinimum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMaximum": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Boolean Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["boolean"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "trueValues": {
                                                    "type": "array",
                                                    "minItems": 1,
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "default": ["true", "True", "TRUE", "1"]
                                                },
                                                "falseValues": {
                                                    "type": "array",
                                                    "minItems": 1,
                                                    "items": {
                                                        "type": "string"
                                                    },
                                                    "default": ["false", "False", "FALSE", "0"]
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true,
                                                            "items": {
                                                                "type": "boolean"
                                                            }
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Object Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["object"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "object"
                                                                    }
                                                                }
                                                            ]
                                                        },
                                                        "minLength": {
                                                            "type": "integer"
                                                        },
                                                        "maxLength": {
                                                            "type": "integer"
                                                        },
                                                        "jsonSchema": {
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "GeoPoint Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["geopoint"]
                                                },
                                                "format": {
                                                    "notes": [
                                                        "Implementations `MUST` strip all white space in the default format of `lon, lat`."
                                                    ],
                                                    "enum": ["default", "array", "object"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "array"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "object"
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "GeoJSON Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["geojson"]
                                                },
                                                "format": {
                                                    "enum": ["default", "topojson"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "object"
                                                                    }
                                                                }
                                                            ]
                                                        },
                                                        "minLength": {
                                                            "type": "integer"
                                                        },
                                                        "maxLength": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Array Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["array"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "oneOf": [
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "string"
                                                                    }
                                                                },
                                                                {
                                                                    "type": "array",
                                                                    "minItems": 1,
                                                                    "uniqueItems": true,
                                                                    "items": {
                                                                        "type": "array"
                                                                    }
                                                                }
                                                            ]
                                                        },
                                                        "minLength": {
                                                            "type": "integer"
                                                        },
                                                        "maxLength": {
                                                            "type": "integer"
                                                        },
                                                        "jsonSchema": {
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Duration Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["duration"]
                                                },
                                                "format": {
                                                    "enum": ["default"],
                                                    "default": "default"
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true,
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "minimum": {
                                                            "type": "string"
                                                        },
                                                        "maximum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMinimum": {
                                                            "type": "string"
                                                        },
                                                        "exclusiveMaximum": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        {
                                            "type": "object",
                                            "title": "Any Field",
                                            "required": ["name", "type"],
                                            "properties": {
                                                "name": {
                                                    "title": "Name",
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "title": "Title",
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "title": "Description",
                                                    "type": "string"
                                                },
                                                "example": {
                                                    "title": "Example",
                                                    "type": "string"
                                                },
                                                "missingValues": {
                                                    "anyOf": [
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "object",
                                                                "required": ["value"],
                                                                "properties": {
                                                                    "value": {
                                                                        "type": "string"
                                                                    },
                                                                    "label": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    ],
                                                    "default": [""]
                                                },
                                                "type": {
                                                    "enum": ["any"]
                                                },
                                                "constraints": {
                                                    "title": "Constraints",
                                                    "type": "object",
                                                    "properties": {
                                                        "required": {
                                                            "type": "boolean"
                                                        },
                                                        "unique": {
                                                            "type": "boolean"
                                                        },
                                                        "enum": {
                                                            "type": "array",
                                                            "minItems": 1,
                                                            "uniqueItems": true
                                                        }
                                                    }
                                                },
                                                "rdfType": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    ]
                                }
                            },
                            "fieldsMatch": {
                                "type": "array",
                                "item": {
                                    "type": "string",
                                    "enum": ["exact", "equal", "subset", "superset", "partial"],
                                    "default": "exact"
                                }
                            },
                            "primaryKey": {
                                "oneOf": [
                                    {
                                        "type": "array",
                                        "minItems": 1,
                                        "uniqueItems": true,
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    {
                                        "type": "string"
                                    }
                                ]
                            },
                            "uniqueKeys": {
                                "type": "array",
                                "minItems": 1,
                                "uniqueItems": true,
                                "items": {
                                    "type": "array",
                                    "minItems": 1,
                                    "uniqueItems": true,
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "foreignKeys": {
                                "type": "array",
                                "minItems": 1,
                                "items": {
                                    "title": "Table Schema Foreign Key",
                                    "type": "object",
                                    "required": ["fields", "reference"],
                                    "oneOf": [
                                        {
                                            "properties": {
                                                "fields": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "minItems": 1,
                                                        "uniqueItems": true
                                                    }
                                                },
                                                "reference": {
                                                    "type": "object",
                                                    "required": ["fields"],
                                                    "properties": {
                                                        "resource": {
                                                            "type": "string"
                                                        },
                                                        "fields": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "string"
                                                            },
                                                            "minItems": 1,
                                                            "uniqueItems": true
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "properties": {
                                                "fields": {
                                                    "type": "string"
                                                },
                                                "reference": {
                                                    "type": "object",
                                                    "required": ["fields"],
                                                    "properties": {
                                                        "resource": {
                                                            "type": "string"
                                                        },
                                                        "fields": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    ]
                                }
                            },
                            "missingValues": {
                                "anyOf": [
                                    {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "required": ["value"],
                                            "properties": {
                                                "value": {
                                                    "type": "string"
                                                },
                                                "label": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                ],
                                "default": [""]
                            }
                        }
                    }
                }
            }
        },
        "sources": {
            "propertyOrder": 200,
            "options": {
                "hidden": true
            },
            "title": "Sources",
            "type": "array",
            "minItems": 0,
            "items": {
                "title": "Source",
                "type": "object",
                "minProperties": 1,
                "properties": {
                    "title": {
                        "title": "Title",
                        "type": "string"
                    },
                    "path": {
                        "title": "Path",
                        "type": "string",
                        "pattern": "^((?=[^./~])(?!file:)((?!\\/\\.\\.\\/)(?!\\\\)(?!:\\/\\/).)*|(http|ftp)s?:\\/\\/.*)$"
                    },
                    "email": {
                        "title": "Email",
                        "type": "string",
                        "format": "email"
                    },
                    "version": {
                        "type": "string"
                    }
                }
            }
        }
    }
}
