[package]
name = "antigen-attestation"
description = "Ratification schema + substrate-witness predicate evaluator for antigen discipline-witnesses (ADR-019)."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
keywords.workspace = true
categories.workspace = true

[lib]
path = "src/lib.rs"

[lints]
workspace = true

[features]
default = []
# Opt-in compile-time parser for the `requires = <predicate>` syntax used in
# #[immune(...)] and #[antigen_tolerance(...)] macro arguments. Pulls in syn +
# proc-macro2 so the runtime crate stays syn-free for consumers that only need
# the evaluator. The proc-macro crate and the scan layer both turn this on;
# everything else leaves it off.
parser = ["dep:syn", "dep:proc-macro2"]

[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
chrono = { version = "0.4", default-features = false, features = ["serde", "std"] }
syn = { workspace = true, optional = true }
proc-macro2 = { workspace = true, optional = true }

[dev-dependencies]
proptest = { workspace = true }
tempfile = { workspace = true }
