{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": true,
    "definitions": {
        "rangeDependency": {
            "additionalProperties": {
                "type": "string"
            },
            "description": "Dependencies are specified by [author name]/[package name]: [exact version or range]. Range versions look like: [1.0.0 <= v < 2.0.0].",
            "type": "object"
        }
    },
    "properties": {
        "dependencies": {
            "$ref": "#/definitions/rangeDependency",
            "description": "A list of elm dependencies that your package needs."
        },
        "elm-version": {
            "description": "The version of elm your package is targeting",
            "type": "string"
        },
        "exposed-modules": {
            "description": "All modules that your project will make available to end users.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "license": {
            "description": "A license for your package.",
            "type": "string"
        },
        "repository": {
            "description": "The project's github url.",
            "type": "string"
        },
        "source-directories": {
            "description": "A list of directories that will be used to build your project.",
            "items": {
                "type": "string"
            },
            "type": "array"
        },
        "summary": {
            "description": "A helpful summary of your package, less than 80 characters",
            "maxLength": 79,
            "minLength": 1,
            "type": "string"
        },
        "version": {
            "description": "Your package's version in semantic versioning format.",
            "pattern": "\\d+\\.\\d+\\.\\d+",
            "type": "string"
        }
    },
    "required": [
        "repository",
        "source-directories",
        "license",
        "summary",
        "version",
        "elm-version",
        "exposed-modules",
        "dependencies"
    ],
    "title": "JSON schema for elm-package.json configuration files",
    "type": "object"
}