{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "NBK Configuration Schema",
  "description": "Schema for nbk.config.json configuration file",
  "type": "object",
  "required": [
    "projects",
    "b2fPortal",
    "checkCrossProjectImports"
  ],
  "properties": {
    "projects": {
      "type": "array",
      "description": "Array of projects to manage. Each project can have multiple sections like masterPanel, adminPanel, staffPanel, and webApp.",
      "items": {
        "type": "object",
        "required": [
          "projectName",
          "projectBaseDirPath",
          "sections"
        ],
        "properties": {
          "projectName": {
            "type": "string",
            "description": "Name of the project (e.g., 'demo_project')"
          },
          "projectBaseDirPath": {
            "type": "string",
            "description": "Base directory path for the project relative to the config file"
          },
          "sharedBackendPath": {
            "type": "string",
            "description": "Path to shared backend code, relative to the project root (e.g., '../../shared_one/backend')"
          },
          "sections": {
            "type": "array",
            "description": "Array of project sections. Each section represents a different part of your application (e.g., masterPanel, adminPanel, staffPanel, webApp)",
            "items": {
              "type": "object",
              "required": [
                "sectionName",
                "repository",
                "localPath",
                "isZodCreator"
              ],
              "properties": {
                "sectionName": {
                  "type": "string",
                  "description": "Name of the section (e.g., 'masterPanel', 'adminPanel', 'staffPanel', 'webApp')"
                },
                "repository": {
                  "type": "object",
                  "required": [
                    "name",
                    "path"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Repository name (e.g., 'demo_project_master_panel')"
                    },
                    "path": {
                      "type": "string",
                      "description": "Repository path relative to the project root (e.g., '../../demo_project/master_panel')"
                    }
                  }
                },
                "localPath": {
                  "type": "string",
                  "description": "Local path where the section code is located relative to the project root (e.g., 'masterPanel')"
                },
                "isZodCreator": {
                  "type": "boolean",
                  "description": "Whether this section uses Zod for validation. Set to true if the section uses Zod schemas."
                },
                "needNextJsPatch": {
                  "type": "boolean",
                  "description": "Whether this section needs Next.js patch. Only required for Next.js projects."
                }
              }
            }
          }
        }
      }
    },
    "b2fPortal": {
      "type": "boolean",
      "description": "Whether this is a B2F (Business-to-Frontend) portal project. Set to true if your project is a B2F portal."
    },
    "checkCrossProjectImports": {
      "type": "boolean",
      "description": "Whether to check for cross-project imports. Set to true to enable validation of imports between different project sections."
    }
  }
}