//! `FactorProvider` trait for injecting licensed LCI emission factor datasets at runtime.
use CalcError;
// Test/feature-only synthetic provider, kept in its own file so production code
// never compiles it unless explicitly opted in. Re-exported here to preserve the
// `factor::SyntheticFactorProvider` path.
pub use SyntheticFactorProvider;
/// Provides lifecycle-inventory emission factors at runtime.
///
/// Implementations inject licensed datasets (ecoinvent, EF, Sphera) without
/// bundling the underlying data in this Apache-2.0 crate — the methodology is
/// open, the factor data is licensed and supplied at runtime.
///
/// A `FactorProvider` is intentionally *not* used by the Phase-0 calculators
/// (repairability and the basic CO₂e cradle-to-gate), which take emission
/// factors as caller-supplied inputs. It will be wired in Phase 2 when the
/// battery CFB engine requires real LCI data.