content: [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [project]
  name = "mcbookshelf"
  dynamic = ["version"]
  description = "Scripts for Bookshelf and the GitHub pipeline."
  authors = [{ name = "Bookshelf Contributors", email = "contact@gunivers.net" }]
  license = { text = "MPL-2.0" }
  requires-python = ">=3.12"
  dependencies = [
    "beet>=0.111.0",
    "frozendict>=2.4.6",
    "orjson>=3.11.3",
    "pydantic>=2.11.9",
    "semver>=3.0.4",
  ]
  
  [project.scripts]
  check = "bookshelf.commands.project:check"
  update = "bookshelf.commands.project:update"
  link = "bookshelf.commands.project:link"
  docs = "bookshelf.commands.docs:docs"
  build = "bookshelf.commands.modules:build"
  watch = "bookshelf.commands.modules:watch"
  modules = "bookshelf.commands.modules:modules"
  examples = "bookshelf.commands.examples:examples"
  
  [dependency-groups]
  dev = [
    "click>=8.2.1",
    "httpx>=0.28.1",
    "lectern>=0.34.0",
    "platformdirs>=4.4.0",
    "rich>=14.1.0",
    "watchfiles>=1.1.0",
  ]
  docs = [
    "linkify-it-py>=2.0.3",
    "myst-parser>=4.0.1",
    "pydata-sphinx-theme>=0.16.0",
    "sphinx-autobuild>=2025.8.25",
    "sphinx-copybutton>=0.5.2",
    "sphinx-design>=0.6.1",
    "sphinx-intl>=2.3.1",
    "sphinx-minecraft>=1.0.5",
    "sphinx-togglebutton>=0.3.2",
    "sphinx>=8.2.3",
  ]
  
  [tool.hatch]
  build.packages = ["src/bookshelf", "modules", "examples"]
  version.path = "src/bookshelf/definitions.py"
  
  [tool.hatch.build.force-include]
  modules = "bookshelf/data/modules"
  examples = "bookshelf/data/examples"
  
  [tool.uv]
  package = true
  default-groups = "all"
  
  [tool.mypy]
  files = ["src", "modules"]
  
  [tool.ruff]
  lint.select = ["ALL"]
  lint.ignore = [
    "D100",
    "D203",
    "D213",
    "INP001",
    "S603",
    "TRY400",
    "UP017",
  ]
  