//! `indicatrix` is a physically-based spectral gemstone renderer.
//!
//! It turns GemCAD-style cutting schedules (facet angles and index positions)
//! into rendered output: spectral analytical / Monte-Carlo raytracing through
//! faceted gemstone geometry, plus brilliance / fire / scintillation metrics.
//!
//! No dependency on any UI toolkit or data source: callers supply plain
//! [`FacetSpec`] rows (or hand-built [`geometry::GpuFacetPlane`] sets) and a
//! [`optics::materials::GemMaterial`], and get back pixels and/or metrics.
// `wgpu`'s type nesting (TransportOutputs -> Buffer -> wgpu_core/wgpu_hal
// Arc/Registry/Hub layers) overflows the default recursion limit when proving
// `Send` for the closure `renderer::gpu::hybrid` spawns onto a scoped thread.
// 256 (double rustc's default) clears current nesting with headroom; raise
// further only if a future `wgpu` upgrade nests deeper.
pub use FacetSpec;
/// A deterministic content hash of this crate's source, computed at build time.
///
/// Covers `src/**/*.rs` plus `Cargo.toml`; see `build.rs`'s doc comment for the
/// hashing procedure. 16 lowercase hex chars (64-bit FNV-1a); identical across
/// OS/toolchain/`.git` state for byte-identical source, and changes on any
/// change to path or contents.
///
/// Used by `indicatrix-net`'s handshake: a viewer and remote render worker must
/// refuse to combine samples unless builds match, since differing physics
/// summed together silently produces a plausible-looking wrong image.
pub const BUILD_ID: &str = env!;