text: /**
  	@overview Schema for validating JSON produced by JSDoc Toolkit.
  	@author Michael Mathews <micmath@gmail.com>
  	@license Apache License 2.0 - See file 'LICENSE.md' in this project.
  	@see <http://tools.ietf.org/html/draft-zyp-json-schema-02>
   */
  
  exports.jsdocSchema = {
     "properties": {
          "doc": {
              "type": "array",
              "items": {
                  "type": "object",
  				"additionalProperties": false,
                  "properties": {
                  	"author": {
                          "type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "path": { // unique identifier for each doc
                          "type": "string",
                          "maxItems": 1
                      },
                      "description": { // a description
                          "type": "string",
                          "optional": true,
                          "maxItems": 1
                      },
                      "classdesc": { // a description of the class that this constructor belongs to
                          "type": "string",
                          "optional": true,
                          "maxItems": 1
                      },
                      "name": { // probably a trailing substring of the path
                          "type": "string",
                          "maxItems": 1
                      },
                      "version": { // what is the version of this doc
                          "type": "string",
                          "optional": true,
                          "maxItems": 1
                      },
                      "since": { // at what previous version was this doc added?
                          "type": "string",
                          "optional": true,
                          "maxItems": 1
                      },
                      "see": { // some thing else to consider
                          "type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
  					"deprecated": { // is usage of this symbol deprecated?
  						"type": ["string", "boolean"],
  						"optional": true
  					},
                      "scope": { // how is this symbol attached to it's enclosing scope?
                          "type": "string",
                          "maxItems": 1,
                          "enum": ["global", "static", "instance", "inner"]
                      },
                      "memberof": { // probably a leading substring of the path
                          "type": "string",
                          "optional": true,
                          "maxItems": 1
                      },
                      "extends": { // the path to another constructor
                          "type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "fires": { // the path to another doc object
                          "type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "requires": { // the symbol being documented requires another symbol
                          "type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "implements": {
                      	"type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "kind": { // what kind of symbol is this?
                          "type": "string",
                          "maxItems": 1,
                          "enum": ["constructor", "module", "event", "namespace", "method", "property", "enum", "class", "interface", "constant", "mixin", "file", "version"]
                      },
                      "refersto": { // the path to another doc: this doc is simply a renamed alias to that
                          "type": "string",
                          "optional": true,
                          "maxItems": 1
                      },
                      "access": { // what access priviledges are allowed
                          "type": "string",
                          "optional": true,
                          "maxItems": 1,
                          "enum": ["private", "protected", "public"]
                      },
                      "attrib": { // other attributes, like "readonly"
                          "type": "string",
                          "optional": true
                      },
                      "type": { // what type is the value that this doc is associated with, like "number"
                          "type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "exception" : {
                      	"optional": true,
                      	"type": "object",
  						"properties": {
  							"type": { // what is the type of the value thrown?
  								"type": "array",
  								"optional": true,
  								"items": {
  									"type": "string"
  								}
  							},
  							"description": { // a description of the thrown value
  								"type": "string",
  								"optional": true
  							}
  						},
  						"additionalProperties": false
                      },
                      "returns" : {
                      	"optional": true,
                      	"type": "object",
  						"properties": {
  							"type": { // what is the type of the value returned?
  								"type": ["string", "array"],
  								"optional": true,
  								"items": {
  									"type": "string"
  								}
  							},
  							"description": { // a description of the returned value
  								"type": "string",
  								"optional": true
  							}
  						},
  						"additionalProperties": false
                      },
                      "param" : { // are there function parameters associated with this doc?
                          "type": "array",
                          "optional": true,
                          "items": {
                              "type": "object",
                              "properties": {
                                  "type": { // what are the types of value expected for this parameter?
                                      "type": ["string", "array"],
                                      "optional": true,
                                      "items": {
                                          "type": "string"
                                      }
                                  },
                                  "optional": { // is a value for this parameter optional?
                                      "type": "boolean",
                                      "optional": true,
                                      "default": true
                                  },
                                  "nullable": { // can the value for this parameter be null?
                                      "type": "boolean",
                                      "optional": true,
                                      "default": true
                                  },
                                  "defaultvalue": { // what is the default value for this parameter?
                                      "type": "string",
                                      "optional": true
                                  },
                                  "name": { // what name does this parameter have within the function?
                                      "type": "string"
                                  },
                                  "description": { // a description of the parameter
                                      "type": "string",
                                      "optional": true
                                  }
                              },
  							"additionalProperties": false
                          }
                      },
                      "thisobj": {
                      	"type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "example": { // some thing else to consider
                          "type": ["string", "array"],
                          "optional": true,
                          "items": {
                              "type": "string"
                          }
                      },
                      "tags": { // arbitrary tags associated with this doc
                          "type": "array",
                          "optional": true,
                          "additionalProperties": false,
                          "items": {
                              "type": "string"
                          }
                      },
                      "meta": { // information about this doc
                          "type": "object",
                          "optional": true,
                          "maxItems": 1,
                          "properties": {
  							"file": { // what is the name of the file this doc appears in?
  								"type": "string",
  								"optional": true,
  								"maxItems": 1
  							},
  							"line": { // on what line of the file does this doc appear?
  								"type": "number",
  								"optional": true,
  								"maxItems": 1
  							}
  						},
  						"additionalProperties": false
                      }
                  }
              }
          },
          "meta": { // information about the generation for all the docs
              "type": "object",
              "optional": true,
              "maxItems": 1,
              "properties": {
  				"project": { // to what project does this doc belong?
  					"type": "object",
  					"optional": true,
  					"maxItems": 1,
  					"properties": {
  						"name": { // the name of the project
  							"type": "string",
  							"maxItems": 1
  						},
  						"uri": { // the URI of the project
  							"type": "string",
  							"maxItems": 1,
  							"format": "uri"
  						},
  						"version": { // the version of the project
  							"type": "string",
  							"maxItems": 1
  						},
  						"lang": { // the programming language used in the project
  							"type": "string",
  							"maxItems": 1
  						}
  					},
  					"additionalProperties": false
  				},
  				"generated": { // some information about the running of the doc generator
  					"type": "object",
  					"optional": true,
  					"maxItems": 1,
  					"properties": {
  						"date": { // on what date and time was the doc generated?
  							"type": "string",
  							"maxItems": 1,
  							"optional": true,
  							"format": "date-time"
  						},
  						"parser": { // what tool was used to generate the doc?
  							"type": "string",
  							"maxItems": 1,
  							"optional": true
  						}
  					},
  					"additionalProperties": false
  				}
  			}
          }
      }
  };