{
  "appVersion": "1.6.1",
  "contract": {
    "id": "hotkey",
    "name": "Hotkey",
    "fields": [
      {
        "id": "debounce",
        "name": "debounce",
        "type": "TimeSpan",
        "options": [],
        "defaultValue": "00:00:00"
      },
      {
        "id": "delay_after_event",
        "name": "delay_after_event",
        "type": "TimeSpan",
        "options": [],
        "defaultValue": "00:00:00"
      },
      {
        "id": "kind",
        "name": "kind",
        "type": "AutomationTriggerKind",
        "options": [
          "Hotkey",
          "OnceAt",
          "Schedule",
          "Interval",
          "ProcessStarted",
          "ProcessExited",
          "WindowEvent",
          "FileSystemEvent",
          "SystemEvent",
          "WindowsEvent",
          "Webhook"
        ],
        "defaultValue": "Hotkey"
      },
      {
        "id": "modifiers",
        "name": "modifiers",
        "type": "KeyModifiers",
        "options": [
          "None",
          "Alt",
          "Control",
          "Shift",
          "Windows"
        ],
        "defaultValue": "None"
      },
      {
        "id": "virtual_key_code",
        "name": "virtual_key_code",
        "type": "UInt32",
        "options": [],
        "defaultValue": 0
      }
    ]
  },
  "explanations": {
    "purpose": "Startet das gewählte Ziel über eine Tastenkombination. Wähle Taste und Modifikatoren, prüfe Konflikte und aktiviere erst nach einem manuellen Test. debounce entprellt den Trigger, delay_after_event verschiebt seine Startentscheidung.",
    "example": "Unterlagenbeispiel: Strg+Alt+U startet den ausgewählten Job.",
    "errors": "Eine Triggerbeobachtung ist noch kein erfolgreicher Zielstart. Prüfe active, Ziel-ID, Pflichtparameter, aktives Zeitfenster, Cooldown und bereits laufendes Ziel. Für Webhooks zusätzlich Port, Netzwerkmodus und Authentifizierung prüfen; für Datei-Trigger muss der Ordner existieren. Diagnose und Startentscheidung stehen im Automationsverlauf.",
    "field.debounce": "Mindestabstand zur Entprellung mehrfacher Trigger-Ereignisse als TimeSpan-Text, zum Beispiel 00:00:01. Dies ist nicht die allgemeine Ziel-Cooldown-Regel.",
    "field.delay_after_event": "Verzögerung zwischen Ereignisbeobachtung und Startentscheidung als TimeSpan-Text, zum Beispiel 00:00:02.",
    "field.kind": "Abgeleitete Triggerart zur Anzeige. Für die polymorphe Deserialisierung ist $type maßgeblich; die kanonische Vorlage zeigt die zusätzlich geschriebenen Kind/kind-Werte.",
    "field.modifiers": "Bitmaske der Modifikatortasten: None=0, Alt=1, Control=2, Shift=4, Windows=8; kombinierte Werte addieren, etwa 3 für Strg+Alt.",
    "field.virtual_key_code": "Windows-Virtual-Key-Code der Trigger-Taste als Zahl, zum Beispiel 85 für U. Mit modifiers kombinieren und auf bestehende Tastenkombinationen prüfen.",
    "field.kind.option.ProcessExited": "Start, wenn ein passender Prozess beendet wird.",
    "field.kind.option.ProcessStarted": "Start, wenn ein passender Prozess neu erscheint.",
    "field.kind.option.Hotkey": "Start über Tastenkombination.",
    "field.modifiers.option.Shift": "Umschalt-Modifikator; numerische Bitmaske 4.",
    "field.modifiers.option.Alt": "Alt-Modifikator; numerische Bitmaske 1.",
    "field.modifiers.option.None": "Keine Modifikatortaste; numerische Bitmaske 0.",
    "field.modifiers.option.Control": "Strg-Modifikator; numerische Bitmaske 2.",
    "field.kind.option.FileSystemEvent": "Start bei einem passenden Datei-/Ordnerereignis.",
    "field.kind.option.Schedule": "Start zu einer Uhrzeit an ausgewählten Wochentagen.",
    "field.kind.option.Webhook": "Start durch einen authentifizierten HTTP-POST-Aufruf.",
    "field.kind.option.WindowEvent": "Start bei einem passenden Fensterereignis.",
    "field.kind.option.WindowsEvent": "Start über eine unterstützte Funktion des Windows-Ereigniskatalogs.",
    "field.kind.option.SystemEvent": "Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.",
    "field.kind.option.Interval": "Start in einem positiven Wiederholungsintervall.",
    "field.modifiers.option.Windows": "Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.",
    "field.kind.option.OnceAt": "Einmaliger Start zu einem zukünftigen Zeitpunkt."
  },
  "template": {
    "$type": "hotkey",
    "Kind": "Hotkey",
    "modifiers": 0,
    "virtual_key_code": 0,
    "debounce": "00:00:00",
    "delay_after_event": "00:00:00",
    "kind": "Hotkey"
  },
  "screenshots": [
    {
      "id": "automation-hotkey",
      "file": "automation-hotkey.detail.png",
      "title": "Hotkey-Automation",
      "caption": "Strg+Alt+U als Auslöser für den Job Arbeitsunterlagen vorbereiten.",
      "width": 1324,
      "height": 630,
      "pages": [
        "/doku/automationen/hotkey/"
      ],
      "markers": [
        {
          "number": 1,
          "label": "Trigger-Typ",
          "explanation": "Hier wählst du, welches Ereignis die Automation startet."
        },
        {
          "number": 2,
          "label": "Hotkey",
          "explanation": "Die angezeigte Tastenkombination löst die Automation aus."
        },
        {
          "number": 3,
          "label": "Job oder Makro",
          "explanation": "Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird."
        },
        {
          "number": 4,
          "label": "Wenn bereits aktiv",
          "explanation": "Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft."
        },
        {
          "number": 5,
          "label": "Cooldown",
          "explanation": "Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden."
        }
      ]
    }
  ],
  "note": "Referenzdaten. Defaultvorlage vor Verwendung vervollständigen und fachlich validieren."
}
