{
  "title": "Q# project manifest",
  "type": "object",
  "properties": {
    "author": {
      "title": "Author",
      "type": "string"
    },
    "license": {
      "title": "License",
      "type": "string"
    },
    "languageFeatures": {
      "title": "Language features",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "packageType": {
      "title": "Package type",
      "type": "string",
      "enum": ["exe", "lib"]
    },
    "lints": {
      "title": "Lints",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "lint": {
            "type": "string",
            "enum": [
              "divisionByZero",
              "needlessParens",
              "redundantSemicolons",
              "deprecatedNewtype",
              "deprecatedSet",
              "discourageChainAssignment",
              "needlessOperation",
              "deprecatedFunctionConstructor",
              "deprecatedWithOperator",
              "deprecatedDoubleColonOperator"
            ]
          },
          "level": {
            "type": "string",
            "enum": ["allow", "warn", "error"]
          }
        }
      }
    },
    "dependencies": {
      "title": "Dependencies",
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              }
            },
            "required": ["path"],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "github": {
                "type": "object",
                "properties": {
                  "owner": {
                    "type": "string"
                  },
                  "repo": {
                    "type": "string"
                  },
                  "ref": {
                    "type": "string"
                  },
                  "path": {
                    "type": "string"
                  }
                },
                "required": ["owner", "repo", "ref"],
                "additionalProperties": false
              }
            },
            "required": ["github"],
            "additionalProperties": false
          }
        ]
      }
    }
  },
  "files": {
    "type": "array",
    "items": {
      "type": "string"
    }
  }
}
