Add the core, contest, storage and format layers

Frequencies, bands, modes, callsigns, grid squares and the country file live in
Nonemm.Core. Nonemm.Contests holds the scoring engine and CQ WW and CQ WPX.
Nonemm.Storage writes N1MM's DXLOG schema, and Nonemm.Formats writes Cabrillo
3.0 and reads and writes ADIF.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik
2026-08-27 10:27:51 +00:00
co-authored by Claude Opus 5
commit 0f84bc8972
68 changed files with 3823 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
namespace Nonemm.Contests;
/// What the log says about a contact: whether it counts, what it scores, and
/// which multipliers it brings in. Every window that colours a station reads
/// this, so one station cannot look worked in one place and new in another.
public sealed record Verdict(
bool IsDupe,
int Points,
IReadOnlyList<Multiplier> NewMultipliers)
{
public static readonly Verdict Dupe = new(true, 0, []);
public bool IsNewMultiplier => NewMultipliers.Count > 0;
}