content: [package]
  name = "forge3d"
  version = "0.80.0"
  edition = "2021"
  autoexamples = false
  
  [lib]
  name = "forge3d"
  # Build both a normal Rust library and a Python extension when requested.
  # The extension is only meaningful when feature `extension-module` is enabled.
  crate-type = ["lib", "cdylib"]
  
  # A2-BEGIN:cargo-features
  [features]
  # Keep defaults minimal so `cargo build` doesn't require Python linkage.
  default = ["images"]
  # Enable this when building the Python extension (maturin will pass this feature).
  extension-module = ["pyo3/extension-module"]
  # Optional async/double-buffered readback (R9)
  async_readback = ["dep:tokio"]
  terrain_spike = []
  weighted-oit = []
  wsI_bigbuf = []
  wsI_double_buf = []
  # Quiet cfg warnings in formats when unused
  exr = []
  # Workstream N: Advanced Rendering Systems
  enable-pbr = []
  enable-ibl = []
  enable-csm = []
  enable-tbn = []
  enable-normal-mapping = ["enable-tbn"]
  enable-hdr-offscreen = []
  enable-render-bundles = []
  # GPU instancing experimental flag (no-op stub for now)
  enable-gpu-instancing = []
  # Workstream O: Resource & Memory Management
  enable-memory-pools = []
  enable-staging-rings = []
  # A14: AOV image format support
  images = ["dep:exr"]
  # A2-END:cargo-features
  
  [dependencies]
  # Do NOT enable pyo3's extension-module by default; gate it via the Cargo feature above.
  pyo3  = { version = "0.21.2", features = ["abi3-py38"] }
  numpy = "0.21"
  ndarray = "0.15"
  wgpu = "0.19"
  winit = "0.29"
  pollster = "0.3"
  bytemuck = { version = "1", features = ["derive"] }
  image = { version = "0.25", default-features = false, features = ["png"] }
  exr = { version = "1.72", optional = true }
  glam = "0.24"
  thiserror = "1"
  once_cell = "1"
  half = "2.3"
  lyon_tessellation = "1.0"
  lyon_path = "1.0"
  lyon_geom = "1.0"
  ttf-parser = "0.20"
  tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread", "sync"], optional = true }
  futures-intrusive = "0.5"
  env_logger = "0.10"
  anyhow = "1"
  log = "0.4"
  serde = { version = "1", features = ["derive"] }
  serde_json = "1"
  gltf = { version = "1.3", features = ["import"] }
  
  [dev-dependencies]
  tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread", "sync"] }
  env_logger = "0.10"
  
  [[bin]]
  name = "policies"
  path = "bench/upload_policies/policies.rs"
  required-features = ["async_readback"]
  
  [[example]]
  name = "interactive_viewer"
  path = "examples/interactive_viewer.rs"
  
  [profile.release]
  codegen-units = 1
  lto = "thin"
  
  # Optimized profile for Python wheel builds
  [profile.release-lto]
  inherits = "release"
  lto = "fat"
  codegen-units = 1
  panic = "abort"
  strip = "symbols"
  