//! # Lexicon fetching and code generation binaries for Jacquard
//!
//! This crate provides the tooling for fetching lexicon schemas from various sources
//! and generating Rust code from them.
//!
//! ## Binaries
//!
//! ### lex-fetch
//!
//! Downloads lexicons from configured sources and runs the code generation pipeline:
//!
//! ```bash
//! cargo run -p jacquard-lexgen --bin lex-fetch
//! ```
//!
//! Configuration lives in `lexicons.kdl` at the workspace root.
//!
//! ### jacquard-codegen
//!
//! Runs code generation on a local directory of lexicons:
//!
//! ```bash
//! cargo run -p jacquard-lexgen --bin jacquard-codegen -- \
//!     -i ./lexicons \
//!     -o ./crates/jacquard-api/src
//! ```
//!
//! ## Modules
//!
//! - [`fetch`] - Ingests lexicons from git, atproto, http fetch, and other sources
//! - [`cli`] - CLI argument parsing utilities
//! - [`schema_extraction`] - Extract lexicon schemas from Rust types via inventory (link-time discovery)
//! - [`schema_discovery`] - Discover schemas by scanning workspace source files (no linking required)

pub mod cli;
pub mod fetch;
pub mod schema_discovery;
pub mod schema_extraction;

pub use fetch::{Config, Fetcher};
