//! Pure ride logic: physics, profiles, GPX import and session state. //! //! This crate has no I/O and no platform dependencies (NFR-5). Everything here //! is unit-testable with synthetic telemetry, and it must stay that way — BLE //! lives in `bikecontrol-ble`, file writing in `bikecontrol-fit`. pub mod energy; pub mod gearing; pub mod gpx; pub mod physics; pub mod profile; pub mod session; pub mod types; pub use profile::{Block, Channel, Extent, Profile, Segment, Waveform}; pub use gearing::{Gearing, VirtualCassette}; pub use session::{RideSession, SessionEvent}; pub use types::{ ConnectionState, ControlMode, ControlTarget, RideSnapshot, RiderConfig, SafetyLimits, Telemetry, };