{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "Common Core Metadata Schema",
    "id": "http://project-open-data.github.io/schema#",
    "properties": {
        "PrimaryITInvestmentUII": {
            "type": "string"
        },
        "accessLevel": {
            "enum": [
                "public",
                "restricted public",
                "non-public"
            ]
        },
        "accessLevelComment": {
            "type": "string"
        },
        "accrualPeriodicity": {
            "enum": [
                "Annual",
                "Bimonthly",
                "Semiweekly",
                "Daily",
                "Biweekly",
                "Semiannual",
                "Biennial",
                "Triennial",
                "Three times a week",
                "Three times a month",
                "Continuously updated",
                "Monthly",
                "Quarterly",
                "Semimonthly",
                "Three times a year",
                "Weekly",
                "Completely irregular"
            ]
        },
        "bureauCode": {
            "items": {
                "pattern": "[0-9]{3}:[0-9]{2}",
                "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        },
        "contactPoint": {
            "type": "string"
        },
        "dataDictionary": {
            "_format": "uri",
            "type": "string"
        },
        "dataQuality": {
            "type": "boolean"
        },
        "description": {
            "type": "string"
        },
        "distribution": {
            "items": {
                "properties": {
                    "accessURL": {
                        "_format": "uri",
                        "type": "string"
                    },
                    "format": {
                        "pattern": "^[-a-fA-F0-9]+/[-a-fA-F0-9]+([+][-a-fA-F0-9]+)?$",
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        },
        "identifier": {
            "pattern": "[0-9a-fA-F]+",
            "type": "string"
        },
        "issued": {
            "_format": "date-time",
            "type": "string"
        },
        "keyword": {
            "items": {
                "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        },
        "landingPage": {
            "_format": "uri",
            "type": "string"
        },
        "language": {
            "items": {
                "pattern": "^[a-zA-Z]+(-[a-zA-Z]+)*$",
                "type": "string"
            },
            "type": "array"
        },
        "license": {
            "type": "string"
        },
        "mbox": {
            "_format": "email",
            "type": "string"
        },
        "modified": {
            "_format": "date-time",
            "type": "string"
        },
        "programCode": {
            "items": {
                "pattern": "[0-9]{3}:[0-9]{3}",
                "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        },
        "publisher": {
            "type": "string"
        },
        "references": {
            "items": {
                "_format": "uri",
                "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        },
        "spatial": {
            "type": "string"
        },
        "systemOfRecords": {
            "type": "string"
        },
        "temporal": {
            "type": "array"
        },
        "theme": {
            "items": {
                "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        },
        "title": {
            "type": "string"
        },
        "webService": {
            "_format": "uri",
            "type": "string"
        }
    },
    "required": [
        "title",
        "description",
        "keyword",
        "modified",
        "publisher",
        "contactPoint",
        "mbox",
        "identifier",
        "accessLevel"
    ],
    "type": "object"
}