Las tres reglas de coordinación de los switches

Módulo de ejemplo: hellotypes, propiedades switchoneofmany/switchatmostone/switchany.

Varios elementos ElementBool de una misma propiedad pueden coordinarse entre sí como botones de radio o casillas independientes, mediante "rule" en el JSON de la propiedad:

ruleComportamiento
0 — OneOfManyExactamente uno verdadero a la vez (radio). Poner un elemento a true vuelve a poner todos los demás a false. Volver a ponerlo directamente a false es rechazado — hay que elegir otro.
1 — AtMostOneCero o uno verdadero (radio opcional). Mismo comportamiento, salvo que también se puede deseleccionar directamente.
2 — Any (por defecto)Sin ninguna restricción, casillas independientes.
"switchoneofmany": {
  "permission": 2,
  "rule": 0,
  "e": {
    "calibrate": { "type": "bool", "directedit": true },
    "guide":     { "type": "bool", "directedit": true },
    "stop":      { "type": "bool", "directedit": true }
  }
}

Totalmente declarativo: la aplicación real de la regla vive en el propio framework, disparada por cualquier escritura en uno de los elementos — ningún código que escribir en el módulo para que funcione, solo para fijar un estado inicial coherente si es necesario.