[package]
name    = "solitaire_engine"
version.workspace = true
license.workspace = true
edition.workspace = true

[dependencies]
bevy           = { workspace = true }
image          = { workspace = true }
solitaire_core = { workspace = true }
solitaire_data = { workspace = true }
solitaire_sync = { workspace = true }
chrono         = { workspace = true }
uuid           = { workspace = true }
serde          = { workspace = true }
serde_json     = { workspace = true }
thiserror      = { workspace = true }
usvg           = { workspace = true }
resvg          = { workspace = true }
tiny-skia      = { workspace = true }
ron            = { workspace = true }

# These deps are not available / not needed on wasm32:
#   reqwest  — uses mio/hyper native networking (sync plugin is gated out)
#   kira     — uses cpal OS audio (audio plugin is gated out)
#   tokio    — multi-threaded runtime (TokioRuntimeResource is gated out)
#   dirs     — platform data directories (storage uses WasmStorage instead)
#   zip      — theme ZIP importer (importer is gated out on wasm32)
#   arboard  — clipboard (no wasm backend; stats copy-link uses localStorage)
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
reqwest        = { workspace = true }
kira           = { workspace = true }
tokio          = { workspace = true }
dirs           = { workspace = true }
zip            = { workspace = true }

# `arboard` has no Android backend and no wasm32 backend.  Gate it out for
# both; the copy-share-link button surfaces an informational toast instead.
[target.'cfg(all(not(target_os = "android"), not(target_arch = "wasm32")))'.dependencies]
arboard        = { workspace = true }

[target.'cfg(target_os = "android")'.dependencies]
jni            = { workspace = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
base64        = "0.22"
getrandom     = { version = "0.3", features = ["wasm_js"] }
wasm-bindgen  = "0.2"
web-sys       = { version = "0.3", features = ["Storage", "Window"] }

[dev-dependencies]
async-trait = { workspace = true }
tempfile    = { workspace = true }
solitaire_core = { workspace = true, features = ["test-support"] }

[lints]
workspace = true
