[package]
name = "gfcore"
description = "Go Fish card game engine"
version = "0.0.1"
edition = "2024"
rust-version = "1.85"
license = "MIT OR Apache-2.0"
repository  = "https://github.com/ImperialBower/gfcore.git"
homepage = "https://github.com/ImperialBower/gfcore"
keywords    = ["go-fish", "card-game", "game-engine", "cards", "board-game"]
categories  = ["games", "simulation"]
exclude = [
    ".github/*",
    ".devcontainer/*",
    ".claude/*",
    "docs/*",
    "examples/*",
    "src/examples/*",
    "deny.toml",
    "Makefile",
    ".gitignore",
    "Cargo.lock",
    "CLAUDE.md",
]

[features]
default = ["history"]
history = ["dep:uuid", "dep:serde_norway"]
wasm    = ["dep:wasm-bindgen", "dep:console_error_panic_hook", "dep:getrandom"]

[dependencies]
mutants      = "0.0.3"
cardpack     = "0.7.0"
serde        = { version = "1.0", features = ["derive"] }
serde_json   = "1.0"
rand         = "0.9"
log          = "0.4"

# history feature
uuid         = { version = "1", features = ["v4"], optional = true }
serde_norway = { version = "0.9.42",               optional = true }

# wasm feature
wasm-bindgen             = { version = "0.2", optional = true }
console_error_panic_hook = { version = "0.1", optional = true }
# NOTE: getrandom 0.3 introduces wasm_js; verify cardpack's transitive
# getrandom version does not conflict when targeting wasm32 (see pkcore for
# the v2/v3 alias workaround if needed — resolve during Step 9).
getrandom                = { version = "0.3", features = ["wasm_js"], optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
uuid = { version = "1", features = ["v4", "js"], optional = true }

[dev-dependencies]
serde_json = "1.0"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = "0.3"

[lib]
name = "gfcore"

