{
  "$ref": "#/definitions/WorkspaceConfig",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "Build": {
      "additionalProperties": false,
      "description": "Build configuration.",
      "properties": {
        "moduleNameTemplate": {
          "default": "mn_{projectName}",
          "description": "Module name template.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Certificate": {
      "additionalProperties": false,
      "description": "Certificate configuration.",
      "properties": {
        "pfx": {
          "description": "Path to the certificate file in pfx format.",
          "type": "string"
        },
        "pfxPassword": {
          "description": "Password of the certificate.",
          "type": "string"
        },
        "selfSigned": {
          "description": "Use a self signed certificate.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "Deploy": {
      "additionalProperties": false,
      "description": "Deployment configuration.",
      "properties": {
        "solutionUniqueName": {
          "description": "Unique name of the solution to deploy to.",
          "type": "string"
        },
        "webResourceNameTemplate": {
          "default": "{{editorName}}_/js/{{projectName}}.js",
          "description": "Template for the web resource name. The template will be formatted with the following parameters:\n- {editorName}: Editor prefix (without the _).\n- {projectName}: Project name.",
          "type": "string"
        }
      },
      "required": [
        "solutionUniqueName",
        "webResourceNameTemplate"
      ],
      "type": "object"
    },
    "Serve": {
      "additionalProperties": false,
      "description": "Serve configuration.",
      "properties": {
        "certificate": {
          "$ref": "#/definitions/Certificate",
          "description": "Certificate to use for https."
        },
        "https": {
          "description": "Https mode.",
          "type": "boolean"
        },
        "port": {
          "default": 12357,
          "description": "Port to serve on.",
          "type": "number"
        }
      },
      "type": "object"
    },
    "WorkspaceConfig": {
      "additionalProperties": false,
      "properties": {
        "$schema": {
          "type": "string"
        },
        "build": {
          "$ref": "#/definitions/Build",
          "description": "Build configuration."
        },
        "deploy": {
          "$ref": "#/definitions/Deploy",
          "description": "Deployment configuration."
        },
        "distDir": {
          "description": "Directory of the build output.",
          "type": "string"
        },
        "environment": {
          "description": "Name of the Power Apps / D365 environment stored in `primno.env.json`.",
          "type": "string"
        },
        "name": {
          "description": "Name of the project.",
          "type": "string"
        },
        "serve": {
          "$ref": "#/definitions/Serve",
          "description": "Serve configuration."
        },
        "sourceRoot": {
          "description": "Root directory of the source code.",
          "type": "string"
        },
        "version": {
          "description": "Version of the project.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "version",
        "sourceRoot",
        "environment",
        "distDir"
      ],
      "type": "object"
    }
  }
}