@lzcontest/contest-model
v0.1.3
Published
Format-neutral typed contracts and vocabulary for amateur-radio contest definitions.
Maintainers
Readme
@lzcontest/contest-model
Typed contest contracts, validation, shared vocabulary, and non-contest profiles.
Install
npm install @lzcontest/contest-modelUse contest vocabulary
import {
Band,
Mode,
bandForFrequencyHz,
bandSet,
modeSet,
} from '@lzcontest/contest-model';
const band = bandForFrequencyHz(14_030_000);
const bands = bandSet(Band.M20, Band.M15, Band.M10);
const modes = modeSet(Mode.CW, Mode.SSB);
console.log(band); // 20mCore API
| Export | Purpose |
| --- | --- |
| ContestDefinition | Materialized contest rules and metadata |
| ContestContract | Inference-preserving authored contract |
| validateContestDefinition | Return typed definition diagnostics |
| Band, BandSet, bandForFrequencyHz | RF-band vocabulary and lookup |
| Mode, ModeSet | Operating-mode vocabulary |
| ContestStatus | Draft, verified, and deprecated status values |
| builtInNonContestProfiles | General, DXpedition, and VHF/UHF logging profiles |
| findNonContestProfile | Resolve a non-contest profile by ID |
