content: [build-system]
  requires = ["maturin>=1.5,<2.0"]
  build-backend = "maturin"
  
  [project]
  name = "forge3d"
  version = "0.80.0"
  description = "forge3d: Rust/WebGPU core with PyO3 bindings"
  requires-python = ">=3.8"
  readme = "README.md"
  license = { text = "Apache-2.0 OR MIT" }
  authors = [{ name = "forge3d authors" }]
  keywords = ["graphics", "rendering", "webgpu", "rust", "3d", "terrain", "visualization"]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Developers",
      "Intended Audience :: Science/Research",
      "License :: OSI Approved :: Apache Software License",
      "License :: OSI Approved :: MIT License",
      "Operating System :: OS Independent",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.8",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10", 
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Programming Language :: Rust",
      "Topic :: Multimedia :: Graphics :: 3D Rendering",
      "Topic :: Scientific/Engineering :: Visualization",
      "Topic :: Software Development :: Libraries :: Python Modules",
  ]
  
  [project.urls]
  Homepage = "https://github.com/example/forge3d"  # Update with actual URL
  Repository = "https://github.com/example/forge3d" # Update with actual URL
  Documentation = "https://forge3d.readthedocs.io"  # Update with actual URL
  "Bug Tracker" = "https://github.com/example/forge3d/issues"  # Update with actual URL
  
  [project.optional-dependencies]
  # Raster I/O and streaming dependencies for Workstream S
  raster = [
      "rasterio>=1.3.0",
      "pyproj>=3.4.0",
      "xarray[complete]>=2023.1.0",
      "rioxarray>=0.13.0",
      "dask[array]>=2023.1.0",
  ]
  
  # Matplotlib integration for colormap adapters
  matplotlib = [
      "matplotlib>=3.5.0",
  ]
  
  # Tiles and Cartopy extras for Workstream U
  tiles = [
      "pillow>=9.0.0",
  ]
  cartopy = [
      "cartopy>=0.21.0",
      "matplotlib>=3.5.0",
  ]
  
  # Colormap extras for external palette libraries
  colormaps = [
      "cmcrameri>=1.7",
      "cmocean>=3.0",
      "colorcet>=3.0.0",
      "palettable>=3.3.3",
      "pycpt>=0.5.0",
  ]
  
  # All optional dependencies combined
  all = [
      "rasterio>=1.3.0",
      "pyproj>=3.4.0", 
      "xarray[complete]>=2023.1.0",
      "rioxarray>=0.13.0",
      "dask[array]>=2023.1.0",
      "matplotlib>=3.5.0",
      "pillow>=9.0.0",
      "cartopy>=0.21.0",
  ]
  
  [tool.maturin]
  bindings = "pyo3" 
  python-source = "python"
  module-name = "forge3d._forge3d"
  # Optimize for size and performance in release builds
  cargo-extra-args = "--profile release-lto"
  # Strip debug symbols for smaller wheel size
  strip = true
  # Generate abi3 wheels for broader compatibility
  features = ["extension-module", "weighted-oit"]
  
  # Note: Cargo profiles are defined in Cargo.toml
  
  [tool.setuptools]
  # Exclude unwanted files from wheels
  zip-safe = false
  include-package-data = true
  
  [tool.setuptools.packages.find]
  where = ["python"]
  include = ["forge3d*"]
  exclude = ["tests*"]
  
  [tool.setuptools.package-data]
  # Include data files in Python package
  "forge3d" = ["data/*.rgba", "assets/*.png"]
  
  [project.entry-points."forge3d.colormaps"]
  # third parties can register here; example kept for docs
  # mypkg = "mypkg.colormaps:entrypoint"
  