Die drei Koordinationsregeln für Switches

Beispielmodul: hellotypes, Properties switchoneofmany/switchatmostone/switchany.

Mehrere ElementBool-Elemente derselben Property können über "rule" im JSON der Property wie Radio-Buttons oder unabhängige Kontrollkästchen koordiniert werden:

ruleVerhalten
0 — OneOfManyGenau eines ist zur selben Zeit wahr (Radio). Ein Element auf true zu setzen setzt alle anderen auf false. Es direkt wieder auf false zu setzen wird abgelehnt — es muss ein anderes gewählt werden.
1 — AtMostOneNull oder eins ist wahr (optionales Radio). Gleiches Verhalten, außer dass man auch direkt abwählen kann.
2 — Any (Standard)Keine Einschränkung, unabhängige Kontrollkästchen.
"switchoneofmany": {
  "permission": 2,
  "rule": 0,
  "e": {
    "calibrate": { "type": "bool", "directedit": true },
    "guide":     { "type": "bool", "directedit": true },
    "stop":      { "type": "bool", "directedit": true }
  }
}

Vollständig deklarativ: die tatsächliche Anwendung der Regel lebt im Framework selbst, ausgelöst durch jeden beliebigen Schreibzugriff auf eines der Elemente — kein Code im Modul nötig, damit das funktioniert, nur um bei Bedarf einen konsistenten Anfangszustand festzulegen.