{
   "$schema": "http://json-schema.org/draft-04/schema#",
   "title": "Qt Creator workspace project definition",
   "description": "A Qt Creator workspace project definition",
   "type": "object",
   "properties": {
       "project.name": {
           "type": "string",
           "description": "The name of the project"
       },
       "files.exclude": {
           "type": "array",
           "items": [
               {
                   "type": "string"
               }
           ],
           "description": "Files to exclude from the project"
       },
       "targets": {
           "type": "array",
           "description": "A list of targets",
           "items": [
               {
                   "type": "object",
                   "properties": {
                       "arguments": {
                           "type": "array",
                           "items": [
                               {
                                   "type": "string"
                               }
                           ],
                           "description": "Arguments to pass to the executable"
                       },
                       "executable": {
                           "type": "string",
                           "description": "The executable to run"
                       },
                       "name": {
                           "type": "string",
                           "description": "The name of the target"
                       },
                       "workingDirectory": {
                           "type": "string",
                           "description": "The working directory to run the executable in"
                       }
                   },
                   "required": [
                       "executable",
                       "name"
                   ]
               }
           ]
       },
       "build.configuration": {
           "type": "array",
           "description": "A list of build configurations",
           "items": [
               {
                   "type": "object",
                   "properties": {
                       "steps": {
                           "type": "array",
                           "items": [
                               {
                                   "type": "object",
                                   "properties": {
                                       "arguments": {
                                           "type": "array",
                                           "items": [
                                               {
                                                   "type": "string"
                                               }
                                           ],
                                           "description": "Arguments to pass to the executable"
                                       },
                                       "executable": {
                                           "type": "string",
                                           "description": "The executable to run"
                                       },
                                       "workingDirectory": {
                                           "type": "string",
                                           "description": "The working directory to run the executable in"
                                       }
                                   },
                                   "required": [
                                       "executable"
                                   ]
                               }
                           ],
                           "description": "The steps required for the build"
                       },
                       "name": {
                           "type": "string",
                           "description": "The name of the build configuration"
                       },
                       "buildDirectory": {
                           "type": "string",
                           "description": "The directory to build the project in"
                       }
                   },
                   "required": [
                       "steps",
                       "name"
                   ]
               }
           ]
       }
   }
}