namespace Nonemm.Contests; /// One column of a Cabrillo QSO line. Sponsors read these by column, so each /// carries the width it is padded to. public sealed record CabrilloField(string Value, int Width); /// The columns of one Cabrillo QSO line after the time, sent group first. The /// callsign is one of the columns because sponsors do not agree on where it /// goes: most put it first, Sweepstakes puts it last. public sealed record CabrilloExchange( IReadOnlyList Sent, IReadOnlyList Received) { /// Whether the writer adds the transmitter column at the end of the line. /// A user-defined contest that lays out its own line can put that column /// where it wants it, or leave it out. public bool AddsTransmitter { get; init; } = true; }