[package]
name = "jackdaw"
version = "0.1.1"
edition = "2024"
description = "A 3D level editor built with Bevy"
license = "MIT OR Apache-2.0"
repository = "https://github.com/jbuehler23/jackdaw"
readme = "README.md"
keywords = ["bevy", "editor", "3d", "level-editor"]
categories = ["game-development", "graphics"]
exclude = ["assets/environment_maps/"]

[workspace]
members = ["crates/*"]

[dependencies]
bevy.workspace = true
jackdaw_jsn.workspace = true
jackdaw_geometry.workspace = true
bevy_monitors.workspace = true
bevy_infinite_grid.workspace = true
jackdaw_camera.workspace = true
jackdaw_feathers.workspace = true
jackdaw_widgets.workspace = true
jackdaw_commands.workspace = true
jackdaw_terrain.workspace = true
serde.workspace = true
serde_json.workspace = true
avian3d.workspace = true
rfd.workspace = true
bevy_rerecast.workspace = true
ehttp.workspace = true
bincode.workspace = true
base64.workspace = true
anyhow.workspace = true

[workspace.dependencies]
bevy = { version = "0.18", features = ["experimental_bevy_feathers", "serialize", "debug", "bevy_remote"] }
jackdaw_jsn = { version = "0.1.1", path = "crates/jackdaw_jsn" }
jackdaw_geometry = { version = "0.1.1", path = "crates/jackdaw_geometry" }
bevy_monitors = "0.2"
bevy_infinite_grid = "0.18"
jackdaw_camera = { version = "0.1.1", path = "crates/jackdaw_camera" }
jackdaw_feathers = { version = "0.1.1", path = "crates/jackdaw_feathers" }
jackdaw_widgets = { version = "0.1.1", path = "crates/jackdaw_widgets" }
jackdaw_commands = { version = "0.1.1", path = "crates/jackdaw_commands" }
jackdaw_terrain = { version = "0.1.1", path = "crates/jackdaw_terrain" }
noise = "0.9"
rand = "0.9"
serde = "1"
lucide-icons = "0.563"
serde_json = "1"
bevy_ui_text_input = "0.7"
bevy_easings = "0.18.0"
avian3d = { version = "0.5", default-features = false, features = ["3d", "parry-f32"] }
rfd = "0.15"
bevy_rerecast = { version = "0.4", default-features = true }
ehttp = { version = "0.5", default-features = false, features = ["native-async", "json"] }
bincode = { version = "2", features = ["serde"], default-features = false }
base64 = { version = "0.22", default-features = false, features = ["alloc"] }
anyhow = { version = "1", default-features = false }

# Idiomatic Bevy code often triggers these lints, and the CI workflow treats them as errors.
[workspace.lints.clippy]
too_many_arguments = "allow"
type_complexity = "allow"
collapsible_if = "allow"
redundant_closure = "allow"

[lints]
workspace = true

[profile.dev]
opt-level = 1

[profile.dev.package."*"]
opt-level = 3

[profile.dev.package.wgpu-types]
debug-assertions = false

[profile.release]
codegen-units = 1
lto = "thin"
