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; } }