election_title: "Library board by Combined Approval Voting — the newcomer nobody dislikes"

voting_method: CAV
num_winners: 1

scenario_description: |-
  Twelve neighbours elect one seat on a town library board.

  Alma and Byron are the known quantities, and both are polarising: four voters
  vote For each of them, and roughly as many vote Against. Cleo is a newcomer.
  Only three voters have met her — all three vote For — and the other nine have
  no opinion and abstain. Nobody votes Against her.

  Under CAV an abstention is genuinely free: it adds nothing and subtracts
  nothing. So Cleo's nine blanks cost her nothing, her three approvals stand
  unopposed, and she wins on net score (+3) ahead of Byron (+1) and Alma (−1).

  The companion file `cav_library_board_blank_is_zero_c3_b12.yaml` gives these
  twelve voters the SAME marks on an ordinary score ballot, where an unmarked
  candidate scores 0 — the bottom of the scale rather than the middle. That one
  change reverses the field completely: Byron 10, Alma 8, Cleo 6. Read the pair
  together; the difference is entirely in what a blank is taken to mean.

# CAV ballot: 2 = For (+1), 1 = abstain (0), 0 = Against (−1).
# Every cell is marked on purpose — an abstention is written 1, never left
# blank, because the library's shared parser reads a blank as 0 = Against.
# Columns: Alma, Byron, Cleo
ballots: |-
  Alma,Byron,Cleo
  2,0,1   # 1  Alma's camp — For Alma, Against Byron, no opinion on Cleo
  2,0,1   # 2  Alma's camp
  2,0,1   # 3  Alma's camp
  2,0,1   # 4  Alma's camp
  0,2,1   # 5  Byron's camp — mirror image
  0,2,1   # 6  Byron's camp
  0,2,1   # 7  Byron's camp
  0,2,1   # 8  Byron's camp
  1,1,2   # 9  knows only Cleo, and likes her
  0,1,2   # 10 Against Alma, no opinion on Byron, For Cleo
  1,1,2   # 11 knows only Cleo, and likes her
  1,2,1   # 12 For Byron, no opinion on the other two

expected_winners:
  - Cleo

# file: cav_library_board_c3_b12.yaml
