✨ Remove the VoteVariationTypes not supported in 1.0 library
Is there an existing issue for this?
- [X] I have searched the existing issues
Suggestion
AFAICT, the 1.0 reference library supports
- n_of_m type election
- one_of_m is a special case with number_elected = 1.
- approval where votes_allowed = number of options.
I think in these three cases votes_allowed == number_elected.
Im looking at the other VoteVariationType's, and Im guessing some of those (majority, plurality, proportional, super_majority) can be done by the current system because they are just special versions of n_of_m. Some (borda, cumulative, range, rcv) I guess cannot currently be done.
For clarity, we should remove the VoteVariationTypes not supported in the 1.0 library, and for the supported ones, make clear if election guard needs to do any special handling.
Possible Implementation
For 1.0, remove all VoteVariationType's except n_of_m, one_of_m, and approval. Remove number_elected and only use votes_allowed, which is required.
Anything else?
Also see Issue #224 and Discussion #247
Python handles with an error in 1.0. CPP needs to be checked.