Scratch — all-DNC race does not consume a discard slot (issue #129)

Issue #129: an all-DNC race must not count toward the discard threshold. 5 scheduled races, but race 3 is all-DNC. The discard threshold says "1 discard at 5 races sailed". Because only 4 races were actually sailed, the threshold does not fire — no discards. Without the fix this fixture would have triggered a discard (race count = 5 ≥ threshold) and every boat would have discarded the all-DNC penalty (6 pts), which is exactly the bug the issue calls out. Also covers the edge case from issue #129 open questions: race 5 has a single finisher and the rest DNC — this is *not* an empty race, it scores normally (the single finisher gets 1 pt, others get 6 pts DNC).

Scoring configuration: 1 discard from race 5. DNF/OCS scoring: A5.2 (series entries).

Race 3: abandoned, all DNC → excluded from scoring.
  Race 5: only Alice finishes — this *is* a valid race (one finisher),
  so it scores normally. Bob and Carol get DNC = N+1 = 4 pts each.
4 sailed races (race 3 excluded). Threshold "5 races → 1 discard" doesn't
fire because sailedRaceCount = 4. No discards. Excluded race contributes 0.
Rank Sail Number Boat Competitor R1 R2 R3 R4 R5 Total
1st 101 Alice 1.0 1.0 — 1.0 1.0 4.0
2nd 202 Bob 2.0 2.0 — 2.0 4.0 DNC 10.0
3rd 303 Carol 3.0 3.0 — 3.0 4.0 DNC 13.0

R1 — 1 Jan 2025

Rank Sail Number Boat Competitor Points
1 101 Alice 1.0
2 202 Bob 2.0
3 303 Carol 3.0

R2 — 1 Jan 2025

Rank Sail Number Boat Competitor Points
1 101 Alice 1.0
2 202 Bob 2.0
3 303 Carol 3.0

R3 — 1 Jan 2025

Rank Sail Number Boat Competitor Points
101 Alice 4.0 DNC
202 Bob 4.0 DNC
303 Carol 4.0 DNC

R4 — 1 Jan 2025

Rank Sail Number Boat Competitor Points
1 101 Alice 1.0
2 202 Bob 2.0
3 303 Carol 3.0

R5 — 1 Jan 2025

Rank Sail Number Boat Competitor Points
1 101 Alice 1.0
202 Bob 4.0 DNC
303 Carol 4.0 DNC

Sail Scoring