[package]
name = "roxlap-scene"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
rust-version.workspace = true
readme.workspace = true
description = "Scene-graph layer for the roxlap voxel engine: many independent chunked voxel grids, each with f64 world position and Quat rotation."
documentation = "https://docs.rs/roxlap-scene"
keywords = ["voxlap", "voxel", "scene-graph", "chunk", "engine"]
categories = ["game-development", "graphics"]

[dependencies]
glam = { workspace = true }
roxlap-cavegen = { path = "../roxlap-cavegen", version = "0.18" }
roxlap-core = { path = "../roxlap-core", version = "0.18" }
roxlap-formats = { path = "../roxlap-formats", version = "0.18" }
serde = { workspace = true }
# S7.3: background chunk-generation pool + result channel. Both are
# native-only — on wasm32 the streaming pump short-circuits to the
# synchronous path (no rayon::ThreadPool::build there without the
# wasm-bindgen-rayon adapter, which is a binary-side concern).
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rayon = { workspace = true }
crossbeam-channel = { workspace = true }

[dev-dependencies]
# S2.3 round-trip test serialises through a real binary codec to
# exercise the snapshot end-to-end (not just the field-by-field
# Serialize impls). bincode is the most common choice in the rust
# game-engine ecosystem; pinned to 1.x for stability.
bincode = "1"

[lints]
workspace = true
