//! Knowledge graph operations for traceability item management.
//!
//! This module provides the core data structure for storing and navigating
//! traceability items and their relationships.
//!
//! # Key Types
//!
//! - [`KnowledgeGraph`]: The main graph data structure storing items and relationships
//! - [`KnowledgeGraphBuilder`]: Fluent builder for constructing graphs from parsed items
//!
//! # Traversal
//!
//! The [`traversal`] submodule provides functions for navigating the graph:
//! - Upstream traversal: Follow references toward Solution items
//! - Downstream traversal: Follow references toward Detailed Design items
//!
//! # Diffing
//!
//! The [`diff`] submodule compares two graphs to identify added, removed,
//! and modified items.

pub mod diff;
mod knowledge_graph;
pub mod traversal;

pub use diff::{DiffStats, GraphDiff, ItemDiff, ItemModification, RelationshipDiff};
pub use knowledge_graph::{KnowledgeGraph, KnowledgeGraphBuilder, LookupResult};
pub use traversal::{
    TraversalDirection, TraversalNode, TraversalOptions, TraversalResult, traverse_downstream,
    traverse_upstream,
};
