We define a common election and ballot input format. Format consists of lines: [| OPTION] CAND = DESCRIPTION ... [| OPTION...] VOTERNAME : CAND, (CAND=CAND=...) ... [| OPTION...] We define normalised and non-normalised inputs. Normalised is for input by compute programs (which do not need to check conformance with the syntax) and non-normalised is for output from converters and messing about by numans. In normalised files lines must occor in the order above (and whitespace is normalised, although readers should avoid relying on this other than that they may assume lack of leading and trailing whitespace on each line). Non-normalised files can also contain empty lines and # COMMENT... In non-normalised files any CAND may be omitted in which case CAND = CAND is assumed. In non-normalised files an empty description is replaced with a copy of CAND. CAND and VOTERNAME may contain any characters except control characters and 7-bit ASCII punctuation, but including ASCII ampersand & apostrophe ' hyphen - full stop . and underscore (_). Processors are not required to generate unambiguous output when CAND or VOTERNAME contains characters other than 7-bit alphanumerics plus _. DESCRIPTION may contain any characters except | (and cannot contain leading or trailing whitespace). VOTERNAMEs need not be distinct and may be empty. OPTION is OPTNAME[=VALUE] and modifies the preference, ballot, or whole election. VALUE may contain no whitespace. OPTNAME contains only alphanumerics (or _) and starts with a letter or _. Reader should treat unknown OPTNAMEs as follows: starts with uppercase letter - crash (reject the input file) starts with lowercase letter - generate a warning starts with underscore - silently ignore Anything which expects a particular OPTNAME should usually accept all three variants, with a regexp like /^_?[Qq]orum=(\d+)$/. Convention is _-separated words, with inner words being in lowercase, even when OPTNAME starts with a capital. Currently defined OPTNAMEs (default values shown) Election seats=1 Number of seats to be filled. Election _nodefault For Debian A6, no default option Election quorum=NUM Quorum (default, none) Candidate Super=1:1 For Debian A6, RAT:IO, Candidate default For Debian A6, Is the default option Voter Weight=1.0 OPTIONs wihin a particular scope may occur in any order.