//! Core types for Nightlight
//!
//! This crate provides the fundamental data types used throughout the Nightlight
//! metrics storage system. These types are independent of protocol buffers and
//! provide a clean internal representation for metrics data.
//!
//! # Design Philosophy
//!
//! - **Separation of Concerns**: Protocol types (protobuf) are separate from internal types
//! - **Efficiency**: Types are designed for efficient storage and querying
//! - **Compatibility**: Compatible with Prometheus data model
//!
//! # Type Hierarchy
//!
//! ```text
//! Metric: Labels only (identifies a time series)
//!   └─> TimeSeries: Metric + Samples (actual data points)
//!         └─> Sample: Timestamp + Value (single data point)
//! ```

pub mod metric;
pub mod series;
pub mod error;

// Re-export commonly used types
pub use metric::{Label, Metric, Sample};
pub use series::{SeriesId, TimeSeries};
pub use error::{Error, Result};
