{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "properties": {
    "env": {
      "additionalProperties": false,
      "properties": {
        "env_committed": {
          "type": "boolean"
        },
        "files": {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^\\.env[^/]*$",
            "type": "string"
          },
          "maxItems": 20,
          "type": "array"
        },
        "names": {
          "items": {
            "maxLength": 128,
            "minLength": 1,
            "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
            "type": "string"
          },
          "maxItems": 500,
          "type": "array"
        },
        "truncated": {
          "type": "boolean"
        }
      },
      "required": [
        "names",
        "files",
        "env_committed",
        "truncated"
      ],
      "type": "object"
    },
    "imports": {
      "additionalProperties": false,
      "properties": {
        "files_scanned": {
          "maximum": 5000,
          "minimum": 0,
          "type": "integer"
        },
        "packages": {
          "items": {
            "maxLength": 214,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 500,
          "type": "array"
        },
        "truncated": {
          "type": "boolean"
        }
      },
      "required": [
        "packages",
        "files_scanned",
        "truncated"
      ],
      "type": "object"
    },
    "manifest": {
      "additionalProperties": false,
      "properties": {
        "dependencies": {
          "additionalProperties": false,
          "properties": {
            "dev": {
              "items": {
                "maxLength": 214,
                "minLength": 1,
                "type": "string"
              },
              "maxItems": 300,
              "type": "array"
            },
            "runtime": {
              "items": {
                "maxLength": 214,
                "minLength": 1,
                "type": "string"
              },
              "maxItems": 300,
              "type": "array"
            },
            "truncated": {
              "type": "boolean"
            }
          },
          "required": [
            "runtime",
            "dev",
            "truncated"
          ],
          "type": "object"
        },
        "detection": {
          "enum": [
            "package_json",
            "unsupported"
          ],
          "type": "string"
        },
        "scripts": {
          "additionalProperties": false,
          "properties": {
            "names": {
              "items": {
                "maxLength": 64,
                "minLength": 1,
                "type": "string"
              },
              "maxItems": 100,
              "type": "array"
            },
            "truncated": {
              "type": "boolean"
            }
          },
          "required": [
            "names",
            "truncated"
          ],
          "type": "object"
        }
      },
      "required": [
        "detection",
        "dependencies",
        "scripts"
      ],
      "type": "object"
    },
    "routes": {
      "additionalProperties": false,
      "properties": {
        "detection": {
          "enum": [
            "next",
            "unsupported"
          ],
          "type": "string"
        },
        "items": {
          "items": {
            "maxLength": 256,
            "minLength": 1,
            "pattern": "^(?!\\/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|\\/)\\.\\.(?:\\/|$)).+$",
            "type": "string"
          },
          "maxItems": 500,
          "type": "array"
        },
        "truncated": {
          "type": "boolean"
        }
      },
      "required": [
        "detection",
        "items",
        "truncated"
      ],
      "type": "object"
    },
    "schema": {
      "const": "belld.source-facts",
      "type": "string"
    },
    "scope": {
      "additionalProperties": false,
      "properties": {
        "directory": {
          "maxLength": 1024,
          "minLength": 1,
          "pattern": "^(?:\\.|(?!\\/)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^/]+(?:\\/[^/]+)*)$",
          "type": "string"
        }
      },
      "required": [
        "directory"
      ],
      "type": "object"
    },
    "version": {
      "const": "1.0.0",
      "type": "string"
    }
  },
  "required": [
    "schema",
    "version",
    "scope",
    "manifest",
    "imports",
    "env",
    "routes"
  ],
  "type": "object"
}
