namespace GeoVLog.Core.Models;
///
/// Base contract for every sensor reading captured by GeoVLog.
///
public interface ISensorReading
{
/// UTC time the message was received (system clock).
DateTime TimestampUtc { get; }
///
/// Short string identifier (“gps”, “mag”, “imu”, “ralt”, “vlf”…)
/// used for routing and dataset naming.
///
string SensorName { get; }
///
/// Secondary channel index (0 = default).
/// Example: magnetometer #1 → 0, magnetometer #2 → 1.
///
int Channel { get; }
///
/// Raw message bytes or text exactly as received—preserved for
/// forensic analysis and re-parsing.
///
ReadOnlyMemory RawPayload { get; }
}