{ "$schema": "./keyboards.schema.json", "version": "1.0", "description": "Keyboard configuration for PRIMARY/STANDBY election", "keyboards": [ { "id": "KB-001", "name": "Control Room 1", "location": "Main Control Room", "priority": 100, "canBePrimary": true, "canBeStandby": true, "network": { "address": "192.168.1.101", "coordinationPort": 8090 } }, { "id": "KB-002", "name": "Control Room 2", "location": "Main Control Room", "priority": 90, "canBePrimary": true, "canBeStandby": true, "network": { "address": "192.168.1.102", "coordinationPort": 8090 } }, { "id": "KB-003", "name": "Security Station", "location": "Security Office", "priority": 50, "canBePrimary": false, "canBeStandby": true, "network": { "address": "192.168.1.103", "coordinationPort": 8090 } } ], "election": { "heartbeatIntervalMs": 2000, "heartbeatTimeoutMs": 6000, "electionTimeoutMs": 10000, "minKeyboardsForQuorum": 1 }, "coordination": { "primaryWebSocketPort": 8090, "stateSync": { "enabled": true, "intervalMs": 1000 } }, "degradedMode": { "description": "Features available when no PRIMARY/STANDBY is online", "viewerConnectLive": true, "ptzControl": true, "ptzLocking": false, "sequences": false, "sharedState": false, "alarmDisplay": "local" } }