# DesktopAutomation – vollständige Produktreferenz

Entwicklungsstand 1.6.1 · 2026-10-08 · Arbeitsbaum, möglicherweise noch unveröffentlicht.
Formatversionen: Job 4, Makro 3, Automation 1. Defaultvorlagen sind strukturell, nicht vollständig lauffähig.
Vertragsdaten mit Descriptoren, Typen, Standards, Kardinalitäten, bindingSchemas und Vorlagen: /doku/vertragsdaten.json

## Erste Schritte in der UI

Website: /doku/erste-schritte/

Einen Ablauf erstellen, kontrolliert ausprobieren und anschließend automatisieren – ohne JSON bearbeiten zu müssen.

Abbildung: [Jobs, Makros und geplante Ausführungen in der Startübersicht.](/startseite.detail.png)

1. Aktive Automationen: Zeigt eingeschaltete Automationen mit Auslöser, Aktion und nächstem Lauf.
2. Laufende Jobs & Makros: Hier erscheinen gerade ausgeführte Abläufe; Sofort stoppen beendet laufende Ausführungen.
3. Jobs: Anzahl der gespeicherten Jobs; ein Job besteht aus geordneten Steps.
4. Makros: Anzahl der gespeicherten Makros für Maus- und Tastatureingaben.
Beginne mit einem kleinen Job und einem Testordner. Im Bereich Jobs einen Job öffnen, einen Step hinzufügen, Einstellungen und Wertequelle wählen, speichern und manuell ausführen. Danach Logs auf Status und Ergebnis prüfen. Erst einen verifizierten Zielablauf per Automation aktivieren.

### Einen ersten Job erstellen

1. Öffne Jobs und lege einen Job mit einem beschreibenden Namen an. Lass Wiederholen für den ersten Versuch ausgeschaltet.
2. Füge in der Hauptphase einen Step hinzu. Wähle zuerst eine einfache Aktion wie Timeout oder Benutzerauswahl. Die Step-Referenz erklärt jede Einstellung und die angebotenen Optionen.
3. Wähle beim Bearbeiten eines Werts einen direkten Wert oder eine kompatible Wertequelle. Ein direkter Wert gehört zu diesem Step; eine Job-Variable lässt sich mehrfach verwenden.
4. Speichere und behebe die angezeigten Validierungsfehler. Ein fehlendes Pflichtfeld oder ein unpassender Quellentyp wird nicht durch die Reihenfolge der Steps gültig.
5. Starte den Job manuell. Prüfe anschließend Logs: Laufstatus, Step-Status und fachliches Ergebnis müssen zum erwarteten Ablauf passen.
[Alle Steps](/doku/steps/)
[Werte verbinden](/doku/werte-verbinden/)
[Logs lesen](/doku/logs-verstehen/)

### Mit vollständigen Beispielen weiterarbeiten

Die drei illustrierten Beispiele zeigen eine Rückfrage mit Verzweigungen, eine Dateisicherung mit Prüfungen und einen Arbeitsplatz mit Prozessaktionen. Sie erklären den Aufbau und die Werteverbindungen als Anregung für eigene Jobs.
Die Konfigurationen wurden mit den App-Serializern erneut gelesen und validiert. Programme, Dateiaktionen und Eingaben wurden dabei nicht auf einem echten Desktop ausgeführt. Passe Pfade, Zielprogramme und Bildschirme an und teste jeden Ablauf manuell.
[Arbeitsunterlagen vorbereiten](/beispiele/unterlagen/)
[Sicherung mit Rückfrage](/beispiele/sicherung/)
[Arbeitsplatz vorbereiten](/beispiele/arbeitsplatz/)

### Einen geprüften Job automatisch starten

1. Lege im Bereich Automationen eine Automation an und lass sie zunächst deaktiviert.
2. Wähle einen Trigger, zum Beispiel Hotkey, Zeitplan oder eine Dateiänderung, und ergänze dessen Pflichtparameter.
3. Wähle den bereits manuell geprüften Job als Ziel. Lege fest, was passieren soll, falls das Ziel schon läuft, und ob ein Cooldown benötigt wird.
4. Aktiviere die Automation und löse den Trigger gezielt aus. Prüfe in Logs sowohl die Triggerentscheidung als auch den zugehörigen Joblauf.
[Automationen einrichten](/doku/automationen-einrichten/)

## Jobs und Abläufe

Website: /doku/jobs/

Ein Job besteht aus drei Phasen. Reihenfolge, Blockstruktur und Werteverbindungen bestimmen gemeinsam, was ausgeführt wird.

Abbildung: [Job mit Benutzerauswahl, Bedingungen und Werteverbindungen.](/unterlagen.detail.png)

1. Bei jedem Durchlauf: Diese Steps werden in jedem Durchlauf der Hauptphase ausgeführt.
2. Benutzerauswahl abfragen: Fragt eine Antwort ab; deren Rückgabewert steuert die folgenden Bedingungen.
3. Wenn: Beginnt einen Zweig, der bei erfüllter Bedingung ausgeführt wird.
4. Sonst: Dieser Zweig wird ausgeführt, wenn die vorherigen Bedingungen nicht zutreffen.
Jobs ordnen Aktionen in Startphase, Hauptphase und Endphase. Die Startphase läuft einmal; eine wiederholte Hauptphase verwendet neue aktuelle Ergebnisse und behält Startphasen-Ergebnisse. Die Endphase dient dem Aufräumen. Bearbeite Blockstruktur und Ergebnisquellen zusammen; eine Reihenfolge allein macht inkompatible Werte nicht nutzbar.

### Startphase, Hauptphase und Endphase

Ein Fehler in der Start- oder Hauptphase beendet deren normale Ausführung. Die vorgesehene Endphase wird anschließend zum Aufräumen behandelt. Ein End-Job-Step kann ausdrücklich skip_end_steps setzen; plane notwendiges Aufräumen deshalb bewusst.
Hintergrundskripte und gestartete Hintergrundjobs gehören ihrem übergeordneten Job. Dieser sammelt beziehungsweise beendet seine Hintergrundarbeit vor der Endphase. Ein erfolgreiches Starten beweist noch keinen erfolgreichen Abschluss; ein Hintergrundfehler kann den Besitzer fehlschlagen lassen.
Startphase / startSteps | Einmalige Vorbereitung vor der Hauptphase. Hier erzeugte Ergebnisse können in der Hauptphase verwendet werden.
Hauptphase / steps | Der eigentliche Ablauf. repeating=true wiederholt diese Phase; aktuelle Ergebnisse werden je Durchlauf erneuert.
Endphase / endSteps | Aufräumen nach dem Ablauf, auch bei regulären Stopps beziehungsweise Fehlerbehandlung. endPhaseTimeoutSeconds begrenzt diese Phase auf 1–3600 Sekunden, Standard 10.

### Mit Bedingungen verzweigen

Struktur-Steps wie Else und End If lassen sich nicht wie normale Aktionen beliebig deaktivieren. Ergebnisse eines nicht ausgeführten Zweigs sind keine sicheren Quellen für einen späteren Pflichtverbraucher.
1. Füge If hinzu und wähle eine typisierte Quelle sowie einen passenden Vergleich. All bedeutet: alle Bedingungen müssen zutreffen; Any: mindestens eine.
2. Füge die Aktionen des ersten Zweigs ein. Ergänze bei Bedarf Else If und Else als alternative Zweige.
3. Schließe den Block mit End If. Verschachtelte Blöcke müssen jeweils vollständig geschlossen sein.
4. Prüfe auch den Fall ohne Treffer. Deaktivierte Steps, nicht gewählte Zweige und gültige, noch nicht verfügbare optionale Eingaben sind unterschiedliche Gründe für Nichtausführung.
[If](/doku/steps/if/)
[End If](/doku/steps/end_if/)
[Unterlagen-Beispiel](/beispiele/unterlagen/)

### Fortsetzen, stoppen und Eingaben aufräumen

Continue Job überspringt den verbleibenden aktuellen Hauptdurchlauf. End Job beendet den Job gemäß seiner Endphasenoption. Timeout wartet; er wiederholt keinen Step und ersetzt keine fachliche Bereitschaftsprüfung.
Bei Eingaben und Makros wirkt der aktuelle Desktopzustand: fokussiere das richtige Fenster und berücksichtige Bildschirmgeometrie. Block Input besitzt eine Sicherheitszeitgrenze; plane das Entsperren ein. Ein Abbruch kann gehaltene Tasten freigeben, macht bereits eingegebene Texte oder verschobene Dateien aber nicht rückgängig.
[Continue Job](/doku/steps/continue_job/)
[End Job](/doku/steps/end_job/)
[Block Input](/doku/steps/block_input/)

## Werte verbinden

Website: /doku/werte-verbinden/

Eine Eingabe enthält entweder einen direkten Wert, eine wiederverwendbare Variable, eine Geheimnisreferenz oder einen Ergebniswert eines anderen Steps. Anbieter, Typ und Anzahl müssen zum Verbraucher passen.

Abbildung: [Die Desktop-Textausgabe übernimmt die Beschriftung der Benutzerauswahl als Ergebnisquelle. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-werte.detail.png)

1. Text: Text oder kompatibler Anzeige-Wert aus einer Quelle. Für Benutzerauswahlen eignet sich selected_label.
2. Monitor: Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.
3. Schriftgröße (pt): Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.
4. Schriftfarbe: Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.
5. Deckkraft (%): Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.
6. Anzeigedauer (ms): Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.
7. Bei Job-Ende entfernen: Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.
8. Position: 
### Wertequellen in der Oberfläche auswählen

Ein technischer Step-Abschluss ist kein fachlicher Treffer: prüfe beispielsweise found, success oder available. Normale Ergebnisquellen müssen vor dem Verbraucher verfügbar sein. Dynamic ROI ist die ausdrücklich unterstützte Rückkopplungsausnahme; andere Vorwärtsreferenzen werden dadurch nicht erlaubt.
1. Öffne die Einstellung des konsumierenden Steps und die Quellenwahl am betreffenden Feld.
2. Für eine feste Einstellung wähle einen direkten Wert. Für mehrfach verwendete Einstellungen lege eine Job-Variable an. Für berechnete Werte wähle den produzierenden Step und dessen einzelne Ergebnis-Eigenschaft.
3. Prüfe den Typ: Text, Integer, Number, Boolean, Path, ProcessReference oder ein strukturierter Ergebniswert sind nicht beliebig austauschbar. Ein Text mit der Zahl 10 ist nicht automatisch ein Integer.
4. Prüfe die Anzahl: Single ist ein Einzelwert, OptionalSingle kann fehlen, Collection ist eine Liste. Der Eingabevertrag bestimmt, ob das erste Element, alle Elemente oder keine Listenauswahl zulässig ist.

### Anbieter und source_id

provider_id/source_id sind der aktuelle Referenzvertrag. Die früheren source_step_id, property_id und property_path bleiben für bestehende Jobs lesbar; für neue Verbindungen stabile Ergebnis-IDs und den Anbieter verwenden. Leere Referenzen sind keine konfigurierten Quellen.
local_value | GUID eines Eintrags in localValues. owner_step_id und input_path ordnen ihn genau einer Step-Eingabe zu.
job_variable | GUID eines Eintrags in variables; der deklarierte Typ und die Kardinalität bleiben maßgeblich.
step_result | v1/<URI-kodierte Step-ID>/<URI-kodierte stabile Ergebnis-ID>. Beide Teile separat wie Uri.EscapeDataString kodieren, keine Base64-Kodierung.
secret | Kennung eines vorhandenen Geheimnisses. Nur Felder verwenden, deren Anbieter-/Typvertrag dies erlaubt; nicht jedes Textfeld akzeptiert secret.
```json
{
  "provider_id": "step_result",
  "source_id": "v1/unterlagen-0/selected_value"
}
```

### Direkte Werte im aktuellen Jobformat

Der Editor speichert direkte Werte in localValues; inputs des Steps referenziert sie. Das ist keine Ersetzung durch einen eingebetteten value-Wert in inputs. Jede lokale GUID ist im Job eindeutig; owner_step_id muss auf den Besitzer zeigen und input_path den Feld-/Unterfeldpfad benennen.
localValues und variables enthalten id, name, description, scope, value_kind, cardinality und value. scope ist StepValue oder Shared. Enum-Werte ergänzen enum_type_name, enum_values und gegebenenfalls enum_display_names; sie sind Typmetadaten, keine Übersetzung des gespeicherten Werts.
Number-Anteile wie Konfidenz und Deckkraft speichern 0 bis 1, obwohl die UI Prozent zeigt: 90 % entspricht 0.9. Zeit-, Pixel- und Mengenfelder verwenden die Einheit der jeweiligen Feldreferenz.
```json
{
  "formatVersion": 4,
  "id": "11111111-1111-4111-8111-111111111111",
  "name": "Werteverbindung: 250 ms warten",
  "repeating": false,
  "variables": [],
  "localValues": [
    {
      "owner_step_id": "warten",
      "input_path": "delay_ms",
      "id": "bc418998-b3f1-a400-4db9-20e0d03deeda",
      "name": "timeout_delay_ms",
      "description": "timeout.delay_ms",
      "scope": "StepValue",
      "value_kind": "Integer",
      "cardinality": "Single",
      "value": 250
    }
  ],
  "startSteps": [],
  "steps": [
    {
      "type": "timeout",
      "id": "warten",
      "inputs": {
        "delay_ms": {
          "provider_id": "local_value",
          "source_id": "bc418998-b3f1-a400-4db9-20e0d03deeda"
        }
      },
      "is_enabled": true
    }
  ],
  "endSteps": [],
  "endPhaseTimeoutSeconds": 10
}
```
[Illustrierte Beispielabläufe](/beispiele/)

### Zusammengesetzte Werte und Listen

Ein ResultBinding kann schema_id sowie members oder items enthalten. members ist ein Objekt aus stabilen Mitglieds-IDs und weiteren Bindings; items ist eine geordnete Liste weiterer Bindings. Die Blattknoten verwenden provider_id/source_id. Ein beliebiger Objektaufbau oder frei erfundener schema_id ist nicht gültig.
Der exportierte Vertragsdatensatz enthält bindingSchemas: zu jeder versionierten Schema-ID die erlaubten Mitglieder, deren ValueKind, Cardinality, NestedSchemaId, AllowedProviderIds und LegacyAllowedProviderIds. ItemSchemaId beschreibt Listen. fieldSchemas ordnet zusammengesetzte Editorfelder ihrem Schema zu.
ROI verwendet desktopautomation.roi/v1 mit enabled, x, y, width, height. Ein Prozessziel verwendet desktopautomation.process-target/v1 mit process_name, executable_path und window_title_contains. Verschachtelte Einblendungs- und Antwortlisten besitzen eigene Schemas. Übernimm dafür die konkreten Vertragsdaten statt die sichtbare UI-Struktur als JSON zu erraten.
[Maschinenlesbare Vertragsdaten](/doku/vertragsdaten.json)
[Dynamic ROI](/doku/steps/dynamic_roi/)

### Fehlende Werte richtig behandeln

FailStep lässt fehlende erforderliche Werte fehlschlagen. SkipStep kann eine gültige, noch nicht verfügbare optionale Step-Quelle mit NoInput überspringen. UseDefault verwendet nur dort den definierten Standard, wo der Eingabevertrag es erlaubt. Eine kaputte Referenz oder ein falscher Typ ist kein harmlos fehlender Wert.
Die Step-Seiten zeigen AcceptedShapes, AllowedProviderIds, MissingValuePolicy und CollectionConsumption. Unbegrenzte Anbieterwahl hebt die Typprüfung nicht auf. Ergebnisse aus einer früheren, nicht mehr passenden Iteration nicht als neue Beobachtung behandeln.

## Jobs und Konfigurationen als JSON

Website: /doku/dateiformate/

Die App speichert Jobs, Makros und Automationen als getrennte UTF-8-JSON-Dateien. Diese Anleitung beschreibt den aktuellen Entwicklungsstand, nicht ein beliebiges älteres Release.

### Ablage und sicherer Bearbeitungsablauf

1. Erstelle eine Kopie beziehungsweise verwende ein eigenes Testprofil. Bearbeite keine Datei gleichzeitig im geöffneten Editor und extern.
2. Erhalte vorhandene Objekt-, Step-, Antwort- und Variablen-IDs beim Ändern. Vergib bei neuen Objekten eindeutige IDs und aktualisiere zugehörige Referenzen.
3. Speichere gültiges UTF-8-JSON: keine Kommentare, keine nachgestellten Kommas. Windows-Pfade benötigen doppelte Backslashes im JSON oder müssen vom Serializer geschrieben werden.
4. Lade die Datei über den vorgesehenen App-Konfigurationsweg, öffne sie im Editor und behebe die Validierungsfehler. Ein erfolgreicher JSON-Parser prüft noch keine Job-/Triggerregeln.
5. Teste den Ablauf manuell mit angepassten Testpfaden. Aktiviere zugehörige Automationen erst danach.
Jobs | %APPDATA%\DesktopAutomation\Configs\Job
Makros | %APPDATA%\DesktopAutomation\Configs\Makro
Automationen | %APPDATA%\DesktopAutomation\Configs\Automation
Profile | %APPDATA%\DesktopAutomation\Profiles\<Profil>\Configs\…
Logs | %LOCALAPPDATA%\DesktopAutomation\Logs\v2

### Die Job-Hülle

Die leere Hülle illustriert die Struktur; sie ist kein nützlicher ausführbarer Ablauf. Das Wertebeispiel in der Anleitung „Werte verbinden“ zeigt eine vollständige inputs/localValues-Datei.
formatVersion | 4 für aktuelle Jobs. Keine Versionsnummer erhöhen, um alte Dateien scheinbar zu migrieren.
id / name | Eindeutige Job-GUID und Anzeigename. Automations-Ziele und Start-Job-Steps referenzieren die ID.
repeating | Boolean: Wiederholung der Hauptphase.
variables / localValues | Typisierte wiederverwendbare Variablen und direkte Step-Werte. IDs, Besitzer und Referenzen konsistent halten.
startSteps / steps / endSteps | Geordnete Step-Listen je Phase; jeder Step besitzt type und eine eindeutige string-ID.
endPhaseTimeoutSeconds | Ganzzahl 1–3600; Standard 10. Zeitlimit der Endphase.
```json
{
  "formatVersion": 4,
  "id": "de2ef407-cc66-24bc-cdcd-9d258b46cc59",
  "name": "Mein Job",
  "repeating": false,
  "variables": [],
  "localValues": [],
  "startSteps": [],
  "steps": [],
  "endSteps": [],
  "endPhaseTimeoutSeconds": 10
}
```

### Step-Dateien: settings und inputs

type ist die stabile Step-ID wie timeout, user_choice oder file_system_operation. id ist die Identität dieser Instanz; is_enabled steuert normale Aktionen. Struktur-Steps können zusätzliche abgeleitete Mitglieder wie CanBeDisabled serialisieren; sie sind keine frei nutzbaren Funktionsschalter.
Bei aktuellen Steps mit nicht leerem inputs wird settings vom kanonischen Job-Serializer nicht zusätzlich geschrieben. Aktive Einstellungen stammen aus den Bindings und deren Quellen. Alte beziehungsweise strukturelle Defaultvorlagen mit leerem inputs besitzen weiterhin settings. Mische diese Wege nicht als zwei konkurrierende aktive Konfigurationen.
Jede Step-Seite enthält eine vom Serializer erzeugte strukturelle Defaultvorlage und erklärt auch die verschachtelten settings-Felder. Defaultvorlagen können leere Pflichtwerte enthalten. Für einen vollständigen gültigen Job speichere einen im Editor angelegten Job.
[Step-Referenz](/doku/steps/)
[Werte verbinden](/doku/werte-verbinden/)
[Validierte Beispiele](/beispiele/)

### Schreibweisen, Typen und Einheiten

Discriminator | Jobs/Makrobefehle: type. Automations-Trigger: $type. Groß-/Kleinschreibung und stabile IDs übernehmen.
Enums | Viele Fachwerte sind Namen wie Copy oder Ignore. MacroRecordingMode und Hotkey-Modifier sind dagegen Zahlen. Eine globale Umwandlung aller Enums in Strings ist falsch. Die JSON-Vorlage zeigt die tatsächliche Schreibweise.
TimeSpan | Zeichenfolge wie 00:00:01; wird zum Beispiel für Cooldown, Debounce und Verzögerungen verwendet.
Zeitpunkte / Uhrzeit | DateTimeOffset mit Offset, z. B. 2030-01-01T08:00:00+00:00; TimeOnly z. B. 08:30:00. Zeitpunkt und tägliche Uhrzeit nicht verwechseln.
Zeiten | Step-Felder meist ausdrücklich *_ms / *_seconds; Makro duration ist Millisekunden, durationUs und delayBeforeUs sind Mikrosekunden.
Zahlen / Booleans / null | JSON-Zahlen mit Punkt, true/false ohne Anführungszeichen. null, leere Zeichenfolge und 0 haben unterschiedliche Bedeutungen.
Konfidenz / Deckkraft | Anteil 0–1 im gespeicherten Zahlenwert; die UI kann Prozent anzeigen.
Koordinaten | Pixel gemäß jeweiligem Bildschirm-/Koordinatenmodus. Der virtuelle Desktop kann negative Koordinaten haben.

### Vollständige Dateien und Referenz herunterladen

Die Vertragsdaten bündeln App-Version, formatVersions, Descriptoren, Eingabeverträge, Ergebnis- und Windows-Kataloge, bindingSchemas, Feld-Schemazuordnungen, Erklärungen und tatsächliche Serializer-Vorlagen. Sie sind ein Referenzdatensatz, kein JSON-Schema und kein Ersatz für die App-Validatoren.
Die vollständige Textreferenz enthält dieselben Erklärungen wie die Website. Für einen Agenten sind stabile IDs und Ergebnisverträge maßgeblich, nicht übersetzte Anzeigenamen.
[Vertragsdaten als JSON](/doku/vertragsdaten.json)
[Vollständige Referenz als Markdown](/doku/referenz.md)
[Agenten-Einstieg](/llms.txt)

## Makros aufnehmen und bearbeiten

Website: /doku/makros-bearbeiten/

Ein Makro führt eine geordnete Folge von Maus- und Tastaturbefehlen aus. Die Aufnahmeumgebung und die Zeiteinheiten sind Teil des Vertrags.

Abbildung: [Gruppierte Maus- und Tastaturbefehle mit ausgewählter Tastenkombination.](/makro-editor.detail.png)

1. Key: Taste bzw. Tastenkombination für diesen Befehl.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### Eine Aufnahme vorbereiten

1. Lege ein Makro an und wähle den Aufnahmemodus sowie die zu erfassenden Eingaben. Einstellungen wirken auf zukünftige Aufnahmen.
2. ClicksOnly erfasst die ausgewählten Eingaben ohne vollständige Bewegungsspur. ScreenAccurateAbsolute erhält absolute Positionen; MotionFaithfulRelative verwendet relative Bewegung.
3. Prüfe Aufnahmetaste, Mindestintervall und Mindestdistanz. Die Stoppgeste kann aus der Aufnahme entfernt werden; automatische Bewegungsgruppen ordnen die Darstellung.
4. Beende die Aufnahme und kontrolliere Befehle, Gruppen und Timeline. Wähle für den ersten Test einen leeren Editor und die passende Bildschirmumgebung.
5. Führe das Makro aus und kontrolliere Logs. Down/Up-Paare vollständig halten; Gruppen ordnen die Darstellung. Maßgeblich für die Wiedergabe bleibt die geordnete Befehlsliste.
[Alle Makrobefehle](/doku/makros/)
[Aufnahme und Gruppen](/doku/makros/recording/)

### Makroformat 3

formatVersion / id / name | Version 3, eindeutige Makro-GUID, Anzeigename.
commands | Geordnete polymorphe Liste mit type und eindeutigen Befehls-IDs.
groups | Gruppen-ID, title und automatic. Ein Befehl verweist über groupId auf eine vorhandene Gruppe. Jede Gruppe muss Befehle enthalten; deren Befehle müssen einen zusammenhängenden Block in commands bilden, also nicht A–B–A.
recordingSettings | mode: 0=ClicksOnly, 1=ScreenAccurateAbsolute, 2=MotionFaithfulRelative. minimumIntervalUs: Mikrosekunden; minimumDistancePixels: Pixel. recordKeyboard, combineKeyboardInputs, recordMouseButtons, removeStopGesture und automaticMovementGroups sind Booleans. recordingHotkeyModifiers ist Bitmaske, recordingHotkeyVirtualKey Windows-Virtual-Key-Zahl.
recordedEnvironment | Optionale Aufnahmeumgebung: virtualDesktopX/Y/Width/Height beschreiben den virtuellen Desktop, recordedAtUtc den Aufnahmezeitpunkt, startCursorX/Y die optionale Startposition. Geometrie nicht frei erfinden.
```json
{
  "formatVersion": 3,
  "id": "95725efa-50bf-07cb-abf1-4f87f86b2103",
  "name": "Mein Makro",
  "commands": [],
  "groups": [],
  "recordingSettings": {
    "mode": 1,
    "minimumIntervalUs": 1000,
    "minimumDistancePixels": 0,
    "recordKeyboard": true,
    "combineKeyboardInputs": false,
    "recordMouseButtons": true,
    "removeStopGesture": true,
    "automaticMovementGroups": true,
    "recordingHotkeyModifiers": 0,
    "recordingHotkeyVirtualKey": 120
  },
  "recordedEnvironment": null
}
```

### Zeit, Tasten und Maus

Der Executor koordiniert Eingaben exklusiv und gibt von ihm gehaltene Tasten beziehungsweise Maustasten bei Fehler oder Abbruch frei. Er stellt keine bereits veränderten Dateien und Texte wieder her. Bildschirm-/Fokusänderungen können absolute Wiedergaben beeinflussen.
timeout.duration | Millisekunden: 200 bedeutet 0,2 Sekunden.
text_input.durationUs / key_combination.durationUs | Mikrosekunden: 200000 bedeutet 0,2 Sekunden.
delayBeforeUs | Optionale geplante Pause vor einem Befehl in Mikrosekunden.
key_down / key_up | Tastenkennung, z. B. CONTROL und VK_C. Aliase wie CTRL, STRG, ENTER und ESC werden kanonisch geparst.
key_combination.keys | Mindestens zwei unterschiedliche Tasten: zuerst Modifier, zuletzt eine Nicht-Modifier-Taste, z. B. ["CONTROL", "VK_C"].
mouse_move_absolute | x/y im virtuellen Desktop; Mehrmonitor-Layouts können negative Positionen besitzen.
mouse_move_relative / mouse_wheel | deltaX/deltaY: Bewegungsdifferenz beziehungsweise Rad-Deltas, keine absoluten Zielkoordinaten.
mouse_down / mouse_up | Passende Maustastenkennung und Gegenbefehl; konkrete erlaubte Namen in der Befehlsreferenz.
```json
{
  "type": "key_combination",
  "keys": [],
  "durationUs": 0,
  "id": "13effec4-5e09-0872-eac1-b63a4eb7e8e5"
}
```
[Tastenkombination](/doku/makros/key_combination/)
[Mausbewegung absolut](/doku/makros/mouse_move_absolute/)

## Automationen einrichten

Website: /doku/automationen-einrichten/

Ein Trigger beobachtet etwas. Die Startregeln entscheiden anschließend, ob der ausgewählte Job oder das Makro tatsächlich gestartet wird.

Abbildung: [Zeitplan und Ausführungsregeln einer Automation.](/automationen.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Uhrzeit und Tage: Legt die Uhrzeit und Wochentage der wiederkehrenden Ausführung fest.
3. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
4. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
5. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### Ziel und Startregeln festlegen

1. Erstelle eine deaktivierte Automation mit einem verständlichen Namen und wähle genau eine Triggerart.
2. Ergänze die spezifischen Felder: bei Hotkey Taste/Modifier, bei Zeitplan Tage/Uhrzeit, bei Ordnern existierender Pfad/Filter/Ereignis, bei Windows-Ereignissen Funktion und angebotene Parameter.
3. Wähle einen vorhandenen Job oder ein Makro. Eine gültige Ziel-ID ist erforderlich; ein Anzeigename allein referenziert das Ziel nicht.
4. Prüfe Cooldown und Zeitfenster. Wähle bewusst das Verhalten bei laufendem Ziel: ignorieren, stoppen, neu starten oder parallel starten.
5. Teste das Ziel manuell, aktiviere danach die Automation und prüfe Trigger, Entscheidung und Zielrun gemeinsam in Logs.
[Trigger, Aktionen und Startregeln](/doku/automationen/)

### Automationformat 1

formatVersion / id / name / description / active | Version 1, eindeutige GUID, Anzeigename, Beschreibung und Aktivierung. Neue Testdateien active=false lassen.
trigger | Polymorphes Objekt mit $type. Der kanonische Serializer schreibt zusätzlich Kind/kind als abgeleitete Angaben; die Vorlage unverändert als Struktur nutzen.
action | name als Anzeige, action_type Job oder Makro, passende job_id beziehungsweise makro_id als GUID. Nicht beide Ziele als aktive Auswahl behandeln.
run_policy | already_running_behavior, cooldown als TimeSpan sowie optionale enabled_from / enabled_until als tägliche Uhrzeiten.
created_at / updated_at / last_run_at | Zeitpunkte mit Offset; last_run_at kann null sein. Kein eigener Erfolgsbeleg für den Zieljob.
```json
{
  "formatVersion": 1,
  "id": "57f39786-8cfe-eb47-9796-a3248b787cf8",
  "name": "Meine Automation",
  "description": "",
  "active": false,
  "trigger": {
    "$type": "hotkey",
    "Kind": "Hotkey",
    "modifiers": 0,
    "virtual_key_code": 0,
    "debounce": "00:00:00",
    "delay_after_event": "00:00:00",
    "kind": "Hotkey"
  },
  "action": {
    "name": "",
    "job_id": null,
    "makro_id": null,
    "action_type": "Job"
  },
  "run_policy": {
    "already_running_behavior": "Ignore",
    "cooldown": "00:00:00",
    "enabled_from": null,
    "enabled_until": null
  },
  "created_at": "2030-01-01T08:00:00+00:00",
  "updated_at": "2030-01-01T08:00:00+00:00",
  "last_run_at": null
}
```

### Die elf Triggerarten

Die tatsächlichen stabilen IDs und konkreten Parameter stehen in den Trigger-Referenzen und Serializer-Vorlagen. Debounce und delay_after_event sind TimeSpan-Werte; Cooldown gehört dagegen zur Startregel.
hotkey | Windows-Virtual-Key-Zahl und Modifier-Bitmaske: Alt=1, Ctrl=2, Shift=4, Windows=8; Strg+Alt ist 3.
schedule | Wochentage und Uhrzeit für wiederkehrende geplante Starts.
once_at | Einmaliger Zeitpunkt mit Offset; vergangene Zeitpunkte bewusst prüfen.
interval | Periodischer Abstand als TimeSpan.
system_event | Eines der angebotenen Systemereignisse, beispielsweise Anwendung oder Sitzung.
file_system_event | Änderung eines existierenden beobachteten Ordners; Filter, Änderungsart und Unterordner beachten.
process_started | Beobachteter Prozessstart mit den angebotenen Filtern.
process_exited | Beobachtetes Prozessende mit den angebotenen Filtern.
windows_event | Eine vom Windows-Katalog als Ereignis unterstützte Funktion.
window_event | Beobachtete Fensteränderung mit Ereignisart, Prozess- und Titelfilter.
webhook | Authentifizierte HTTP-Anforderung an den konfigurierten lokalen Listener.
[Trigger-Katalog](/doku/automationen/)

### Webhook verwenden

Der Listener verwendet standardmäßig Port 17843. Offline bindet lokal; Lan beziehungsweise Online erweitern den Netzwerkzugriff gemäß Konfiguration. Ein Online-Modus richtet selbst keinen Tunnel ein. Die externe HTTPS-Basisadresse darf keine Query oder Fragmentteile enthalten.
Sende POST an /api/v1/webhooks/{hook_id}. Authentifiziere mit X-Webhook-Secret oder Authorization: Bearer <secret>. Der generierte Secretwert besitzt 48 Hexzeichen; die Validierung verlangt mindestens 24 Zeichen. Verwende für deine Installation einen eigenen Secretwert statt des Platzhalters in der Vorlage.
HTTP 202 bestätigt die Annahme, nicht den erfolgreichen Jobabschluss. Prüfe danach AutomationDecision und den verknüpften Zielrun. Portbelegung, Bind-Adresse, Authentifizierung und Startregeln können einen Start verhindern.
```json
{
  "$type": "webhook",
  "Kind": "Webhook",
  "hook_id": "d4fa91c4-b683-2c23-b89c-7ab50f8b606c",
  "network_mode": "Offline",
  "port": 17843,
  "secret": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
  "online_base_url": "",
  "kind": "Webhook"
}
```
[Webhook-Feldreferenz](/doku/automationen/webhook/)

## Logs lesen und auswerten

Website: /doku/logs-verstehen/

Logs unterscheiden den Start eines Ablaufs, seinen belegten Abschluss, fachliche Ergebnisse und die Vollständigkeit der gespeicherten Daten.

Abbildung: [Erfolgreiche und fehlgeschlagene Beispielausführungen mit Ergebnissen und Warnungen im Verlauf.](/verlauf.detail.png)

1. 2 Ausführungen mit neuen Problemen: Hinweis auf noch nicht angesehene Läufe mit Fehlern oder Warnungen.
2. Ergebnis: Zeigt Erfolg, Warnungen oder Fehler des abgeschlossenen Laufs.
3. Auslöser: Zeigt, ob der Lauf manuell oder durch eine Automation gestartet wurde.
4. Dauer: Zeitspanne der Ausführung; sie hilft, langsame oder ungewöhnliche Läufe zu erkennen.
### Einen Lauf in der UI untersuchen

1. Öffne Logs und grenze Quelle, Zeitraum und gegebenenfalls Schweregrad ein. Ein enger Schweregradfilter kann hilfreiche Details verbergen.
2. Öffne den betreffenden Lauf. Prüfe Outcome, CompletionReason und ob die Daten vollständig gelesen wurden.
3. Vergleiche Step-Übersicht und Einzelereignisse. Wiederholte erfolgreiche oder übersprungene Hauptphasen-Steps können in StepSummaries aggregiert sein; Warnungen und Fehler bleiben einzeln.
4. Bei Automationen zuerst Triggerbeobachtung und Startentscheidung lesen, dann den zugehörigen Job-/Makrolauf. Ein abgewiesener Start ist keine ausgeführte Aktion.
5. Exportiere den Bericht, wenn du den Ablauf weiter untersuchen möchtest. Prüfe vor Weitergabe die enthaltenen strukturierten Pfade und Identitäten.
[Alle Logfelder und Codes](/doku/logs/)

### Die vier Log-Ansichten

Beim Lesen beziehungsweise Scrollen kann die sichtbare Live-Aktualisierung pausieren; die Erfassung läuft weiter. Neu passende Ereignisse werden gezählt und können anschließend geladen werden. Weitere Seiten behalten ihren Abfrage-Snapshot, damit neue Ankünfte die Liste nicht verschieben.
Run-Export verwendet den aktuellen Filter und Checkpoint für alle passenden Läufe, nicht nur die sichtbare Seite. Bei Ereignisexport gelten entsprechend die Ereignisfilter. Nach einer Definitionänderung bleiben frühere Trigger-, Ziel- und Step-Snapshots erhalten; sie werden nicht aus der aktuellen Definition neu erfunden.
Übersicht | Zeigt aktuelle Läufe und neue Probleme. Die Problemzahl umfasst den gewählten Bestand, nicht nur die sichtbaren Vorschauzeilen.
Job-Ausführungen | Zeigt konkrete Jobläufe mit Status, Dauer und Step-Verlauf. Normales Öffnen zeigt auch erfolgreiche Läufe; die Problemaktion kann gezielt nur neue Probleme filtern.
Automationen | Zeigt Beobachtung und Entscheidung je Trigger-ID sowie zugehörige neue oder bereits laufende Ziele. Ein bloßer Startauftrag ohne belegten Lauf bleibt angefordert beziehungsweise unklar.
Anwendungsdiagnose | Erlaubt Suche nach Quelle, Fachbereich und Schweregrad. Die gezielte Quelle Application schließt Job-/Makro-Ereignisse aus; quellenübergreifende Diagnose berücksichtigt auch Domain-Ereignisse.

### Neu, Gesehen und Erledigt

Diese Markierungen beschreiben deinen Bearbeitungsstand eines Problems, nicht die Qualität des ausgeführten Jobs. Neu weist auf noch nicht bestätigte Probleme hin; Gesehen hält fest, dass eine konkrete Beobachtung gelesen wurde; Erledigt ist eine ausdrückliche Bearbeitungsmarkierung.
Nach erfolgreichem Laden einer Problembeobachtung wird nur diese Auswahl bestätigt. Andere ungesehene Probleme desselben Steps oder Laufs bleiben neu. Eine erneut beobachtete gleiche Problem-ID bleibt bestätigt; neue Problem-IDs oder eine höhere Schwere können wieder Aufmerksamkeit benötigen.
Die Markierungen werden getrennt von den unveränderten Logs gespeichert und über Neustarts erhalten. Sie ändern weder ursprüngliche Fehler-/Warnungszahlen noch die Aufbewahrung oder den Export der Ausführungsbelege. Du kannst eine Markierung ausdrücklich wieder öffnen.
Bei Speicherfehlern bleibt die Bestätigung als Fehler sichtbar; die UI soll keinen erfolgreich gespeicherten Status vortäuschen. Bei unvollständiger Evidenz wird eine bestätigte Laufzusammenfassung separat behandelt, statt nicht vorhandene Ereignisse zu erfinden.

### Vom Log zum betroffenen Step

Wähle den konkreten Step beziehungsweise die konkrete Ausführung im Laufdetail. Die Navigation verwendet gespeicherte Step-ID, Phase, Position und Ausführungs-ID und prüft dann, ob der aktuelle Job und Step noch existieren.
Gelöschte Definitionen oder nicht mehr verfügbare Pfade werden mit einem Grund angezeigt. Diagnoseaktionen können erlaubte Ordner beziehungsweise Dateien im Explorer anzeigen; sie führen keine im Log genannten Dateien aus. Auch ein nicht ausgeführter Step kann über seinen vorhandenen Snapshot nachvollzogen werden.

### Identitäten und Status

Nach einem Neustart kann ein vorher offener Lauf als interrupted/incomplete erkannt werden. Ein unbekannter Abschlusszeitpunkt wird nicht erfunden. found=false beziehungsweise available=false im Step-Ergebnis bleibt eine fachliche Aussage, die vom technischen Step-Status getrennt zu prüfen ist.
RunId | Identität eines konkreten Laufs; nicht mit Job-/Makro-/Automation-ID verwechseln.
Source / SourceId | Art und Identität der Ursprungsdefinition.
StepId / StepExecutionId | Konfigurierter Step und konkrete Ausführung; Wiederholungen können neue Ausführungs-IDs besitzen.
ParentRunId / RelatedInstanceIds | Verbindung zu übergeordneten beziehungsweise zugehörigen Läufen/Instanzen.
Outcome / CompletionReason | Belegtes Resultat und Abschlussgrund. Start, Dispatch und eine Ausgabe ersetzen keinen terminalen Abschluss.
IsComplete / LostEntries / Issues / ReadState | Qualität der Belege. Bei Lücken keinen Erfolg aus fehlenden Fehlerereignissen ableiten.

### JSONL und Support-Export

Schema-Version 2 schreibt strukturierte JSONL-Ereignisse, Laufmetadaten und Speicherzustand unter dem lokalen Logs/v2-Verzeichnis. Eine JSONL-Zeile ist ein JSON-Objekt. Context trägt die Zuordnung; Code ist stabiler als der übersetzte Message-Text.
Der ZIP-Export enthält einen Manifest-/Übersichtsbestand, runs.json, JSONL-Ereignisse und report.txt. Der Store wird davor gespült; ein bestehendes Exportziel wird nicht überschrieben. Lies Laufzusammenfassung und Ereignisse gemeinsam, statt nur nach Fehlertexten zu suchen.
Retention hält Ereignisse standardmäßig ungefähr 30 Tage und bis ungefähr 500 MiB. Aktive geschützte Läufe können Grenzen überschreiten. Das Alter richtet sich nach dem letzten Anhängen eines Segments, nicht jeder einzelnen Zeile; Aufräumen erfolgt beim Start, bei Rotation und stündlich. Das Bestätigen eines Log-Hinweises verlängert die Aufbewahrung nicht.
Unlesbare Dateien und bekannte Verluste ergeben Partial/Unavailable beziehungsweise einen unvollständigen Bestand. Die UI kann lesbare Teile weiterhin zeigen. Ältere Logs werden nicht zu einem künstlich vollständigen v2-Lauf zusammengemischt.

### Ein Ereignis als JSON lesen

Dieses synthetische Ereignis wurde mit den echten Log-Serializeroptionen erzeugt. In einer JSONL-Datei steht das Objekt auf einer einzelnen Zeile. PascalCase-Feldnamen wie SchemaVersion, Code und Context sowie Enum-Namen wie Job und Information bleiben erhalten.
Context.RunId verbindet das Ereignis mit dem Lauf, StepId mit der Konfiguration und StepExecutionId mit dieser konkreten Ausführung. step.completed und DurationMs=250 belegen diesen Step-Abschluss; der Abschluss des ganzen Jobs benötigt weiterhin den zugehörigen Laufstatus beziehungsweise run.completed.
Für Abfragen verwenden LogQuery und LogPage die dokumentierten Filter, Snapshot-/Sequenzgrenzen und den Lesezustand. LogStepExecution verbindet Ereignisse, Status, Ursache und gegebenenfalls eine aggregierte Summary.
```json
{
  "SchemaVersion": 2,
  "Id": "22222222-2222-4222-8222-222222222222",
  "Sequence": 2,
  "Timestamp": "2030-01-01T08:00:01+00:00",
  "Source": "Job",
  "SourceId": "11111111-1111-4111-8111-111111111111",
  "SourceName": "Werteverbindung: 250 ms warten",
  "Area": "Execution",
  "Level": "Information",
  "Code": "step.completed",
  "Message": "Beispiel: Warte-Step beendet.",
  "Details": null,
  "Context": {
    "RunId": "33333333-3333-4333-8333-333333333333",
    "InstanceId": null,
    "TriggerId": null,
    "AutomationId": null,
    "StepId": "warten",
    "StepExecutionId": "44444444-4444-4444-8444-444444444444",
    "ParentRunId": null
  },
  "ProblemId": null,
  "DiagnosticCode": null,
  "Phase": "Main",
  "Iteration": 1,
  "DurationMs": 250,
  "Parameters": {},
  "BranchDecision": null,
  "Trigger": null,
  "Paths": [],
  "FlowEffect": null,
  "Category": "Execution",
  "RelatedInstanceIds": []
}
```

### Welche Daten aufgezeichnet werden

Strukturierte Details folgen einer Allowlist. Bekannte geladene Secrets werden maskiert; rohe Eingabetexte, Skriptargumente und Bilder werden nicht pauschal als Datenabbild gespeichert. Erlaubte Dateipfade und Identitäten können dennoch im Bericht stehen.
Für Agenten: Code, typisierte Statuswerte, Run-/Step-IDs und Vollständigkeit auswerten. Message dient Menschen. Verlorene Ereignisse nicht rekonstruieren und unbekannte Endzeitpunkte nicht ersetzen.
[LogEvent](/doku/logs/LogEvent/)
[LogRun](/doku/logs/LogRun/)
[storage.gap](/doku/logs/storage.gap/)

## Windows-Funktionen verwenden

Website: /doku/windows-funktionen/

Der Windows-Katalog unterscheidet Ereignisse, typisierte Zustandsabfragen und Einstellungsänderungen. Eine Funktion unterstützt nur die im Katalog gesetzten Fähigkeiten.

Abbildung: [Prozessstatus und bedingter Programmstart im Job-Editor.](/arbeitsplatz.detail.png)

1. Bei jedem Durchlauf: Diese Steps werden in jedem Durchlauf der Hauptphase ausgeführt.
2. Wenn: Beginnt einen Zweig, der bei erfüllter Bedingung ausgeführt wird.
3. Sonst: Dieser Zweig wird ausgeführt, wenn die vorherigen Bedingungen nicht zutreffen.
4. Prozessstatus prüfen: Liefert, ob der angegebene Prozess läuft; das Ergebnis kann einen Wenn-Zweig steuern.
### Die passende Funktion auswählen

Ein Ereignis ist keine aktuelle Zustandsabfrage. Eine reine Einstellung bietet nicht automatisch einen Abfragevertrag. Verfügbarkeit hängt von Windows-Version, installierter Hardware/Diensten und Berechtigungen ab. Anforderungen wie RequiresElevation stehen in den Vertragsdaten.
1. Wähle für eine aktuelle Beobachtung den Step Windows-Zustand abfragen und eine Funktion mit SupportsStateQuery.
2. Wähle für einen Start bei Änderungen eine Windows-Ereignis-Automation und eine Funktion mit SupportsEvents.
3. Wähle für eine Änderung den Step Windows-Einstellung ändern und eine Funktion mit SupportsSettingChange.
4. Ergänze die angebotenen Parameter und nutze vorhandene Geräte, Profile, Drucker oder Energiesparpläne. Prüfe Ergebnisstatus und Fehlercode, bevor du einen Folge-Step darauf aufbaust.
[Windows- und Ergebnisreferenzen](/doku/werte/)
[Windows-Zustand](/doku/steps/windows_state_query/)
[Windows-Einstellung](/doku/steps/windows_setting_change/)

### Parameter und Ergebnisse für Textdateien

Verwende die genaue Capability-ID wie network.connectivity oder audio.master_volume. Parameters enthält Name, Type, DefaultValue, AllowedValues und Grenzen; die Werte werden nicht aus dem Anzeigenamen einer Funktion abgeleitet.
Der jeweilige Ergebnisvertrag beschreibt stabile Property-IDs, Datentypen, Kardinalität und Enum-Werte. Erst Success beziehungsweise den fachlichen Erfolgswert prüfen, dann die abgefragte Eigenschaft auswerten. Unsupported, AccessDenied und Timeout beschreiben fehlgeschlagene Beobachtungen, nicht einen ausgeschalteten oder negativen Systemzustand.

## Dokumentation für Agenten

Website: /doku/agenten/

Ein Agent kann diese Referenz ohne Browser lesen und daraus Dateien erstellen oder bestehende Konfigurationen bearbeiten. Die UI- und Dateianleitungen verwenden dieselben kanonischen Verträge.

### Die Dokumentation maschinell lesen

Lies zuerst Version und Dateiformate, dann den konkreten Step-/Trigger-/Makrovertrag. Die vollständige Referenz enthält alle Feld-, Options-, Eingabe- und Ergebnis-Erklärungen. JSON-Vertragsdaten erlauben gezieltes Nachschlagen; es handelt sich um Referenzdaten, nicht ein ausführbares Programm oder JSON-Schema.
Für kleine Kontexte enthält llms.txt Links auf einzelne Markdown-Referenzen. Jede Funktionsseite bietet außerdem vertrag.json mit genau ihrem Vertrag, ihren Erklärungen und ihrer Vorlage. Der Referenzindex ordnet stabile IDs diesen URLs zu; so muss ein Agent nicht die gesamte mehrmegabytegroße Referenz lesen.
[Kompakter Einstieg: llms.txt](/llms.txt)
[Vollständiger Text: llms-full.txt](/llms-full.txt)
[Vollständige Referenz als Markdown](/doku/referenz.md)
[Verträge, Erklärungen und Serializer-Vorlagen als JSON](/doku/vertragsdaten.json)

### Verlässlicher Bearbeitungsablauf

1. Bestimme App-Version und Formatversion der vorhandenen Datei. Behalte bestehende IDs und Eigenschaften, wenn der Auftrag sie nicht ändert.
2. Wähle stabile type- beziehungsweise $type-IDs aus der Referenz. Für Windows-Funktionen nur unterstützte Capability-IDs und Parameter verwenden.
3. Modelliere den Datenfluss: Anbieter, Source-ID, Typ, Kardinalität und Produzentenreihenfolge prüfen. Für direkte Werte aktuelle inputs/localValues verwenden; compound schemas nicht frei erfinden.
4. Prüfe jede Einheit und Enum-Schreibweise an der tatsächlichen JSON-Vorlage. Defaultvorlagen mit leeren Pflichtwerten ergänzen; sie nicht als erfolgreich geprüften Ablauf ausgeben.
5. Schreibe eine separate UTF-8-Datei, prüfe JSON-Syntax und lade sie zur fachlichen Validierung in die App. Bei Zugriff auf das Repository bestehende Serializer, Migratoren und Validatoren verwenden.
6. Teste mit passenden Testdaten und deaktivierten Automationen. Prüfe in Logs technischen Status, fachliches Ergebnis und vollständige Belege.
7. Berichte konkret, ob nur die Datei erzeugt, die Konfiguration fachlich validiert oder der Ablauf tatsächlich ausgeführt wurde.

### Bei Produktänderungen die Doku mitpflegen

Agenten im Repository müssen die betroffenen Anleitungen, Referenztexte, Werte-/Optionsbeschreibungen, Dateibeispiele und gegebenenfalls Screenshots in derselben Änderung pflegen. Das gilt auch für reine Verhaltensänderungen ohne neue Felder.
website/Build.ps1 exportiert die kanonischen Verträge und validiert die internen Beispielkonfigurationen. Der Website-Check vergleicht Quellen, Export und Ausgabe und prüft vollständige Erklärungsschlüssel, Verweise und Regressionen. Der vollständige Repository-Check eng/verify.ps1 -Mode Full bleibt das Abschlusskriterium.
Der Generator aktualisiert technische Kataloge und Seiten, schreibt aber keine ungeprüften Verhaltenserklärungen. Neue oder geänderte Konzepte benötigen eine semantische Prüfung durch den bearbeitenden Agenten.

## Fehler systematisch eingrenzen

Website: /doku/fehlerbehebung/

Beginne beim ersten belegten Fehler und prüfe Quelle, fachliche Voraussetzungen und Startentscheidung getrennt.

Abbildung: [Zwei Kopieraktionen mit Rückfrage und alternativem Zweig.](/sicherung.detail.png)

1. Bei jedem Durchlauf: Diese Steps werden in jedem Durchlauf der Hauptphase ausgeführt.
2. Benutzerauswahl abfragen: Fragt eine Antwort ab; deren Rückgabewert steuert die folgenden Bedingungen.
3. Wenn: Beginnt einen Zweig, der bei erfüllter Bedingung ausgeführt wird.
4. Sonst: Dieser Zweig wird ausgeführt, wenn die vorherigen Bedingungen nicht zutreffen.
### Eine Eingabe fehlt oder hat den falschen Typ

1. Öffne den konsumierenden Step und identifiziere das fehlerhafte Feld.
2. Prüfe provider_id/source_id beziehungsweise die Auswahl im Editor. Existieren Variable, Secret oder Produzent und dessen stabile Ergebnis-ID?
3. Vergleiche Datentyp und Kardinalität mit dem Eingabevertrag. Prüfe bei localValues Besitzer-ID, input_path und tatsächlichen value-Typ.
4. Prüfe, ob der Produzent in diesem Zweig und Durchlauf tatsächlich ausgeführt wurde. Eine optionale fehlende Quelle kann überspringen; ein falscher Typ bleibt ein Fehler.

### Eine Dateiaktion schlägt fehl

Prüfe zuerst die aufgelösten Quell- und Zielpfade, den gewählten Operationsmodus, Existenz, Filter und Schreibrechte. Bei Copy/Move/Rename gelten unterschiedliche Zielfelder; eine Liste von Treffern ist kein einzelner Pfad.
Bei gesperrten Dateien retry_locked_files, retry_count und retry_delay_ms prüfen. Wiederholungen schaffen keine fehlenden Berechtigungen. Arbeite mit einem Testordner und überprüfe die fachlichen Ergebniswerte sowie step.paths, soweit vorhanden.
[Dateioperation](/doku/steps/file_system_operation/)

### Die Automation startet das Ziel nicht

Prüfe active und ob der Trigger tatsächlich beobachtet wurde. Prüfe danach AutomationDecision: ungültiges Ziel, Cooldown, Zeitfenster oder ein laufendes Ziel können einen Start verhindern.
Bei Hotkeys Modifier-Bitmaske und Virtual-Key-Code prüfen; bei Ordnern existierendes Verzeichnis und Filter; bei Zeitplänen Zeitpunkt/Uhrzeit und Tage; bei Webhooks Bind-Adresse, Port und Secret. Ein Triggerereignis oder HTTP 202 beweist noch keinen fertigen Zieljob.

### Logs wirken leer oder unvollständig

Erweitere zunächst Quelle, Zeitraum und Schweregradfilter. Lies auch StepSummaries, weil nicht jeder erfolgreiche wiederholte Step als separate Ereigniszeile gespeichert wird.
Prüfe ReadState, IsComplete, LostEntries und Issues. Ein Aufbewahrungsablauf, nicht lesbare Datei oder Speicherverlust begrenzt die Diagnose. Berichte diese Grenze statt fehlende Ereignisse als Erfolg auszulegen.

## Version und Kompatibilität

Website: /doku/kompatibilitaet/

Diese Referenz beschreibt den Repository-Entwicklungsstand 1.6.1 vom 8. Oktober 2026.

Diese Dokumentation beschreibt den Repository-Entwicklungsstand 1.6.1 vom 8. Oktober 2026, einschließlich noch nicht separat veröffentlichter Änderungen. Sie ist keine Zusage, dass ein unverändertes älteres Download-Release jeden beschriebenen Vertrag besitzt. Gespeicherte Formate sind Job 4, Makro 3 und Automation 1; vorhandene ältere Formate werden über die vorgesehenen Kompatibilitätswege gelesen.

### Entwicklungsstand und Download

Die Beschreibung enthält Änderungen des aktuellen Arbeitsbaums, die noch nicht separat veröffentlicht sein können. Ein unverändertes älteres Download-Release besitzt deshalb möglicherweise nicht alle beschriebenen Felder oder Funktionen.
Aktuelle gespeicherte Formate sind Job 4, Makro 3 und Automation 1. Versionsnummern gehören zum jeweiligen Dateivertrag, nicht zur Website. Bestehende Dateien werden über die vorgesehenen Kompatibilitätswege gelesen; eine manuelle Versionsänderung ist keine Migration.

### Vorhandene Konfigurationen erhalten

Legacy-settings und ältere Ergebnisreferenzen bleiben über die vorgesehenen Lesepfade unterstützt. Beim Bearbeiten bestehender Dateien Identitäten und Referenzen erhalten und nach dem Laden die fachliche Validierung prüfen.
Die Website-Vorlagen stammen direkt vom Serializer; Defaultwerte sind keine Zusage, dass leere Ziel-/Quellfelder einen ausführbaren Ablauf ergeben. Vollständige Beispiele sind gesondert validiert und müssen für die lokale Umgebung angepasst werden.
[Dateiformate](/doku/dateiformate/)
[Beispielabläufe](/beispiele/)

## Steps: Prozessstatus prüfen

ID: active_process
Website: /doku/steps/active_process/

Abbildung: [Die Prozessabfrage prüft notepad und liefert den Status für die anschließende Bedingung. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-prozessstatus.detail.png)

1. Prozessreferenz: Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

get_process sucht notepad; active_process liest dessen process und ein Wenn-Step prüft is_running.

### field.process_target

Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.

### input.process

konkrete Prozessreferenz. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle eine Prozessreferenz, um festzustellen, ob genau diese Instanz noch läuft. Anders als eine Fenstersuche benötigt diese Prüfung kein sichtbares Fenster. Kombiniere is_running mit einem Wenn-Step, bevor du einen Prozess erneut startest.

### result.is_running

Ob die geprüfte Prozessinstanz beziehungsweise die Prozessabfrage einen laufenden Prozess festgestellt hat. Einzelwert dieses Ergebnisses.

### result.match_count

Anzahl passender Prozesse oder Merkmalszuordnungen im konkreten Ergebnis; der Ergebnis-Typ bestimmt, was gezählt wird. Einzelwert dieses Ergebnisses.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.target

Prozess-Zielkonfiguration aus Name/Pfad/Titel oder einer konkreten Prozessreferenz. Die konkrete Referenz schützt vor Verwechslung gleichnamiger Instanzen.

### schema.settings.target.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### schema.settings.target.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### schema.settings.target.process_source

Referenz auf eine konkrete laufende Programminstanz, üblicherweise process aus get_process oder start_process.

### schema.settings.target.process_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.target.process_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.target.process_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.target.process_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.target.process_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.target.process_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.target.process_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.target.process_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.target.process_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.target.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "active_process",
  "name": "Prozessstatus prüfen",
  "description": "Prüft nur, ob eine passende Programminstanz läuft; ein sichtbares Fenster ist nicht erforderlich.",
  "category": "ProgrammeFenster",
  "uiFieldIds": [
    "process_target"
  ],
  "fields": [
    {
      "id": "process_target",
      "name": "Prozessreferenz",
      "descriptor": {
        "Id": "process_target",
        "LabelKey": "Ui.Step.Settings.ProcessSource",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "process-target-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "process",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "ActiveProcessSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target",
      "name": "target",
      "type": "ProcessTargetSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.executable_path",
      "name": "executable_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source",
      "name": "process_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "process",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "ActiveProcessResult",
    "DisplayName": "ActiveProcessResult",
    "Properties": [
      {
        "Name": "IsRunning",
        "DisplayName": "Is Running",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_running",
        "EnumDisplayNames": null,
        "StableId": "is_running"
      },
      {
        "Name": "MatchCount",
        "DisplayName": "Match Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "match_count",
        "EnumDisplayNames": null,
        "StableId": "match_count"
      },
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsRunning",
        "DisplayName": "Is Running",
        "Property": {
          "Name": "IsRunning",
          "DisplayName": "Is Running",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_running",
          "EnumDisplayNames": null,
          "StableId": "is_running"
        },
        "Children": []
      },
      {
        "Segment": "MatchCount",
        "DisplayName": "Match Count",
        "Property": {
          "Name": "MatchCount",
          "DisplayName": "Match Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "match_count",
          "EnumDisplayNames": null,
          "StableId": "match_count"
        },
        "Children": []
      },
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "active_process",
  "settings": {
    "target": {
      "process_source": {
        "provider_id": "",
        "source_id": ""
      },
      "process_name": "",
      "executable_path": "",
      "window_title_contains": ""
    }
  },
  "id": "7d3962ef-45d1-44a8-69db-2fa973922fc6",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Vordergrundfenster prüfen

ID: active_window
Website: /doku/steps/active_window/

Abbildung: [Detailansicht: Vordergrundfenster prüfen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-active-window.detail.png)

1. Prozessreferenz: Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.
2. Ergebnis zwischenspeichern (ms): Dauer in Millisekunden, für die das Abfrageergebnis wiederverwendet werden kann. Bei zeitkritischen Fokusprüfungen eine kurze Dauer wählen.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

get_process liefert eine Editorinstanz; active_window prüft vor dem Text-Makro, ob ihr Fenster im Vordergrund ist.

### field.cache_ms

Dauer in Millisekunden, für die das Abfrageergebnis wiederverwendet werden kann. Bei zeitkritischen Fokusprüfungen eine kurze Dauer wählen.

### field.process_target

Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.

### input.process

konkrete Prozessreferenz. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Prüfe das Vordergrundfenster der gewählten Prozessinstanz. Mit einem Titelteil grenzt du mehrere Fenster desselben Programms ein. Ein laufender Prozess ist nicht automatisch das aktive Fenster; verwende für Eingaben anschließend gegebenenfalls „Fenster anzeigen oder minimieren“.

### result.is_active

Ob das geprüfte Fenster zum Abfragezeitpunkt im Vordergrund ist. Einzelwert dieses Ergebnisses.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.cache_ms

Dauer in Millisekunden, für die das Abfrageergebnis wiederverwendet werden kann. Bei zeitkritischen Fokusprüfungen eine kurze Dauer wählen.

### schema.settings.target

Prozess-Zielkonfiguration aus Name/Pfad/Titel oder einer konkreten Prozessreferenz. Die konkrete Referenz schützt vor Verwechslung gleichnamiger Instanzen.

### schema.settings.target.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### schema.settings.target.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### schema.settings.target.process_source

Referenz auf eine konkrete laufende Programminstanz, üblicherweise process aus get_process oder start_process.

### schema.settings.target.process_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.target.process_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.target.process_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.target.process_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.target.process_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.target.process_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.target.process_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.target.process_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.target.process_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.target.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "active_window",
  "name": "Vordergrundfenster prüfen",
  "description": "Prüft, ob ein konkretes Fenster eines Prozesses im Vordergrund ist. Optional kann nach einem Fenstertitel gefiltert werden.",
  "category": "ProgrammeFenster",
  "uiFieldIds": [
    "process_target",
    "cache_ms"
  ],
  "fields": [
    {
      "id": "process_target",
      "name": "Prozessreferenz",
      "descriptor": {
        "Id": "process_target",
        "LabelKey": "Ui.Step.Settings.ProcessSource",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "process-target-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "process",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "cache_ms",
      "name": "Ergebnis zwischenspeichern (ms)",
      "descriptor": {
        "Id": "cache_ms",
        "LabelKey": "Ui.Step.Settings.CacheMs",
        "ValueKind": "Duration",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": "Ui.Step.Settings.ActiveWindowResultHint",
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "ActiveWindowSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.cache_ms",
      "name": "cache_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.target",
      "name": "target",
      "type": "ProcessTargetSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.executable_path",
      "name": "executable_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source",
      "name": "process_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "process",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "ActiveWindowResult",
    "DisplayName": "ActiveWindowResult",
    "Properties": [
      {
        "Name": "IsActive",
        "DisplayName": "Is Active",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_active",
        "EnumDisplayNames": null,
        "StableId": "is_active"
      },
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      },
      {
        "Name": "WindowHandle",
        "DisplayName": "Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "window_handle",
        "EnumDisplayNames": null,
        "StableId": "window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsActive",
        "DisplayName": "Is Active",
        "Property": {
          "Name": "IsActive",
          "DisplayName": "Is Active",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_active",
          "EnumDisplayNames": null,
          "StableId": "is_active"
        },
        "Children": []
      },
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "WindowHandle",
        "DisplayName": "Window Handle",
        "Property": {
          "Name": "WindowHandle",
          "DisplayName": "Window Handle",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "window_handle",
          "EnumDisplayNames": null,
          "StableId": "window_handle"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "active_window",
  "settings": {
    "target": {
      "process_source": {
        "provider_id": "",
        "source_id": ""
      },
      "process_name": "",
      "executable_path": "",
      "window_title_contains": ""
    },
    "cache_ms": 0
  },
  "id": "5677c907-b7f4-9a68-922c-bdab08b907ff",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Eingaben blockieren

ID: block_input
Website: /doku/steps/block_input/

Abbildung: [Detailansicht: Eingaben blockieren. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-block-input.detail.png)

1. Automatisch freigeben nach (s): Maximale Sicherheitsdauer der Eingabesperre in Sekunden. Plane zusätzlich eine ausdrückliche Freigabe beziehungsweise reguläres Job-Aufräumen.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Blockiere Eingaben für fünf Sekunden, sende ein Makro und gib sie anschließend mit unblock_input frei.

### field.safety_timeout_seconds

Maximale Sicherheitsdauer der Eingabesperre in Sekunden. Plane zusätzlich eine ausdrückliche Freigabe beziehungsweise reguläres Job-Aufräumen.

### purpose

Sperre physische Maus- und Tastatureingaben für eine kurze automatisierte Eingabesequenz. Setze eine endliche Sicherheitsfrist und plane die Freigabe in der Endphase. Die Sperre wird durch den Job besessen und beim Aufräumen freigegeben; sie ist keine Sperre einzelner Programmfenster.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.safety_timeout_seconds

Maximale Sicherheitsdauer der Eingabesperre in Sekunden. Plane zusätzlich eine ausdrückliche Freigabe beziehungsweise reguläres Job-Aufräumen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "block_input",
  "name": "Eingaben blockieren",
  "description": "Blockiert physische Maus- und Tastatureingaben vorübergehend.",
  "category": "AblaufSteuern",
  "uiFieldIds": [
    "safety_timeout_seconds"
  ],
  "fields": [
    {
      "id": "safety_timeout_seconds",
      "name": "Automatisch freigeben nach (s)",
      "descriptor": {
        "Id": "safety_timeout_seconds",
        "LabelKey": "Ui.Step.Settings.SafetyTimeoutSeconds",
        "ValueKind": "Integer",
        "Required": true,
        "DefaultValue": 30,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": 3600,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "BlockInputSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.safety_timeout_seconds",
      "name": "safety_timeout_seconds",
      "type": "Int32",
      "options": [],
      "defaultValue": 30
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "InputControlResult",
    "DisplayName": "InputControlResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "block_input",
  "settings": {
    "safety_timeout_seconds": 30
  },
  "id": "c79b421d-88ca-12f3-f47f-cb78a41eab44",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Kamerabild aufnehmen

ID: camera_capture
Website: /doku/steps/camera_capture/

Abbildung: [Detailansicht: Kamerabild aufnehmen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-camera-capture.detail.png)

1. Kamera: Kameraauswahl im Editor. Übernimm ein auf dem Zielrechner verfügbares Gerät und den gewünschten Aufnahme-/Qualitätsmodus.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Kamera auswählen → Kamerabild aufnehmen → Bild anzeigen mit image als Bildquelle.

### field.camera

Kameraauswahl im Editor. Übernimm ein auf dem Zielrechner verfügbares Gerät und den gewünschten Aufnahme-/Qualitätsmodus.

### purpose

Wähle eine Kamera und lasse ein Einzelbild aufnehmen. Der Step liefert ein Bildobjekt für nachfolgende Erkennung, Vorschau oder Speicherung. Prüfe Kameraberechtigung und Geräteverfügbarkeit; die Aufnahmezeit bezeichnet den Empfang des Bildes und nicht einen garantierten Belichtungszeitpunkt.

### result.bounds

Ermitteltes Rechteck im Koordinatenraum des entsprechenden Ergebnisobjekts. Einzelwert dieses Ergebnisses.

### result.bounds.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.height

Höhe des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Einzelwert dieses Ergebnisses.

### result.bounds.left

Linke Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Einzelwert dieses Ergebnisses.

### result.bounds.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.top

Obere Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.width

Breite des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.capture_timestamp_utc

UTC-Zeitpunkt des erfassten Bildes; bei wiederverwendeten Frames bleibt der ursprüngliche Zeitpunkt erhalten. Einzelwert dieses Ergebnisses.

### result.frame_timestamp

Monotoner Stopwatch/QPC-Zeitstempel des Frames. 0 bedeutet unbekannt; dies ist kein Datum in Millisekunden seit 1970. Einzelwert dieses Ergebnisses.

### result.frame_version

Laufzeit-Identität des Frames innerhalb seines Aufnahmeproduzenten. Cache-/Zeigeraktualisierungen sind keine neuen Desktop-Bildversionen; nicht zwischen unabhängigen Kameras/Monitorquellen vergleichen. Einzelwert dieses Ergebnisses.

### result.has_image

Ob die Zwischenablage ein Bild enthält. Daraus folgt nicht automatisch, dass ein Bild als persistierbares JSON-Literal vorliegt. Einzelwert dieses Ergebnisses.

### result.image

Laufzeit-Bildobjekt für Bildverbraucher. Es wird nicht als Bitmap-Payload in der Jobdatei gespeichert. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_fresh

Ob die Aufnahme einen frischen Frame statt einer zwischengespeicherten Aufnahme geliefert hat. Einzelwert dieses Ergebnisses.

### result.offset

Pixelversatz der Bildquelle gegenüber dem globalen Desktop. Bei bildlokalen Punkten addieren, bevor sie global verwendet werden. Einzelwert dieses Ergebnisses.

### result.offset.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.offset.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.camera_id

Gespeicherte Geräte-ID der Kamera. Ein Anzeigename allein garantiert bei mehreren Geräten keine eindeutige Zuordnung.

### schema.settings.camera_name

Gespeicherter lesbarer Kameraname für Auswahl und Anzeige.

### schema.settings.frames_per_second

Gewünschte Anzahl Videobilder je Sekunde. Die tatsächliche Aufnahme hängt auch von der gelieferten Bildrate ab.

### schema.settings.height

Höhe des Kamerabilds in Pixeln für einen konkreten Aufnahmemodus, zum Beispiel 720. Im Editor den vollständigen angebotenen Modus wählen. Bei automatischer Qualität muss keine eigene Höhe eingetragen werden.

### schema.settings.pixel_format

Gewähltes Kamera-/Bildformat. Verwende nur ein vom Gerät beziehungsweise Editor angebotenes Format.

### schema.settings.quality_mode

Automatische, höchstmögliche oder konkret gewählte Kameraqualität. Unterstützte Auflösungen und Formate hängen vom Gerät ab.

### schema.settings.quality_mode.option.Automatic

Überlässt Kamera-/OCR-Moduswahl dem zuständigen Backend gemäß dieser Einstellung.

### schema.settings.quality_mode.option.HighestAvailable

Höchste angebotene Kameraqualität auswählen.

### schema.settings.quality_mode.option.Specific

Die konkret angegebenen Kameraformatwerte verwenden.

### schema.settings.width

Breite des Kamerabilds in Pixeln für einen konkreten Aufnahmemodus, zum Beispiel 1280. Im Editor wird die Breite zusammen mit Höhe, Bildrate und Pixelformat als angebotener Modus ausgewählt; bei automatischer Qualität bestimmt das Gerät den Modus.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "camera_capture",
  "name": "Kamerabild aufnehmen",
  "description": "Nimmt ein Einzelbild mit der ausgewählten Kamera auf und stellt es als Bildquelle für nachfolgende Steps bereit.",
  "category": "BildAufnehmen",
  "uiFieldIds": [
    "camera"
  ],
  "fields": [
    {
      "id": "camera",
      "name": "Kamera",
      "descriptor": {
        "Id": "camera",
        "LabelKey": "Ui.Step.Camera.Camera",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "camera_id": "",
          "camera_name": "",
          "quality_mode": "Automatic",
          "width": 0,
          "height": 0,
          "frames_per_second": 0,
          "pixel_format": ""
        },
        "DescriptionKey": null,
        "EditorHint": "camera-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "CameraCaptureSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.camera_id",
      "name": "camera_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.camera_name",
      "name": "camera_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.frames_per_second",
      "name": "frames_per_second",
      "type": "Double",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.height",
      "name": "height",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.pixel_format",
      "name": "pixel_format",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.quality_mode",
      "name": "quality_mode",
      "type": "CameraQualityMode",
      "options": [
        "Automatic",
        "HighestAvailable",
        "Specific"
      ],
      "defaultValue": "Automatic"
    },
    {
      "id": "settings.width",
      "name": "width",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "CameraCaptureResult",
    "DisplayName": "CameraCaptureResult",
    "Properties": [
      {
        "Name": "Image",
        "DisplayName": "Image",
        "DataType": "Image",
        "Description": "Image, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "image",
        "EnumDisplayNames": null,
        "StableId": "image"
      },
      {
        "Name": "Bounds",
        "DisplayName": "Bounds",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds",
        "EnumDisplayNames": null,
        "StableId": "bounds"
      },
      {
        "Name": "Bounds.X",
        "DisplayName": "Bounds / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.x"
      },
      {
        "Name": "Bounds.Y",
        "DisplayName": "Bounds / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.y"
      },
      {
        "Name": "Bounds.Width",
        "DisplayName": "Bounds / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.width",
        "EnumDisplayNames": null,
        "StableId": "bounds.width"
      },
      {
        "Name": "Bounds.Height",
        "DisplayName": "Bounds / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.height",
        "EnumDisplayNames": null,
        "StableId": "bounds.height"
      },
      {
        "Name": "Bounds.Left",
        "DisplayName": "Bounds / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.left",
        "EnumDisplayNames": null,
        "StableId": "bounds.left"
      },
      {
        "Name": "Bounds.Top",
        "DisplayName": "Bounds / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.top",
        "EnumDisplayNames": null,
        "StableId": "bounds.top"
      },
      {
        "Name": "Bounds.Right",
        "DisplayName": "Bounds / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.right",
        "EnumDisplayNames": null,
        "StableId": "bounds.right"
      },
      {
        "Name": "Bounds.Bottom",
        "DisplayName": "Bounds / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounds.bottom"
      },
      {
        "Name": "Bounds.IsEmpty",
        "DisplayName": "Bounds / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounds.is_empty"
      },
      {
        "Name": "Bounds.Location",
        "DisplayName": "Bounds / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location",
        "EnumDisplayNames": null,
        "StableId": "bounds.location"
      },
      {
        "Name": "Bounds.Location.X",
        "DisplayName": "Bounds / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.x"
      },
      {
        "Name": "Bounds.Location.Y",
        "DisplayName": "Bounds / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.y"
      },
      {
        "Name": "Bounds.Center",
        "DisplayName": "Bounds / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center",
        "EnumDisplayNames": null,
        "StableId": "bounds.center"
      },
      {
        "Name": "Bounds.Center.X",
        "DisplayName": "Bounds / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.x"
      },
      {
        "Name": "Bounds.Center.Y",
        "DisplayName": "Bounds / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.y"
      },
      {
        "Name": "Offset",
        "DisplayName": "Offset",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset",
        "EnumDisplayNames": null,
        "StableId": "offset"
      },
      {
        "Name": "Offset.X",
        "DisplayName": "Offset / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.x",
        "EnumDisplayNames": null,
        "StableId": "offset.x"
      },
      {
        "Name": "Offset.Y",
        "DisplayName": "Offset / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.y",
        "EnumDisplayNames": null,
        "StableId": "offset.y"
      },
      {
        "Name": "IsFresh",
        "DisplayName": "Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_fresh",
        "EnumDisplayNames": null,
        "StableId": "is_fresh"
      },
      {
        "Name": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "capture_timestamp_utc"
      },
      {
        "Name": "FrameVersion",
        "DisplayName": "Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_version",
        "EnumDisplayNames": null,
        "StableId": "frame_version"
      },
      {
        "Name": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "frame_timestamp"
      },
      {
        "Name": "HasImage",
        "DisplayName": "Has Image",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "has_image",
        "EnumDisplayNames": null,
        "StableId": "has_image"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Image",
        "DisplayName": "Image",
        "Property": {
          "Name": "Image",
          "DisplayName": "Image",
          "DataType": "Image",
          "Description": "Image, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "image",
          "EnumDisplayNames": null,
          "StableId": "image"
        },
        "Children": []
      },
      {
        "Segment": "Bounds",
        "DisplayName": "Bounds",
        "Property": {
          "Name": "Bounds",
          "DisplayName": "Bounds",
          "DataType": "Rectangle",
          "Description": "Rectangle",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounds",
          "EnumDisplayNames": null,
          "StableId": "bounds"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Bounds.X",
              "DisplayName": "Bounds / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.x",
              "EnumDisplayNames": null,
              "StableId": "bounds.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Bounds.Y",
              "DisplayName": "Bounds / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.y",
              "EnumDisplayNames": null,
              "StableId": "bounds.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "Bounds.Width",
              "DisplayName": "Bounds / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.width",
              "EnumDisplayNames": null,
              "StableId": "bounds.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "Bounds.Height",
              "DisplayName": "Bounds / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.height",
              "EnumDisplayNames": null,
              "StableId": "bounds.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "Bounds.Left",
              "DisplayName": "Bounds / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.left",
              "EnumDisplayNames": null,
              "StableId": "bounds.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "Bounds.Top",
              "DisplayName": "Bounds / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.top",
              "EnumDisplayNames": null,
              "StableId": "bounds.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "Bounds.Right",
              "DisplayName": "Bounds / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.right",
              "EnumDisplayNames": null,
              "StableId": "bounds.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "Bounds.Bottom",
              "DisplayName": "Bounds / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounds.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "Bounds.IsEmpty",
              "DisplayName": "Bounds / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounds.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "Bounds.Location",
              "DisplayName": "Bounds / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.location",
              "EnumDisplayNames": null,
              "StableId": "bounds.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Location.X",
                  "DisplayName": "Bounds / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Location.Y",
                  "DisplayName": "Bounds / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "Bounds.Center",
              "DisplayName": "Bounds / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.center",
              "EnumDisplayNames": null,
              "StableId": "bounds.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Center.X",
                  "DisplayName": "Bounds / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Center.Y",
                  "DisplayName": "Bounds / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Offset",
        "DisplayName": "Offset",
        "Property": {
          "Name": "Offset",
          "DisplayName": "Offset",
          "DataType": "Point",
          "Description": "Point",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "offset",
          "EnumDisplayNames": null,
          "StableId": "offset"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Offset.X",
              "DisplayName": "Offset / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.x",
              "EnumDisplayNames": null,
              "StableId": "offset.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Offset.Y",
              "DisplayName": "Offset / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.y",
              "EnumDisplayNames": null,
              "StableId": "offset.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "IsFresh",
        "DisplayName": "Is Fresh",
        "Property": {
          "Name": "IsFresh",
          "DisplayName": "Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_fresh",
          "EnumDisplayNames": null,
          "StableId": "is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "Property": {
          "Name": "CaptureTimestampUtc",
          "DisplayName": "Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "FrameVersion",
        "DisplayName": "Frame Version",
        "Property": {
          "Name": "FrameVersion",
          "DisplayName": "Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_version",
          "EnumDisplayNames": null,
          "StableId": "frame_version"
        },
        "Children": []
      },
      {
        "Segment": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "Property": {
          "Name": "FrameTimestamp",
          "DisplayName": "Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "HasImage",
        "DisplayName": "Has Image",
        "Property": {
          "Name": "HasImage",
          "DisplayName": "Has Image",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "has_image",
          "EnumDisplayNames": null,
          "StableId": "has_image"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "camera_capture",
  "settings": {
    "camera_id": "",
    "camera_name": "",
    "quality_mode": "Automatic",
    "width": 0,
    "height": 0,
    "frames_per_second": 0,
    "pixel_format": ""
  },
  "id": "f86a035d-110f-72d1-11bd-b0e1f4d55409",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Farberkennung

ID: color_detection
Website: /doku/steps/color_detection/

Abbildung: [Detailansicht: Farberkennung. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-color-detection.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. Farbe: Gesuchte Farbe als Hex-Farbwert, zum Beispiel #FF0000 für Rot. Übernimm das vom Editor akzeptierte Format.
3. Konfidenz (%): Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.
4. Bildbereich (ROI): Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.
5. Mindestfläche (px²): Kleinste Fläche eines Farbtreffers in Quadratpixeln. Kleine Störflächen werden dadurch ausgeschlossen.
6. Maximale Fläche (px²): Größte erlaubte Fläche eines Farbtreffers in Quadratpixeln. Ein zu enger Wert kann das gewünschte Objekt ausschließen.
7. Mindestbreite (px): Kleinste erlaubte Breite einer erkannten Farbfläche in Pixeln.
8. Mindesthöhe (px): Kleinste erlaubte Höhe einer erkannten Farbfläche in Pixeln.
9. Verkleinerungsfaktor: Faktor der Bildverkleinerung vor der Farbanalyse. Höhere Verkleinerung kann schneller sein, lässt aber kleine Details verschwinden.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Bildschirm aufnehmen → Farberkennung mit #FF0000 und Mindestfläche 20 → Wenn found → Text anzeigen.

### field.color_hex

Gesuchte Farbe als Hex-Farbwert, zum Beispiel #FF0000 für Rot. Übernimm das vom Editor akzeptierte Format.

### field.confidence_threshold

Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.

### field.downscale_factor

Faktor der Bildverkleinerung vor der Farbanalyse. Höhere Verkleinerung kann schneller sein, lässt aber kleine Details verschwinden.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.max_size

Größte erlaubte Fläche eines Farbtreffers in Quadratpixeln. Ein zu enger Wert kann das gewünschte Objekt ausschließen.

### field.min_height

Kleinste erlaubte Höhe einer erkannten Farbfläche in Pixeln.

### field.min_size

Kleinste Fläche eines Farbtreffers in Quadratpixeln. Kleine Störflächen werden dadurch ausgeschlossen.

### field.min_width

Kleinste erlaubte Breite einer erkannten Farbfläche in Pixeln.

### field.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### input.dynamicRoi

dynamischer Suchbereich. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle eine Bildquelle und die gesuchte Farbe. Die Erkennung filtert zusammenhängende Farbflächen anhand der Mindestkonfidenz, Größe und Breite/Höhe. Verwende found als Bedingung und all_detections für mehrere Treffer; die Pixelkoordinaten werden bei Bildschirmaufnahmen um den Monitorversatz ergänzt.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.color_hex

Gesuchte Farbe als Hex-Farbwert, zum Beispiel #FF0000 für Rot. Übernimm das vom Editor akzeptierte Format.

### schema.settings.confidence_threshold

Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.

### schema.settings.downscale_factor

Faktor der Bildverkleinerung vor der Farbanalyse. Höhere Verkleinerung kann schneller sein, lässt aber kleine Details verschwinden.

### schema.settings.dynamic_roi_source

Kompatible dynamische Rechteckquelle. Eine spätere DynamicRoi-Quelle darf Feedback für den nächsten Durchlauf liefern; dies ist eine besondere Ausnahme von normalen Vorwärtsreferenzen.

### schema.settings.dynamic_roi_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.dynamic_roi_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.dynamic_roi_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.dynamic_roi_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.dynamic_roi_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.dynamic_roi_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.dynamic_roi_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.dynamic_roi_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.dynamic_roi_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.enable_roi

Aktiviert den direkt konfigurierten Suchbereich. Ohne Aktivierung wird der Standardbereich der Quelle verwendet, sofern keine dynamische ROI-Quelle greift.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.max_size

Größte erlaubte Fläche eines Farbtreffers in Quadratpixeln. Ein zu enger Wert kann das gewünschte Objekt ausschließen.

### schema.settings.min_height

Kleinste erlaubte Höhe einer erkannten Farbfläche in Pixeln.

### schema.settings.min_size

Kleinste Fläche eines Farbtreffers in Quadratpixeln. Kleine Störflächen werden dadurch ausgeschlossen.

### schema.settings.min_width

Kleinste erlaubte Breite einer erkannten Farbfläche in Pixeln.

### schema.settings.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### schema.settings.roi.Empty

Vom serialisierten Geometrieobjekt angebotener Leerzustand. Kein eigener ROI-Schalter: den Suchbereich mit enable_roi beziehungsweise roi.enabled und den Koordinaten konfigurieren; dieses abgeleitete Mitglied nicht als Eingabequelle verwenden.

### schema.settings.roi.height

Höhe des Rechtecks oder Bildformats in Pixeln. Negative Größen sind kein gültiger Suchbereich.

### schema.settings.roi.width

Breite des Rechtecks oder Bildformats in Pixeln. Zusammen mit Höhe und Ursprung ergibt sie die räumliche Größe.

### schema.settings.roi.x

Horizontale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate X = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### schema.settings.roi.y

Vertikale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate Y = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "color_detection",
  "name": "Farberkennung",
  "description": "Erkennt eine bestimmte Farbe in einer Bildquelle.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "image_source",
    "color_hex",
    "confidence_threshold",
    "roi",
    "min_size",
    "max_size",
    "min_width",
    "min_height",
    "downscale_factor"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "color_hex",
      "name": "Farbe",
      "descriptor": {
        "Id": "color_hex",
        "LabelKey": "Ui.Step.Settings.Color",
        "ValueKind": "Color",
        "Required": true,
        "DefaultValue": "#FF0000",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "confidence_threshold",
      "name": "Konfidenz (%)",
      "descriptor": {
        "Id": "confidence_threshold",
        "LabelKey": "Ui.Step.Settings.ConfidencePercent",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 0.9,
        "DescriptionKey": null,
        "EditorHint": "percentage",
        "Constraints": {
          "Minimum": 0,
          "Maximum": 1,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "roi",
      "name": "Bildbereich (ROI)",
      "descriptor": {
        "Id": "roi",
        "LabelKey": "Ui.Step.Settings.ROI",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "enabled": false,
          "x": 0,
          "y": 0,
          "width": 0,
          "height": 0,
          "dynamic_source": null
        },
        "DescriptionKey": null,
        "EditorHint": "roi-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": {
          "DynamicInputContractId": "dynamicRoi"
        },
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "min_size",
      "name": "Mindestfläche (px²)",
      "descriptor": {
        "Id": "min_size",
        "LabelKey": "Ui.Step.Settings.MinSize",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 25,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "max_size",
      "name": "Maximale Fläche (px²)",
      "descriptor": {
        "Id": "max_size",
        "LabelKey": "Ui.Step.Settings.MaxSize",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 2147483647,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 5,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "min_width",
      "name": "Mindestbreite (px)",
      "descriptor": {
        "Id": "min_width",
        "LabelKey": "Ui.Step.Settings.MinWidth",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 1,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 6,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "min_height",
      "name": "Mindesthöhe (px)",
      "descriptor": {
        "Id": "min_height",
        "LabelKey": "Ui.Step.Settings.MinHeight",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 1,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 7,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "downscale_factor",
      "name": "Verkleinerungsfaktor",
      "descriptor": {
        "Id": "downscale_factor",
        "LabelKey": "Ui.Step.Settings.Downscale",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 1,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 8,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "ColorDetectionSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.color_hex",
      "name": "color_hex",
      "type": "String",
      "options": [],
      "defaultValue": "#FF0000"
    },
    {
      "id": "settings.confidence_threshold",
      "name": "confidence_threshold",
      "type": "Double",
      "options": [],
      "defaultValue": 0.9
    },
    {
      "id": "settings.downscale_factor",
      "name": "downscale_factor",
      "type": "Int32",
      "options": [],
      "defaultValue": 1
    },
    {
      "id": "settings.dynamic_roi_source",
      "name": "dynamic_roi_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.enable_roi",
      "name": "enable_roi",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.max_size",
      "name": "max_size",
      "type": "Int32",
      "options": [],
      "defaultValue": 2147483647
    },
    {
      "id": "settings.min_height",
      "name": "min_height",
      "type": "Int32",
      "options": [],
      "defaultValue": 1
    },
    {
      "id": "settings.min_size",
      "name": "min_size",
      "type": "Int32",
      "options": [],
      "defaultValue": 25
    },
    {
      "id": "settings.min_width",
      "name": "min_width",
      "type": "Int32",
      "options": [],
      "defaultValue": 1
    },
    {
      "id": "settings.roi",
      "name": "roi",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.Empty",
      "name": "Empty",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.height",
      "name": "height",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.width",
      "name": "width",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.x",
      "name": "x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.y",
      "name": "y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "dynamicRoi",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "ColorDetectionResult",
    "DisplayName": "ColorDetectionResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "color_detection",
  "settings": {
    "color_hex": "#FF0000",
    "confidence_threshold": 0.9,
    "min_size": 25,
    "max_size": 2147483647,
    "min_width": 1,
    "min_height": 1,
    "downscale_factor": 1,
    "roi": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "enable_roi": false,
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "dynamic_roi_source": {
      "provider_id": "",
      "source_id": ""
    }
  },
  "id": "cc6df427-37e9-687a-3dfa-9333bf16bb90",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Nächsten Durchlauf starten

ID: continue_job
Website: /doku/steps/continue_job/

Abbildung: [Detailansicht: Nächsten Durchlauf starten. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-continue-job.detail.png)

1. Nächsten Durchlauf starten: Überspringt die restlichen Steps dieses Durchlaufs und beginnt die Hauptphase erneut.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Wenn noch keine neue Datei bereitsteht: 500 ms warten und den nächsten Hauptdurchlauf beginnen.

### purpose

Beende die verbleibenden Haupt-Steps dieses Durchlaufs und beginne die Hauptphase erneut. Die Startphase wird dadurch nicht erneut ausgeführt. Dieser Step gehört in die Hauptphase; plane eine Wartezeit oder eine Abbruchbedingung, damit ein absichtlich wiederholender Ablauf kontrollierbar bleibt.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "continue_job",
  "name": "Nächsten Durchlauf starten",
  "description": "Beendet den aktuellen Durchlauf und fährt beim ersten Haupt-Step fort.",
  "category": "AblaufSteuern",
  "uiFieldIds": [],
  "fields": [],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ],
  "inputs": [],
  "result": null
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "continue_job",
  "id": "8fa2573a-6b40-da60-9573-8867d24bb02a",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Bildschirm aufnehmen

ID: desktop_duplication
Website: /doku/steps/desktop_duplication/

Abbildung: [Detailansicht: Bildschirm aufnehmen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-desktop-duplication.detail.png)

1. Monitor: Nullbasierter Monitorindex der Bildschirmaufnahme. Auf einem anderen Rechner kann die Monitorreihenfolge abweichen.
2. Mauszeiger aufnehmen: Nimmt den Mauszeiger in die Bildschirmaufnahme auf. Für Bildvergleiche kann der Zeiger störende zusätzliche Pixel verursachen.
3. Auf neues Bild warten: Wartet auf einen neuen Desktop-Frame statt sofort den zuletzt verfügbaren Frame zu übernehmen.
4. Zeitlimit (ms): Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.
5. Bei Zeitlimit letztes Bild verwenden: Erlaubt nach Ablauf des Aufnahmezeitlimits den zuletzt verfügbaren Frame. Prüfe dessen is_fresh, bevor eine zeitkritische Folgeaktion ausgeführt wird.
6. Monitor-Kennung: Optional gespeicherte Monitor-Gerätekennung zur Wiedererkennung des gewünschten Bildschirms. Bei Umbau der Monitoranordnung prüfen.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Monitor 0 aufnehmen → Bild speichern. Bei zeitkritischer Erkennung auf ein neues Bild warten und den Rückfall auf Cache deaktivieren.

### field.allow_cached_fallback

Erlaubt nach Ablauf des Aufnahmezeitlimits den zuletzt verfügbaren Frame. Prüfe dessen is_fresh, bevor eine zeitkritische Folgeaktion ausgeführt wird.

### field.capture_cursor

Nimmt den Mauszeiger in die Bildschirmaufnahme auf. Für Bildvergleiche kann der Zeiger störende zusätzliche Pixel verursachen.

### field.desktop_idx

Nullbasierter Monitorindex der Bildschirmaufnahme. Auf einem anderen Rechner kann die Monitorreihenfolge abweichen.

### field.monitor_device_name

Optional gespeicherte Monitor-Gerätekennung zur Wiedererkennung des gewünschten Bildschirms. Bei Umbau der Monitoranordnung prüfen.

### field.timeout_ms

Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.

### field.wait_for_new_frame

Wartet auf einen neuen Desktop-Frame statt sofort den zuletzt verfügbaren Frame zu übernehmen.

### purpose

Wähle einen Monitor als Bildquelle. Optional wartet die Aufnahme auf ein neues Desktop-Bild; beim Zeitlimit kannst du den letzten verfügbaren Frame zulassen. Prüfe is_fresh und frame_timestamp, wenn eine spätere Mausaktion nur auf neue Bilder reagieren soll.

### result.bounds

Ermitteltes Rechteck im Koordinatenraum des entsprechenden Ergebnisobjekts. Einzelwert dieses Ergebnisses.

### result.bounds.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.height

Höhe des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Einzelwert dieses Ergebnisses.

### result.bounds.left

Linke Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Einzelwert dieses Ergebnisses.

### result.bounds.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.top

Obere Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.width

Breite des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.capture_timestamp_utc

UTC-Zeitpunkt des erfassten Bildes; bei wiederverwendeten Frames bleibt der ursprüngliche Zeitpunkt erhalten. Einzelwert dieses Ergebnisses.

### result.frame_timestamp

Monotoner Stopwatch/QPC-Zeitstempel des Frames. 0 bedeutet unbekannt; dies ist kein Datum in Millisekunden seit 1970. Einzelwert dieses Ergebnisses.

### result.frame_version

Laufzeit-Identität des Frames innerhalb seines Aufnahmeproduzenten. Cache-/Zeigeraktualisierungen sind keine neuen Desktop-Bildversionen; nicht zwischen unabhängigen Kameras/Monitorquellen vergleichen. Einzelwert dieses Ergebnisses.

### result.has_image

Ob die Zwischenablage ein Bild enthält. Daraus folgt nicht automatisch, dass ein Bild als persistierbares JSON-Literal vorliegt. Einzelwert dieses Ergebnisses.

### result.image

Laufzeit-Bildobjekt für Bildverbraucher. Es wird nicht als Bitmap-Payload in der Jobdatei gespeichert. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_fresh

Ob die Aufnahme einen frischen Frame statt einer zwischengespeicherten Aufnahme geliefert hat. Einzelwert dieses Ergebnisses.

### result.offset

Pixelversatz der Bildquelle gegenüber dem globalen Desktop. Bei bildlokalen Punkten addieren, bevor sie global verwendet werden. Einzelwert dieses Ergebnisses.

### result.offset.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.offset.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.allow_cached_fallback

Erlaubt nach Ablauf des Aufnahmezeitlimits den zuletzt verfügbaren Frame. Prüfe dessen is_fresh, bevor eine zeitkritische Folgeaktion ausgeführt wird.

### schema.settings.capture_cursor

Nimmt den Mauszeiger in die Bildschirmaufnahme auf. Für Bildvergleiche kann der Zeiger störende zusätzliche Pixel verursachen.

### schema.settings.desktop_idx

Nullbasierter Monitorindex der Bildschirmaufnahme. Auf einem anderen Rechner kann die Monitorreihenfolge abweichen.

### schema.settings.monitor_device_name

Optional gespeicherte Monitor-Gerätekennung zur Wiedererkennung des gewünschten Bildschirms. Bei Umbau der Monitoranordnung prüfen.

### schema.settings.timeout_ms

Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.

### schema.settings.wait_for_new_frame

Wartet auf einen neuen Desktop-Frame statt sofort den zuletzt verfügbaren Frame zu übernehmen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "desktop_duplication",
  "name": "Bildschirm aufnehmen",
  "description": "Nimmt einen Screenshot des gewählten Monitors auf und stellt ihn als Bildquelle bereit.",
  "category": "BildAufnehmen",
  "uiFieldIds": [
    "desktop_idx",
    "capture_cursor",
    "wait_for_new_frame",
    "timeout_ms",
    "allow_cached_fallback",
    "monitor_device_name"
  ],
  "fields": [
    {
      "id": "desktop_idx",
      "name": "Monitor",
      "descriptor": {
        "Id": "desktop_idx",
        "LabelKey": "Ui.Step.Settings.DesktopIndex",
        "ValueKind": "Integer",
        "Required": true,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": "monitor-picker",
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": "monitor_device_name"
      }
    },
    {
      "id": "capture_cursor",
      "name": "Mauszeiger aufnehmen",
      "descriptor": {
        "Id": "capture_cursor",
        "LabelKey": "Ui.Step.Settings.CaptureMousePointer",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "wait_for_new_frame",
      "name": "Auf neues Bild warten",
      "descriptor": {
        "Id": "wait_for_new_frame",
        "LabelKey": "Ui.Step.Capture.WaitForNewFrame",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": true,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "timeout_ms",
      "name": "Zeitlimit (ms)",
      "descriptor": {
        "Id": "timeout_ms",
        "LabelKey": "Ui.Step.Capture.Timeout",
        "ValueKind": "Integer",
        "Required": true,
        "DefaultValue": 250,
        "DescriptionKey": "Ui.Step.Capture.TimeoutHelp",
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": 60000,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "allow_cached_fallback",
      "name": "Bei Zeitlimit letztes Bild verwenden",
      "descriptor": {
        "Id": "allow_cached_fallback",
        "LabelKey": "Ui.Step.Capture.AllowCachedFallback",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": true,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "monitor_device_name",
      "name": "Monitor-Kennung",
      "descriptor": {
        "Id": "monitor_device_name",
        "LabelKey": "Ui.Step.Capture.MonitorIdentity",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": "Ui.Step.Capture.MonitorIdentityHelp",
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 5,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "DesktopDuplicationSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.allow_cached_fallback",
      "name": "allow_cached_fallback",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings.capture_cursor",
      "name": "capture_cursor",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.desktop_idx",
      "name": "desktop_idx",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.monitor_device_name",
      "name": "monitor_device_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.timeout_ms",
      "name": "timeout_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 250
    },
    {
      "id": "settings.wait_for_new_frame",
      "name": "wait_for_new_frame",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "DesktopDuplicationResult",
    "DisplayName": "DesktopDuplicationResult",
    "Properties": [
      {
        "Name": "Image",
        "DisplayName": "Image",
        "DataType": "Image",
        "Description": "Image, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "image",
        "EnumDisplayNames": null,
        "StableId": "image"
      },
      {
        "Name": "Bounds",
        "DisplayName": "Bounds",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds",
        "EnumDisplayNames": null,
        "StableId": "bounds"
      },
      {
        "Name": "Bounds.X",
        "DisplayName": "Bounds / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.x"
      },
      {
        "Name": "Bounds.Y",
        "DisplayName": "Bounds / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.y"
      },
      {
        "Name": "Bounds.Width",
        "DisplayName": "Bounds / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.width",
        "EnumDisplayNames": null,
        "StableId": "bounds.width"
      },
      {
        "Name": "Bounds.Height",
        "DisplayName": "Bounds / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.height",
        "EnumDisplayNames": null,
        "StableId": "bounds.height"
      },
      {
        "Name": "Bounds.Left",
        "DisplayName": "Bounds / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.left",
        "EnumDisplayNames": null,
        "StableId": "bounds.left"
      },
      {
        "Name": "Bounds.Top",
        "DisplayName": "Bounds / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.top",
        "EnumDisplayNames": null,
        "StableId": "bounds.top"
      },
      {
        "Name": "Bounds.Right",
        "DisplayName": "Bounds / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.right",
        "EnumDisplayNames": null,
        "StableId": "bounds.right"
      },
      {
        "Name": "Bounds.Bottom",
        "DisplayName": "Bounds / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounds.bottom"
      },
      {
        "Name": "Bounds.IsEmpty",
        "DisplayName": "Bounds / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounds.is_empty"
      },
      {
        "Name": "Bounds.Location",
        "DisplayName": "Bounds / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location",
        "EnumDisplayNames": null,
        "StableId": "bounds.location"
      },
      {
        "Name": "Bounds.Location.X",
        "DisplayName": "Bounds / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.x"
      },
      {
        "Name": "Bounds.Location.Y",
        "DisplayName": "Bounds / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.y"
      },
      {
        "Name": "Bounds.Center",
        "DisplayName": "Bounds / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center",
        "EnumDisplayNames": null,
        "StableId": "bounds.center"
      },
      {
        "Name": "Bounds.Center.X",
        "DisplayName": "Bounds / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.x"
      },
      {
        "Name": "Bounds.Center.Y",
        "DisplayName": "Bounds / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.y"
      },
      {
        "Name": "Offset",
        "DisplayName": "Offset",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset",
        "EnumDisplayNames": null,
        "StableId": "offset"
      },
      {
        "Name": "Offset.X",
        "DisplayName": "Offset / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.x",
        "EnumDisplayNames": null,
        "StableId": "offset.x"
      },
      {
        "Name": "Offset.Y",
        "DisplayName": "Offset / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.y",
        "EnumDisplayNames": null,
        "StableId": "offset.y"
      },
      {
        "Name": "IsFresh",
        "DisplayName": "Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_fresh",
        "EnumDisplayNames": null,
        "StableId": "is_fresh"
      },
      {
        "Name": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "capture_timestamp_utc"
      },
      {
        "Name": "FrameVersion",
        "DisplayName": "Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_version",
        "EnumDisplayNames": null,
        "StableId": "frame_version"
      },
      {
        "Name": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "frame_timestamp"
      },
      {
        "Name": "HasImage",
        "DisplayName": "Has Image",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "has_image",
        "EnumDisplayNames": null,
        "StableId": "has_image"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Image",
        "DisplayName": "Image",
        "Property": {
          "Name": "Image",
          "DisplayName": "Image",
          "DataType": "Image",
          "Description": "Image, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "image",
          "EnumDisplayNames": null,
          "StableId": "image"
        },
        "Children": []
      },
      {
        "Segment": "Bounds",
        "DisplayName": "Bounds",
        "Property": {
          "Name": "Bounds",
          "DisplayName": "Bounds",
          "DataType": "Rectangle",
          "Description": "Rectangle",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounds",
          "EnumDisplayNames": null,
          "StableId": "bounds"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Bounds.X",
              "DisplayName": "Bounds / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.x",
              "EnumDisplayNames": null,
              "StableId": "bounds.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Bounds.Y",
              "DisplayName": "Bounds / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.y",
              "EnumDisplayNames": null,
              "StableId": "bounds.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "Bounds.Width",
              "DisplayName": "Bounds / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.width",
              "EnumDisplayNames": null,
              "StableId": "bounds.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "Bounds.Height",
              "DisplayName": "Bounds / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.height",
              "EnumDisplayNames": null,
              "StableId": "bounds.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "Bounds.Left",
              "DisplayName": "Bounds / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.left",
              "EnumDisplayNames": null,
              "StableId": "bounds.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "Bounds.Top",
              "DisplayName": "Bounds / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.top",
              "EnumDisplayNames": null,
              "StableId": "bounds.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "Bounds.Right",
              "DisplayName": "Bounds / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.right",
              "EnumDisplayNames": null,
              "StableId": "bounds.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "Bounds.Bottom",
              "DisplayName": "Bounds / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounds.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "Bounds.IsEmpty",
              "DisplayName": "Bounds / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounds.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "Bounds.Location",
              "DisplayName": "Bounds / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.location",
              "EnumDisplayNames": null,
              "StableId": "bounds.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Location.X",
                  "DisplayName": "Bounds / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Location.Y",
                  "DisplayName": "Bounds / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "Bounds.Center",
              "DisplayName": "Bounds / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.center",
              "EnumDisplayNames": null,
              "StableId": "bounds.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Center.X",
                  "DisplayName": "Bounds / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Center.Y",
                  "DisplayName": "Bounds / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Offset",
        "DisplayName": "Offset",
        "Property": {
          "Name": "Offset",
          "DisplayName": "Offset",
          "DataType": "Point",
          "Description": "Point",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "offset",
          "EnumDisplayNames": null,
          "StableId": "offset"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Offset.X",
              "DisplayName": "Offset / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.x",
              "EnumDisplayNames": null,
              "StableId": "offset.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Offset.Y",
              "DisplayName": "Offset / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.y",
              "EnumDisplayNames": null,
              "StableId": "offset.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "IsFresh",
        "DisplayName": "Is Fresh",
        "Property": {
          "Name": "IsFresh",
          "DisplayName": "Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_fresh",
          "EnumDisplayNames": null,
          "StableId": "is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "Property": {
          "Name": "CaptureTimestampUtc",
          "DisplayName": "Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "FrameVersion",
        "DisplayName": "Frame Version",
        "Property": {
          "Name": "FrameVersion",
          "DisplayName": "Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_version",
          "EnumDisplayNames": null,
          "StableId": "frame_version"
        },
        "Children": []
      },
      {
        "Segment": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "Property": {
          "Name": "FrameTimestamp",
          "DisplayName": "Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "HasImage",
        "DisplayName": "Has Image",
        "Property": {
          "Name": "HasImage",
          "DisplayName": "Has Image",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "has_image",
          "EnumDisplayNames": null,
          "StableId": "has_image"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "desktop_duplication",
  "settings": {
    "desktop_idx": 0,
    "capture_cursor": false,
    "monitor_device_name": "",
    "wait_for_new_frame": true,
    "timeout_ms": 250,
    "allow_cached_fallback": true
  },
  "id": "ffa47583-1458-1a09-c1e7-2592222fbe7b",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Dynamischen Bildbereich erstellen

ID: dynamic_roi
Website: /doku/steps/dynamic_roi/

Abbildung: [Detailansicht: Dynamischen Bildbereich erstellen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-dynamic-roi.detail.png)

1. Erkennungsergebnis: Erkennung mit einem kompatiblen Rechteck als Quelle des dynamischen Suchbereichs.
2. Rand (px): Ganzzahliger zusätzlicher Rand des dynamischen Suchbereichs in Pixeln; im Editor kann ein direkter Wert gewählt werden.
3. Mindestkonfidenz (%): Mindestkonfidenz für die Übernahme eines Treffers in ROI/Vorhersage. Erkennungsergebnisse verwenden 0 bis 1; der Editor kann denselben Wert als Prozent darstellen.
4. Durchläufe bis zur Vollbildsuche (0 = nie): Anzahl Durchläufe bis zur erneuten Vollsuche. 0 deaktiviert die regelmäßige Vollsuche.
5. Fehlversuche bis zum Zurücksetzen (0 = nie): Anzahl aufeinanderfolgender Fehlversuche bis zum Rücksetzen auf den Ausgangssuchbereich. 0 deaktiviert dieses automatische Rücksetzen.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Erkennung → dynamischer ROI mit Rand 20 → denselben ROI im nächsten Erkennungsdurchlauf verwenden; regelmäßig eine Vollsuche einplanen.

### field.bounds_source

Erkennung mit einem kompatiblen Rechteck als Quelle des dynamischen Suchbereichs.

### field.full_search_interval

Anzahl Durchläufe bis zur erneuten Vollsuche. 0 deaktiviert die regelmäßige Vollsuche.

### field.minimum_confidence

Mindestkonfidenz für die Übernahme eines Treffers in ROI/Vorhersage. Erkennungsergebnisse verwenden 0 bis 1; der Editor kann denselben Wert als Prozent darstellen.

### field.padding_source

Ganzzahliger zusätzlicher Rand des dynamischen Suchbereichs in Pixeln; im Editor kann ein direkter Wert gewählt werden.

### field.reset_after_misses

Anzahl aufeinanderfolgender Fehlversuche bis zum Rücksetzen auf den Ausgangssuchbereich. 0 deaktiviert dieses automatische Rücksetzen.

### input.bounds

Rechteck eines Erkennungsergebnisses. Fehlende erforderliche Werte führen zum Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.padding

ganzzahliger ROI-Rand. Fehlende erforderliche Werte führen zum Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Leite aus einem Erkennungstreffer den nächsten Suchbereich ab. Rand, Mindestkonfidenz, regelmäßige Vollsuche und Rücksetzen nach Fehlversuchen steuern, wie lange die Suche auf dem Ziel bleibt. Verbinde diesen Step mit dem dynamischen ROI-Eingang der Erkennung; im ersten Durchlauf dient deren ursprünglicher Bereich als Ausgangspunkt.

### result.consecutive_misses

Anzahl aufeinanderfolgender nicht verwertbarer Treffer seit der letzten gültigen Aktualisierung. Einzelwert dieses Ergebnisses.

### result.full_search_interval

Konfigurierter Abstand regelmäßiger Vollsuchen in Durchläufen; 0 bedeutet keine regelmäßige Vollsuche. Einzelwert dieses Ergebnisses.

### result.global_bounds

Suchrechteck in globalen Desktopkoordinaten. Für bildlokale Verbraucher muss dessen Quelle/Versatz berücksichtigt werden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.roi_reset

Ob der Suchbereich wegen der Rücksetzregel auf den Ausgangsbereich zurückgesetzt wurde. Einzelwert dieses Ergebnisses.

### result.roi_updated

Ob der dynamische Suchbereich in diesem Step neu aus einem verwertbaren Treffer aktualisiert wurde. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.bounds_source

Erkennung mit einem kompatiblen Rechteck als Quelle des dynamischen Suchbereichs.

### schema.settings.bounds_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.bounds_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.bounds_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.bounds_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.bounds_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.bounds_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.bounds_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.bounds_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.bounds_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.full_search_interval

Anzahl Durchläufe bis zur erneuten Vollsuche. 0 deaktiviert die regelmäßige Vollsuche.

### schema.settings.minimum_confidence

Mindestkonfidenz für die Übernahme eines Treffers in ROI/Vorhersage. Erkennungsergebnisse verwenden 0 bis 1; der Editor kann denselben Wert als Prozent darstellen.

### schema.settings.padding

Rand um das erkannte Rechteck in Pixeln; er erweitert den nächsten Suchbereich.

### schema.settings.padding_source

Ganzzahliger zusätzlicher Rand des dynamischen Suchbereichs in Pixeln; im Editor kann ein direkter Wert gewählt werden.

### schema.settings.padding_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.padding_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.padding_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.padding_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.padding_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.padding_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.padding_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.padding_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.padding_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.reset_after_misses

Anzahl aufeinanderfolgender Fehlversuche bis zum Rücksetzen auf den Ausgangssuchbereich. 0 deaktiviert dieses automatische Rücksetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "dynamic_roi",
  "name": "Dynamischen Bildbereich erstellen",
  "description": "Erstellt aus dem besten Erkennungstreffer einen Bildbereich für den nächsten Durchlauf.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "bounds_source",
    "padding_source",
    "minimum_confidence",
    "full_search_interval",
    "reset_after_misses"
  ],
  "fields": [
    {
      "id": "bounds_source",
      "name": "Erkennungsergebnis",
      "descriptor": {
        "Id": "bounds_source",
        "LabelKey": "Ui.Step.DynamicRoi.Source",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "bounds",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "padding_source",
      "name": "Rand (px)",
      "descriptor": {
        "Id": "padding_source",
        "LabelKey": "Ui.Step.DynamicRoi.Padding",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "padding",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": true,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "minimum_confidence",
      "name": "Mindestkonfidenz (%)",
      "descriptor": {
        "Id": "minimum_confidence",
        "LabelKey": "Ui.Step.DynamicRoi.MinimumConfidence",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": "percentage",
        "Constraints": {
          "Minimum": 0,
          "Maximum": 1,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "full_search_interval",
      "name": "Durchläufe bis zur Vollbildsuche (0 = nie)",
      "descriptor": {
        "Id": "full_search_interval",
        "LabelKey": "Ui.Step.DynamicRoi.FullSearchInterval",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 10,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "reset_after_misses",
      "name": "Fehlversuche bis zum Zurücksetzen (0 = nie)",
      "descriptor": {
        "Id": "reset_after_misses",
        "LabelKey": "Ui.Step.DynamicRoi.ResetAfterMisses",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 3,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "DynamicRoiSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source",
      "name": "bounds_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.bounds_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.bounds_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.bounds_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.full_search_interval",
      "name": "full_search_interval",
      "type": "Int32",
      "options": [],
      "defaultValue": 10
    },
    {
      "id": "settings.minimum_confidence",
      "name": "minimum_confidence",
      "type": "Double",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.padding",
      "name": "padding",
      "type": "Int32",
      "options": [],
      "defaultValue": -1
    },
    {
      "id": "settings.padding_source",
      "name": "padding_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.padding_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.padding_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.padding_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.padding_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.padding_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.padding_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.padding_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.padding_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.padding_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.reset_after_misses",
      "name": "reset_after_misses",
      "type": "Int32",
      "options": [],
      "defaultValue": 3
    }
  ],
  "inputs": [
    {
      "Key": "bounds",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "padding",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Integer",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": true,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "DynamicRoiResult",
    "DisplayName": "DynamicRoiResult",
    "Properties": [
      {
        "Name": "RoiUpdated",
        "DisplayName": "Roi Updated",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "roi_updated",
        "EnumDisplayNames": null,
        "StableId": "roi_updated"
      },
      {
        "Name": "RoiReset",
        "DisplayName": "Roi Reset",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "roi_reset",
        "EnumDisplayNames": null,
        "StableId": "roi_reset"
      },
      {
        "Name": "GlobalBounds",
        "DisplayName": "Global Bounds",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds",
        "EnumDisplayNames": null,
        "StableId": "global_bounds"
      },
      {
        "Name": "GlobalBounds.X",
        "DisplayName": "Global Bounds / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.x",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.x"
      },
      {
        "Name": "GlobalBounds.Y",
        "DisplayName": "Global Bounds / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.y",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.y"
      },
      {
        "Name": "GlobalBounds.Width",
        "DisplayName": "Global Bounds / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.width",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.width"
      },
      {
        "Name": "GlobalBounds.Height",
        "DisplayName": "Global Bounds / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.height",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.height"
      },
      {
        "Name": "GlobalBounds.Left",
        "DisplayName": "Global Bounds / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.left",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.left"
      },
      {
        "Name": "GlobalBounds.Top",
        "DisplayName": "Global Bounds / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.top",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.top"
      },
      {
        "Name": "GlobalBounds.Right",
        "DisplayName": "Global Bounds / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.right",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.right"
      },
      {
        "Name": "GlobalBounds.Bottom",
        "DisplayName": "Global Bounds / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.bottom",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.bottom"
      },
      {
        "Name": "GlobalBounds.IsEmpty",
        "DisplayName": "Global Bounds / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.is_empty",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.is_empty"
      },
      {
        "Name": "GlobalBounds.Location",
        "DisplayName": "Global Bounds / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.location",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.location"
      },
      {
        "Name": "GlobalBounds.Location.X",
        "DisplayName": "Global Bounds / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.location.x",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.location.x"
      },
      {
        "Name": "GlobalBounds.Location.Y",
        "DisplayName": "Global Bounds / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.location.y",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.location.y"
      },
      {
        "Name": "GlobalBounds.Center",
        "DisplayName": "Global Bounds / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.center",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.center"
      },
      {
        "Name": "GlobalBounds.Center.X",
        "DisplayName": "Global Bounds / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.center.x",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.center.x"
      },
      {
        "Name": "GlobalBounds.Center.Y",
        "DisplayName": "Global Bounds / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.center.y",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.center.y"
      },
      {
        "Name": "ConsecutiveMisses",
        "DisplayName": "Consecutive Misses",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "consecutive_misses",
        "EnumDisplayNames": null,
        "StableId": "consecutive_misses"
      },
      {
        "Name": "FullSearchInterval",
        "DisplayName": "Full Search Interval",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "full_search_interval",
        "EnumDisplayNames": null,
        "StableId": "full_search_interval"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "RoiUpdated",
        "DisplayName": "Roi Updated",
        "Property": {
          "Name": "RoiUpdated",
          "DisplayName": "Roi Updated",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "roi_updated",
          "EnumDisplayNames": null,
          "StableId": "roi_updated"
        },
        "Children": []
      },
      {
        "Segment": "RoiReset",
        "DisplayName": "Roi Reset",
        "Property": {
          "Name": "RoiReset",
          "DisplayName": "Roi Reset",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "roi_reset",
          "EnumDisplayNames": null,
          "StableId": "roi_reset"
        },
        "Children": []
      },
      {
        "Segment": "GlobalBounds",
        "DisplayName": "Global Bounds",
        "Property": {
          "Name": "GlobalBounds",
          "DisplayName": "Global Bounds",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "global_bounds",
          "EnumDisplayNames": null,
          "StableId": "global_bounds"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "GlobalBounds.X",
              "DisplayName": "Global Bounds / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.x",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "GlobalBounds.Y",
              "DisplayName": "Global Bounds / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.y",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "GlobalBounds.Width",
              "DisplayName": "Global Bounds / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.width",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "GlobalBounds.Height",
              "DisplayName": "Global Bounds / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.height",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "GlobalBounds.Left",
              "DisplayName": "Global Bounds / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.left",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "GlobalBounds.Top",
              "DisplayName": "Global Bounds / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.top",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "GlobalBounds.Right",
              "DisplayName": "Global Bounds / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.right",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "GlobalBounds.Bottom",
              "DisplayName": "Global Bounds / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.bottom",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "GlobalBounds.IsEmpty",
              "DisplayName": "Global Bounds / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.is_empty",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "GlobalBounds.Location",
              "DisplayName": "Global Bounds / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.location",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "GlobalBounds.Location.X",
                  "DisplayName": "Global Bounds / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "GlobalBounds.Location.Y",
                  "DisplayName": "Global Bounds / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "GlobalBounds.Center",
              "DisplayName": "Global Bounds / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.center",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "GlobalBounds.Center.X",
                  "DisplayName": "Global Bounds / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "GlobalBounds.Center.Y",
                  "DisplayName": "Global Bounds / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "ConsecutiveMisses",
        "DisplayName": "Consecutive Misses",
        "Property": {
          "Name": "ConsecutiveMisses",
          "DisplayName": "Consecutive Misses",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "consecutive_misses",
          "EnumDisplayNames": null,
          "StableId": "consecutive_misses"
        },
        "Children": []
      },
      {
        "Segment": "FullSearchInterval",
        "DisplayName": "Full Search Interval",
        "Property": {
          "Name": "FullSearchInterval",
          "DisplayName": "Full Search Interval",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "full_search_interval",
          "EnumDisplayNames": null,
          "StableId": "full_search_interval"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "dynamic_roi",
  "settings": {
    "bounds_source": {
      "provider_id": "",
      "source_id": ""
    },
    "padding": -1,
    "padding_source": {
      "provider_id": "",
      "source_id": ""
    },
    "minimum_confidence": 0,
    "full_search_interval": 10,
    "reset_after_misses": 3
  },
  "id": "5daa1a25-95e8-a1e7-7645-817670fbad9a",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Sonst

ID: else
Website: /doku/steps/else/

Abbildung: [Detailansicht: Sonst. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-step-else.detail.png)

1. Sonst: Dieser Zweig wird ausgeführt, wenn die vorherigen Bedingungen nicht zutreffen.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Wenn selected_value gleich „rechnung“ → Rechnungen kopieren; Sonst → Notizen kopieren; Ende wenn.

### purpose

Ergänze einen Wenn-Block um den Auffangzweig. Er wird nur aktiv, wenn kein vorheriger Zweig desselben Blocks ausgeführt wurde. Ein Block darf höchstens einen Sonst-Zweig enthalten; danach folgen keine weiteren Sonst-wenn-Zweige.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "else",
  "name": "Sonst",
  "description": "Führt den Zweig aus, wenn keine vorherige Bedingung zutrifft.",
  "category": "AblaufSteuern",
  "uiFieldIds": [],
  "fields": [],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ],
  "inputs": [],
  "result": null
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "else",
  "CanBeDisabled": false,
  "id": "406c7dce-4d6e-a052-8eee-c80fd32ecfdb",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Sonst wenn

ID: else_if
Website: /doku/steps/else_if/

Abbildung: [Detailansicht: Sonst wenn. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-else-if.detail.png)

1. Bedingungen: Geordnete Bedingungsliste des Wenn-Zweigs. Jede Bedingung benötigt eine passende Ergebnisquelle und den gewählten Operator.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Wenn Text leer → Hinweis; Sonst wenn Text beginnt mit „OK“ → Erfolg; Sonst → Prüfung erforderlich; Ende wenn.

### field.conditions

Geordnete Bedingungsliste des Wenn-Zweigs. Jede Bedingung benötigt eine passende Ergebnisquelle und den gewählten Operator.

### purpose

Ergänze vor „Sonst“ eine alternative Bedingung. Sie wird nur geprüft, wenn der übergeordnete Block aktiv ist und kein früherer Zweig desselben Blocks gewählt wurde. Formuliere die Vergleiche mit Ergebniswerten eines vorher ausgeführten Steps.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.conditions

Geordnete Bedingungsliste des Wenn-Zweigs. Jede Bedingung benötigt eine passende Ergebnisquelle und den gewählten Operator.

### schema.settings.conditions.comparison

Rechte Seite des Vergleichs: Literal oder ein weiteres Job-Ergebnis, abhängig von kind.

### schema.settings.conditions.comparison.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.comparison.items.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.comparison.items.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.comparison.items.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.comparison.items.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.comparison.items.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.comparison.items.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.comparison.items.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.comparison.items.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.comparison.items.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.comparison.kind

Literal verwendet den direkt konfigurierten Vergleichswert; JobResult verwendet die zweite typisierte Ergebnisreferenz. Dieses Enum ist kein type/$type-Discriminator.

### schema.settings.conditions.comparison.kind.option.JobResult

Verwendet einen kompatiblen Ergebniswert eines Job-Steps.

### schema.settings.conditions.comparison.kind.option.Literal

Verwendet einen direkt gespeicherten Vergleichswert.

### schema.settings.conditions.comparison.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.comparison.members.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.comparison.members.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.comparison.members.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.comparison.members.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.comparison.members.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.comparison.members.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.comparison.members.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.comparison.members.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.comparison.members.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.comparison.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.comparison.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.comparison.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.comparison.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.comparison.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.comparison.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.comparison.value

Gespeicherter Literal- oder Vergleichswert. Sein JSON-Typ muss zum angegebenen value_kind und zur Kardinalität passen; Zahlen und Booleans nicht versehentlich als Text speichern.

### schema.settings.conditions.comparison.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.comparison_value

Direkt eingetragener Vergleichswert. Sein Typ muss zum linken Ergebnis und Operator passen.

### schema.settings.conditions.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.items.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.items.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.items.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.items.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.items.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.items.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.items.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.items.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.items.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.members.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.members.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.members.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.members.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.members.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.members.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.members.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.members.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.members.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.operator

Vergleichsoperator. Wahrheits-/Leerheitsprüfungen benötigen keinen zusätzlichen Vergleichstext; andere Operatoren verlangen kompatible Werte.

### schema.settings.conditions.operator.option.Contains

Prüft, ob Text den angegebenen Vergleichstext enthält.

### schema.settings.conditions.operator.option.Equals

Prüft typkompatible Werte auf Gleichheit.

### schema.settings.conditions.operator.option.GreaterThan

Linker Wert muss größer sein als der rechte Vergleichswert.

### schema.settings.conditions.operator.option.GreaterThanOrEqual

Linker Wert muss größer oder gleich dem Vergleichswert sein.

### schema.settings.conditions.operator.option.IsEmpty

Prüft einen vorhandenen Wert auf Leerheit; ungültige Referenzen werden dadurch nicht gültig.

### schema.settings.conditions.operator.option.IsFalse

Prüft einen booleschen Wert auf false, ohne rechten Vergleichswert.

### schema.settings.conditions.operator.option.IsNotEmpty

Prüft einen vorhandenen Wert auf Nicht-Leerheit.

### schema.settings.conditions.operator.option.IsTrue

Prüft einen booleschen Wert auf true, ohne rechten Vergleichswert.

### schema.settings.conditions.operator.option.LessThan

Linker Wert muss kleiner sein als der rechte Vergleichswert.

### schema.settings.conditions.operator.option.LessThanOrEqual

Linker Wert muss kleiner oder gleich dem Vergleichswert sein.

### schema.settings.conditions.operator.option.NotEquals

Prüft typkompatible Werte auf Ungleichheit.

### schema.settings.conditions.operator.option.StartsWith

Prüft, ob Text mit dem angegebenen Vergleichstext beginnt.

### schema.settings.conditions.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.match_mode

All verlangt alle Bedingungen; Any lässt eine passende Bedingung genügen.

### schema.settings.match_mode.option.All

Alle betrachteten Bedingungen beziehungsweise Punkte müssen passen.

### schema.settings.match_mode.option.Any

Mindestens eine betrachtete Bedingung beziehungsweise ein Punkt muss passen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "else_if",
  "name": "Sonst wenn",
  "description": "Fügt einem bedingten Block eine weitere Bedingung hinzu.",
  "category": "AblaufSteuern",
  "uiFieldIds": [
    "conditions"
  ],
  "fields": [
    {
      "id": "conditions",
      "name": "Bedingungen",
      "descriptor": {
        "Id": "conditions",
        "LabelKey": "Ui.Step.Settings.Evaluation",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "match_mode": "All",
          "conditions": []
        },
        "DescriptionKey": null,
        "EditorHint": "condition-editor",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "IfConditionSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions",
      "name": "conditions",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison",
      "name": "comparison",
      "type": "ComparisonOperand",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.kind",
      "name": "kind",
      "type": "ComparisonOperandKind",
      "options": [
        "Literal",
        "JobResult"
      ],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.value",
      "name": "value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison_value",
      "name": "comparison_value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.operator",
      "name": "operator",
      "type": "ConditionOperator",
      "options": [
        "IsTrue",
        "IsFalse",
        "Equals",
        "NotEquals",
        "GreaterThan",
        "LessThan",
        "GreaterThanOrEqual",
        "LessThanOrEqual",
        "Contains",
        "StartsWith",
        "IsEmpty",
        "IsNotEmpty"
      ],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.match_mode",
      "name": "match_mode",
      "type": "ConditionMatchMode",
      "options": [
        "All",
        "Any"
      ],
      "defaultValue": "All"
    }
  ],
  "inputs": [],
  "result": null
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "else_if",
  "settings": {
    "match_mode": "All",
    "conditions": []
  },
  "CanBeDisabled": false,
  "id": "79e1b543-d926-da4d-1f16-fcb2f330150b",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Ende wenn

ID: end_if
Website: /doku/steps/end_if/

Abbildung: [Das Ende eines Wenn-Blocks wird in der Oberfläche durch den Blockrahmen dargestellt. In der Textdatei schließt end_if den Block.](/ref-step-end-if.detail.png)

1. Wenn: Dieser Rahmen umfasst die Zweige bis zum zugehörigen end_if in der Textdatei.
2. Bei jedem Durchlauf: Der bedingte Block gehört hier zur Hauptphase des Jobs.
### errors

Ein fehlendes oder überzähliges Ende, phasenübergreifende Blöcke und ungültige Reihenfolgen werden zurückgewiesen. Korrigiere die Struktur in derselben Phasenliste.

### example

Die JSON-Liste enthält if, die Zweig-Steps, optional else und abschließend end_if mit eigener ID.

### purpose

Schließe den passenden Wenn-Block. Der Editor stellt die Blockstruktur dar; in JSON ist dieser Marker ein eigenes Element derselben Phasenliste. Jeder Wenn-Marker benötigt genau ein zugehöriges Ende, auch bei verschachtelten Blöcken.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "end_if",
  "name": "Ende wenn",
  "description": "Beendet den zugehörigen Wenn-Block.",
  "category": "AblaufSteuern",
  "uiFieldIds": [],
  "fields": [],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ],
  "inputs": [],
  "result": null
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "end_if",
  "CanBeDisabled": false,
  "id": "053969e6-9cd5-cbef-242e-4679d246788b",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Job beenden

ID: end_job
Website: /doku/steps/end_job/

Abbildung: [Detailansicht: Job beenden. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-end-job.detail.png)

1. Steps im Bereich „Bei Job-Ende“ überspringen: true überspringt die Endphase nach diesem EndJob-Step; false führt die konfigurierten Aufräum-Steps aus.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Wenn keine weitere Arbeit vorhanden ist → Job beenden; eine Textanzeige in endSteps bestätigt das Aufräumen.

### field.skip_end_steps

true überspringt die Endphase nach diesem EndJob-Step; false führt die konfigurierten Aufräum-Steps aus.

### purpose

Beende die Hauptphase des aktuellen Jobs. Standardmäßig folgt der Bereich „Beim Beenden“; skip_end_steps überspringt ihn ausdrücklich. Der Step beendet den besitzenden Job und ist kein pauschaler Stopp aller anderen Jobs.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.skip_end_steps

true überspringt die Endphase nach diesem EndJob-Step; false führt die konfigurierten Aufräum-Steps aus.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "end_job",
  "name": "Job beenden",
  "description": "Beendet die Hauptphase des aktuellen Jobs und führt anschließend die optionalen Steps im Bereich „Beim Beenden“ aus.",
  "category": "AblaufSteuern",
  "uiFieldIds": [
    "skip_end_steps"
  ],
  "fields": [
    {
      "id": "skip_end_steps",
      "name": "Steps im Bereich „Bei Job-Ende“ überspringen",
      "descriptor": {
        "Id": "skip_end_steps",
        "LabelKey": "Ui.Step.Settings.SkipEndSteps",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": "Ui.Step.Settings.SkipEndStepsHint",
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "EndJobSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.skip_end_steps",
      "name": "skip_end_steps",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    }
  ],
  "inputs": [],
  "result": null
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "end_job",
  "settings": {
    "skip_end_steps": false
  },
  "id": "116e7ca0-813b-7273-8e1a-ca1f817c3ace",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Datei oder Ordner bearbeiten

ID: file_system_operation
Website: /doku/steps/file_system_operation/

Abbildung: [Kopieraktion mit Quell- und Zielpfad und automatischem Anlegen fehlender übergeordneter Ordner. Weitere Optionen stehen unter Erweitert. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-dateien.detail.png)

1. Aktion: Dateiaktion Copy, Move, Rename oder Delete. Quelle und benötigte Zusatzfelder ändern sich mit der Aktion.
2. Quelle: Datei- oder Ordnerpfad, auf den die Dateiaktion angewendet wird. Der Pfad ist auf dem Zielrechner zu prüfen, nicht nur auf dem Rechner eines Agenten.
3. Ziel: Ziel der Kopier- oder Verschiebeaktion. Bei anderen Aktionen nicht als Ersatz für new_name verwenden.
4. Fehlende übergeordnete Ordner automatisch erstellen: Legt fehlende übergeordnete Zielordner bei den unterstützten Kopier-/Verschiebeaktionen an. Dies gewährt keine zusätzlichen Zugriffsrechte.
5. Bei gesperrten Dateien wiederholen: Wiederholt eine wegen Dateisperre fehlgeschlagene Dateiaktion nach konfigurierter Wartezeit. Andere Konfigurationsfehler werden dadurch nicht behoben.
6. Anzahl der Wiederholungen: Anzahl zusätzlicher Wiederholungsversuche nach einer Dateisperre; 0 deaktiviert zusätzliche Versuche.
7. Wartezeit zwischen Versuchen (ms): Pause zwischen Wiederholungsversuchen in Millisekunden. Ein höherer Wert gibt dem anderen Programm mehr Zeit zur Freigabe.
Abbildung: [Vollständige Feld-Ausschnitte der echten Oberfläche mit Beispielwerten zur Aktion Umbenennen. Die Nummer markiert Beschriftung und Eingabe gemeinsam; keine Dateiaktion wird ausgeführt.](/ref-step-file-system-operation-rename.detail.png)

1. Aktion: Dateiaktion Copy, Move, Rename oder Delete. Quelle und benötigte Zusatzfelder ändern sich mit der Aktion.
2. Quelle: Datei- oder Ordnerpfad, auf den die Dateiaktion angewendet wird. Der Pfad ist auf dem Zielrechner zu prüfen, nicht nur auf dem Rechner eines Agenten.
3. Neuer Name: Neuer Dateiname für Rename. Hier wird ein Name angegeben; die Quelle bestimmt den umzubenennenden Eintrag.
4. Bei gesperrten Dateien wiederholen: Wiederholt eine wegen Dateisperre fehlgeschlagene Dateiaktion nach konfigurierter Wartezeit. Andere Konfigurationsfehler werden dadurch nicht behoben.
5. Anzahl der Wiederholungen: Anzahl zusätzlicher Wiederholungsversuche nach einer Dateisperre; 0 deaktiviert zusätzliche Versuche.
6. Wartezeit zwischen Versuchen (ms): Pause zwischen Wiederholungsversuchen in Millisekunden. Ein höherer Wert gibt dem anderen Programm mehr Zeit zur Freigabe.
Abbildung: [Vollständige Feld-Ausschnitte der echten Oberfläche mit Beispielwerten zur Aktion Löschen. Die Nummer markiert Beschriftung und Eingabe gemeinsam; keine Dateiaktion wird ausgeführt.](/ref-step-file-system-operation-delete.detail.png)

1. Aktion: Dateiaktion Copy, Move, Rename oder Delete. Quelle und benötigte Zusatzfelder ändern sich mit der Aktion.
2. Quelle: Datei- oder Ordnerpfad, auf den die Dateiaktion angewendet wird. Der Pfad ist auf dem Zielrechner zu prüfen, nicht nur auf dem Rechner eines Agenten.
3. Optionaler Filter: Nur bei Aktion „Löschen“ sichtbar: Dateimuster wie *.txt für passende Dateien innerhalb eines Ordners. Mehrere Muster mit Semikolon trennen; keine Ordnertrennzeichen eintragen. Leer beschränkt die Auswahl nicht durch ein Muster.
4. Bei gesperrten Dateien wiederholen: Wiederholt eine wegen Dateisperre fehlgeschlagene Dateiaktion nach konfigurierter Wartezeit. Andere Konfigurationsfehler werden dadurch nicht behoben.
5. Anzahl der Wiederholungen: Anzahl zusätzlicher Wiederholungsversuche nach einer Dateisperre; 0 deaktiviert zusätzliche Versuche.
6. Wartezeit zwischen Versuchen (ms): Pause zwischen Wiederholungsversuchen in Millisekunden. Ein höherer Wert gibt dem anderen Programm mehr Zeit zur Freigabe.
### errors

Prüfe bei Fehlern Quellpfad, Aktion, Ziel, Zugriffsrechte und Dateisperren. Wiederholungen gelten für konfigurierte gesperrte Dateiaktionen; sie machen eine falsche Quelle nicht gültig. Ein teilweise bearbeiteter Ordner wird bei einem späteren Fehler nicht automatisch zurückgerollt.

### example

Der Beispielablauf „Arbeitsunterlagen vorbereiten“ kopiert je nach Auswahl Rechnungen oder Notizen in getrennte Arbeitsordner.

### field.create_parent_directories

Legt fehlende übergeordnete Zielordner bei den unterstützten Kopier-/Verschiebeaktionen an. Dies gewährt keine zusätzlichen Zugriffsrechte.

### field.filter

Nur bei Aktion „Löschen“ sichtbar: Dateimuster wie *.txt für passende Dateien innerhalb eines Ordners. Mehrere Muster mit Semikolon trennen; keine Ordnertrennzeichen eintragen. Leer beschränkt die Auswahl nicht durch ein Muster.

### field.new_name

Neuer Dateiname für Rename. Hier wird ein Name angegeben; die Quelle bestimmt den umzubenennenden Eintrag.

### field.operation

Dateiaktion Copy, Move, Rename oder Delete. Quelle und benötigte Zusatzfelder ändern sich mit der Aktion.

### field.operation.option.Copy

Kopiert die Quelle zum Ziel; die Quelle bleibt erhalten.

### field.operation.option.Delete

Entfernt passende Quelleinträge; zuerst mit entbehrlichen Testdaten prüfen.

### field.operation.option.Move

Verschiebt die Quelle zum Ziel; bei Erfolg liegt sie dort statt am ursprünglichen Ort.

### field.operation.option.Rename

Benennt den Quelleintrag mit new_name um.

### field.retry_count

Anzahl zusätzlicher Wiederholungsversuche nach einer Dateisperre; 0 deaktiviert zusätzliche Versuche.

### field.retry_delay_ms

Pause zwischen Wiederholungsversuchen in Millisekunden. Ein höherer Wert gibt dem anderen Programm mehr Zeit zur Freigabe.

### field.retry_locked_files

Wiederholt eine wegen Dateisperre fehlgeschlagene Dateiaktion nach konfigurierter Wartezeit. Andere Konfigurationsfehler werden dadurch nicht behoben.

### field.source_path

Datei- oder Ordnerpfad, auf den die Dateiaktion angewendet wird. Der Pfad ist auf dem Zielrechner zu prüfen, nicht nur auf dem Rechner eines Agenten.

### field.target_path

Ziel der Kopier- oder Verschiebeaktion. Bei anderen Aktionen nicht als Ersatz für new_name verwenden.

### input.source

Quell-Dateipfad. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.target

Ziel-Dateipfad. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle Kopieren, Verschieben, Umbenennen oder Löschen. Trage Quelle und die für diese Aktion benötigten Zielwerte ein. Nach dem Lauf zeigen affected_count und affected_paths, welche Einträge betroffen waren. Kopieren kann vorhandene Zieldateien ersetzen; teste den Ablauf zunächst mit den bereitgestellten Beispieldateien.

### result.affected_bytes

Umfang der betroffenen Dateidaten in Bytes. Einzelwert dieses Ergebnisses.

### result.affected_count

Gesamtzahl betroffener Einträge der Dateiaktion. Einzelwert dieses Ergebnisses.

### result.affected_directory_count

Anzahl betroffener Ordner, getrennt von Dateien. Einzelwert dieses Ergebnisses.

### result.affected_file_count

Anzahl betroffener Dateien, getrennt von Ordnern. Einzelwert dieses Ergebnisses.

### result.affected_paths

Liste der von der Dateiaktion betroffenen Pfade. Ein erfolgreicher Zähler ist nicht automatisch ein Backup-Versionsnachweis. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.affected_paths.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.completed_at_utc

UTC-Abschlusszeitpunkt der Aktion. Einzelwert dieses Ergebnisses.

### result.item_type

Ob Datei, Ordner oder mehrere Einträge von der Dateiaktion betroffen waren. Einzelwert dieses Ergebnisses.

### result.item_type.option.Directory

Betroffener Eintrag ist ein Ordner.

### result.item_type.option.File

Betroffener Eintrag ist eine Datei.

### result.item_type.option.Multiple

Mehrere Einträge wurden bearbeitet.

### result.operation

Tatsächlich angeforderte Dateiaktion. Zusammen mit den Zählern und Pfaden lesen, um deren Auswirkungen zu verstehen. Einzelwert dieses Ergebnisses.

### result.operation.option.Copy

Kopiert die Quelle zum Ziel; die Quelle bleibt erhalten.

### result.operation.option.Delete

Entfernt passende Quelleinträge; zuerst mit entbehrlichen Testdaten prüfen.

### result.operation.option.Move

Verschiebt die Quelle zum Ziel; bei Erfolg liegt sie dort statt am ursprünglichen Ort.

### result.operation.option.Rename

Benennt den Quelleintrag mit new_name um.

### result.source_path

Verwendeter Quellpfad der Dateiaktion. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.target_path

Verwendeter Zielpfad der Dateiaktion, soweit die gewählte Aktion ein Ziel besitzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.create_parent_directories

Legt fehlende übergeordnete Zielordner bei den unterstützten Kopier-/Verschiebeaktionen an. Dies gewährt keine zusätzlichen Zugriffsrechte.

### schema.settings.filter

Nur bei Aktion „Löschen“ sichtbar: Dateimuster wie *.txt für passende Dateien innerhalb eines Ordners. Mehrere Muster mit Semikolon trennen; keine Ordnertrennzeichen eintragen. Leer beschränkt die Auswahl nicht durch ein Muster.

### schema.settings.new_name

Neuer Dateiname für Rename. Hier wird ein Name angegeben; die Quelle bestimmt den umzubenennenden Eintrag.

### schema.settings.operation

Dateiaktion Copy, Move, Rename oder Delete. Quelle und benötigte Zusatzfelder ändern sich mit der Aktion.

### schema.settings.operation.option.Copy

Kopiert die Quelle zum Ziel; die Quelle bleibt erhalten.

### schema.settings.operation.option.Delete

Entfernt passende Quelleinträge; zuerst mit entbehrlichen Testdaten prüfen.

### schema.settings.operation.option.Move

Verschiebt die Quelle zum Ziel; bei Erfolg liegt sie dort statt am ursprünglichen Ort.

### schema.settings.operation.option.Rename

Benennt den Quelleintrag mit new_name um.

### schema.settings.retry_count

Anzahl zusätzlicher Wiederholungsversuche nach einer Dateisperre; 0 deaktiviert zusätzliche Versuche.

### schema.settings.retry_delay_ms

Pause zwischen Wiederholungsversuchen in Millisekunden. Ein höherer Wert gibt dem anderen Programm mehr Zeit zur Freigabe.

### schema.settings.retry_locked_files

Wiederholt eine wegen Dateisperre fehlgeschlagene Dateiaktion nach konfigurierter Wartezeit. Andere Konfigurationsfehler werden dadurch nicht behoben.

### schema.settings.source_mode

Bei älterer Pfadkonfiguration: ExplicitPath liest source_path, TaskResult liest source_result.

### schema.settings.source_mode.option.ExplicitPath

Verwendet den direkt angegebenen Pfad.

### schema.settings.source_mode.option.TaskResult

Verwendet den verbundenen Step-Ergebniswert statt des direkten Literals.

### schema.settings.source_path

Datei- oder Ordnerpfad, auf den die Dateiaktion angewendet wird. Der Pfad ist auf dem Zielrechner zu prüfen, nicht nur auf dem Rechner eines Agenten.

### schema.settings.source_result

Typisierte Referenz, deren Text/Dateipfad als Quelle der Dateiaktion verwendet wird.

### schema.settings.source_result.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.source_result.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.source_result.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.source_result.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.source_result.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.source_result.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.source_result.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.source_result.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.source_result.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.target_mode

Bei älterer Pfadkonfiguration: ExplicitPath liest target_path, TaskResult liest target_result.

### schema.settings.target_mode.option.ExplicitPath

Verwendet den direkt angegebenen Pfad.

### schema.settings.target_mode.option.TaskResult

Verwendet den verbundenen Step-Ergebniswert statt des direkten Literals.

### schema.settings.target_path

Ziel der Kopier- oder Verschiebeaktion. Bei anderen Aktionen nicht als Ersatz für new_name verwenden.

### schema.settings.target_result

Typisierte Referenz, deren Text/Dateipfad als Ziel der Dateiaktion verwendet wird.

### schema.settings.target_result.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.target_result.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.target_result.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.target_result.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.target_result.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.target_result.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.target_result.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.target_result.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.target_result.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "file_system_operation",
  "name": "Datei oder Ordner bearbeiten",
  "description": "Kopiert, verschiebt, benennt Dateien und Ordner um oder löscht sie optional anhand eines Filters.",
  "category": "DateienOrdner",
  "uiFieldIds": [
    "operation",
    "source_path",
    "target_path",
    "new_name",
    "filter",
    "create_parent_directories",
    "retry_locked_files",
    "retry_count",
    "retry_delay_ms"
  ],
  "fields": [
    {
      "id": "operation",
      "name": "Aktion",
      "descriptor": {
        "Id": "operation",
        "LabelKey": "Ui.Step.FileSystem.Operation",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Copy",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Copy",
            "Move",
            "Rename",
            "Delete"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "Copy",
            "LabelKey": "Ui.Step.FileSystem.Copy",
            "DisplayName": null
          },
          {
            "Value": "Move",
            "LabelKey": "Ui.Step.FileSystem.Move",
            "DisplayName": null
          },
          {
            "Value": "Rename",
            "LabelKey": "Ui.Step.FileSystem.Rename",
            "DisplayName": null
          },
          {
            "Value": "Delete",
            "LabelKey": "Ui.Step.FileSystem.Delete",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "source_path",
      "name": "Quelle",
      "descriptor": {
        "Id": "source_path",
        "LabelKey": "Ui.Step.FileSystem.Source",
        "ValueKind": "DirectoryPath",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "directory-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "target_path",
      "name": "Ziel",
      "descriptor": {
        "Id": "target_path",
        "LabelKey": "Ui.Step.FileSystem.Target",
        "ValueKind": "DirectoryPath",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "directory-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": {
          "FieldId": "operation",
          "EqualsValue": null,
          "AnyOfValues": [
            "Copy",
            "Move"
          ]
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "new_name",
      "name": "Neuer Name",
      "descriptor": {
        "Id": "new_name",
        "LabelKey": "Ui.Step.FileSystem.NewName",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 7,
        "VisibleWhen": {
          "FieldId": "operation",
          "EqualsValue": "Rename",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "filter",
      "name": "Optionaler Filter",
      "descriptor": {
        "Id": "filter",
        "LabelKey": "Ui.Step.FileSystem.Filter",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": null,
        "DescriptionKey": "Ui.Step.FileSystem.FilterHint",
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 8,
        "VisibleWhen": {
          "FieldId": "operation",
          "EqualsValue": "Delete",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "create_parent_directories",
      "name": "Fehlende übergeordnete Ordner automatisch erstellen",
      "descriptor": {
        "Id": "create_parent_directories",
        "LabelKey": "Ui.Step.FileSystem.CreateParents",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": true,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 9,
        "VisibleWhen": {
          "FieldId": "operation",
          "EqualsValue": null,
          "AnyOfValues": [
            "Copy",
            "Move"
          ]
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "retry_locked_files",
      "name": "Bei gesperrten Dateien wiederholen",
      "descriptor": {
        "Id": "retry_locked_files",
        "LabelKey": "Ui.Step.FileSystem.RetryLocked",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": true,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 10,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "retry_count",
      "name": "Anzahl der Wiederholungen",
      "descriptor": {
        "Id": "retry_count",
        "LabelKey": "Ui.Step.FileSystem.RetryCount",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 3,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 11,
        "VisibleWhen": {
          "FieldId": "retry_locked_files",
          "EqualsValue": true,
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "retry_delay_ms",
      "name": "Wartezeit zwischen Versuchen (ms)",
      "descriptor": {
        "Id": "retry_delay_ms",
        "LabelKey": "Ui.Step.FileSystem.RetryDelay",
        "ValueKind": "Duration",
        "Required": false,
        "DefaultValue": 100,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 12,
        "VisibleWhen": {
          "FieldId": "retry_locked_files",
          "EqualsValue": true,
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "FileSystemOperationSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.create_parent_directories",
      "name": "create_parent_directories",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings.filter",
      "name": "filter",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.new_name",
      "name": "new_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.operation",
      "name": "operation",
      "type": "FileSystemOperation",
      "options": [
        "Copy",
        "Move",
        "Rename",
        "Delete"
      ],
      "defaultValue": "Copy"
    },
    {
      "id": "settings.retry_count",
      "name": "retry_count",
      "type": "Int32",
      "options": [],
      "defaultValue": 3
    },
    {
      "id": "settings.retry_delay_ms",
      "name": "retry_delay_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 100
    },
    {
      "id": "settings.retry_locked_files",
      "name": "retry_locked_files",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings.source_mode",
      "name": "source_mode",
      "type": "FileSystemPathSource",
      "options": [
        "ExplicitPath",
        "TaskResult"
      ],
      "defaultValue": "ExplicitPath"
    },
    {
      "id": "settings.source_path",
      "name": "source_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.source_result",
      "name": "source_result",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.source_result.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.source_result.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.source_result.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.source_result.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.source_result.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.source_result.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.source_result.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.source_result.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.source_result.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_mode",
      "name": "target_mode",
      "type": "FileSystemPathSource",
      "options": [
        "ExplicitPath",
        "TaskResult"
      ],
      "defaultValue": "ExplicitPath"
    },
    {
      "id": "settings.target_path",
      "name": "target_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target_result",
      "name": "target_result",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_result.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_result.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_result.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_result.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_result.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_result.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target_result.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target_result.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target_result.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ],
  "inputs": [
    {
      "Key": "source",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Text",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "FilePath",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "secret"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "target",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Text",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "FilePath",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "secret"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "FileSystemOperationResult",
    "DisplayName": "FileSystemOperationResult",
    "Properties": [
      {
        "Name": "Operation",
        "DisplayName": "Operation",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.Jobs.FileSystemOperation",
        "EnumValues": [
          "Copy",
          "Move",
          "Rename",
          "Delete"
        ],
        "Id": "operation",
        "EnumDisplayNames": null,
        "StableId": "operation"
      },
      {
        "Name": "SourcePath",
        "DisplayName": "Source Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_path",
        "EnumDisplayNames": null,
        "StableId": "source_path"
      },
      {
        "Name": "TargetPath",
        "DisplayName": "Target Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "target_path",
        "EnumDisplayNames": null,
        "StableId": "target_path"
      },
      {
        "Name": "ItemType",
        "DisplayName": "Item Type",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.Steps.FileSystemItemType",
        "EnumValues": [
          "File",
          "Directory",
          "Multiple"
        ],
        "Id": "item_type",
        "EnumDisplayNames": null,
        "StableId": "item_type"
      },
      {
        "Name": "AffectedCount",
        "DisplayName": "Affected Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_count",
        "EnumDisplayNames": null,
        "StableId": "affected_count"
      },
      {
        "Name": "AffectedFileCount",
        "DisplayName": "Affected File Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_file_count",
        "EnumDisplayNames": null,
        "StableId": "affected_file_count"
      },
      {
        "Name": "AffectedDirectoryCount",
        "DisplayName": "Affected Directory Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_directory_count",
        "EnumDisplayNames": null,
        "StableId": "affected_directory_count"
      },
      {
        "Name": "AffectedBytes",
        "DisplayName": "Affected Bytes",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_bytes",
        "EnumDisplayNames": null,
        "StableId": "affected_bytes"
      },
      {
        "Name": "AffectedPaths",
        "DisplayName": "Affected Paths",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_paths",
        "EnumDisplayNames": null,
        "StableId": "affected_paths"
      },
      {
        "Name": "AffectedPaths.Count",
        "DisplayName": "Affected Paths / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_paths.count",
        "EnumDisplayNames": null,
        "StableId": "affected_paths.count"
      },
      {
        "Name": "CompletedAtUtc",
        "DisplayName": "Completed At Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "completed_at_utc",
        "EnumDisplayNames": null,
        "StableId": "completed_at_utc"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Operation",
        "DisplayName": "Operation",
        "Property": {
          "Name": "Operation",
          "DisplayName": "Operation",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.Jobs.FileSystemOperation",
          "EnumValues": [
            "Copy",
            "Move",
            "Rename",
            "Delete"
          ],
          "Id": "operation",
          "EnumDisplayNames": null,
          "StableId": "operation"
        },
        "Children": []
      },
      {
        "Segment": "SourcePath",
        "DisplayName": "Source Path",
        "Property": {
          "Name": "SourcePath",
          "DisplayName": "Source Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_path",
          "EnumDisplayNames": null,
          "StableId": "source_path"
        },
        "Children": []
      },
      {
        "Segment": "TargetPath",
        "DisplayName": "Target Path",
        "Property": {
          "Name": "TargetPath",
          "DisplayName": "Target Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "target_path",
          "EnumDisplayNames": null,
          "StableId": "target_path"
        },
        "Children": []
      },
      {
        "Segment": "ItemType",
        "DisplayName": "Item Type",
        "Property": {
          "Name": "ItemType",
          "DisplayName": "Item Type",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.Steps.FileSystemItemType",
          "EnumValues": [
            "File",
            "Directory",
            "Multiple"
          ],
          "Id": "item_type",
          "EnumDisplayNames": null,
          "StableId": "item_type"
        },
        "Children": []
      },
      {
        "Segment": "AffectedCount",
        "DisplayName": "Affected Count",
        "Property": {
          "Name": "AffectedCount",
          "DisplayName": "Affected Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_count",
          "EnumDisplayNames": null,
          "StableId": "affected_count"
        },
        "Children": []
      },
      {
        "Segment": "AffectedFileCount",
        "DisplayName": "Affected File Count",
        "Property": {
          "Name": "AffectedFileCount",
          "DisplayName": "Affected File Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_file_count",
          "EnumDisplayNames": null,
          "StableId": "affected_file_count"
        },
        "Children": []
      },
      {
        "Segment": "AffectedDirectoryCount",
        "DisplayName": "Affected Directory Count",
        "Property": {
          "Name": "AffectedDirectoryCount",
          "DisplayName": "Affected Directory Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_directory_count",
          "EnumDisplayNames": null,
          "StableId": "affected_directory_count"
        },
        "Children": []
      },
      {
        "Segment": "AffectedBytes",
        "DisplayName": "Affected Bytes",
        "Property": {
          "Name": "AffectedBytes",
          "DisplayName": "Affected Bytes",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_bytes",
          "EnumDisplayNames": null,
          "StableId": "affected_bytes"
        },
        "Children": []
      },
      {
        "Segment": "AffectedPaths",
        "DisplayName": "Affected Paths",
        "Property": {
          "Name": "AffectedPaths",
          "DisplayName": "Affected Paths",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_paths",
          "EnumDisplayNames": null,
          "StableId": "affected_paths"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AffectedPaths.Count",
              "DisplayName": "Affected Paths / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "affected_paths.count",
              "EnumDisplayNames": null,
              "StableId": "affected_paths.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "CompletedAtUtc",
        "DisplayName": "Completed At Utc",
        "Property": {
          "Name": "CompletedAtUtc",
          "DisplayName": "Completed At Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "completed_at_utc",
          "EnumDisplayNames": null,
          "StableId": "completed_at_utc"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "file_system_operation",
  "settings": {
    "operation": "Copy",
    "source_mode": "ExplicitPath",
    "source_path": "",
    "source_result": {
      "provider_id": "",
      "source_id": ""
    },
    "target_mode": "ExplicitPath",
    "target_path": "",
    "target_result": {
      "provider_id": "",
      "source_id": ""
    },
    "new_name": "",
    "filter": "",
    "create_parent_directories": true,
    "retry_locked_files": true,
    "retry_count": 3,
    "retry_delay_ms": 100
  },
  "id": "fd4d948b-8366-d9ec-c236-0eb9d97b2607",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Fenster anzeigen oder minimieren

ID: focus_process
Website: /doku/steps/focus_process/

Abbildung: [Detailansicht: Fenster anzeigen oder minimieren. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-focus-process.detail.png)

1. Prozessreferenz: Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.
2. Aktion: Gewünschte Aktion. Die zulässigen Optionen hängen vom Step ab; wähle die Option in der folgenden Liste und ergänze nur ihre aktiven Felder.
3. Fenstermodus: Fensterdarstellung: Voreinstellung des Programms, Normal oder Maximiert, soweit der jeweilige Step diese Option unterstützt.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Editorinstanz suchen → BringToFront und Normal auswählen → Makro „Notiz eingeben“ ausführen.

### field.action

Gewünschte Aktion. Die zulässigen Optionen hängen vom Step ab; wähle die Option in der folgenden Liste und ergänze nur ihre aktiven Felder.

### field.action.option.BringToFront

Versucht das passende Fenster in den Vordergrund zu bringen.

### field.action.option.Minimize

Minimiert das passende Fenster.

### field.process_target

Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.

### field.window_mode

Fensterdarstellung: Voreinstellung des Programms, Normal oder Maximiert, soweit der jeweilige Step diese Option unterstützt.

### field.window_mode.option.Maximized

Maximiert das Fenster, soweit es dies unterstützt.

### field.window_mode.option.Normal

Verwendet ein normales, nicht maximiertes Fenster.

### input.process

konkrete Prozessreferenz. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle eine konkrete Prozessreferenz und bringe ein passendes Fenster nach vorn oder minimiere es. Der Titelteil hilft bei mehreren Fenstern; beim Anzeigen kannst du Normal oder Maximiert wählen. Windows kann den Vordergrundwechsel beschränken, etwa bei anderen Berechtigungsstufen.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.action

Gewünschte Aktion. Die zulässigen Optionen hängen vom Step ab; wähle die Option in der folgenden Liste und ergänze nur ihre aktiven Felder.

### schema.settings.action.option.BringToFront

Versucht das passende Fenster in den Vordergrund zu bringen.

### schema.settings.action.option.Minimize

Minimiert das passende Fenster.

### schema.settings.target

Prozess-Zielkonfiguration aus Name/Pfad/Titel oder einer konkreten Prozessreferenz. Die konkrete Referenz schützt vor Verwechslung gleichnamiger Instanzen.

### schema.settings.target.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### schema.settings.target.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### schema.settings.target.process_source

Referenz auf eine konkrete laufende Programminstanz, üblicherweise process aus get_process oder start_process.

### schema.settings.target.process_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.target.process_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.target.process_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.target.process_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.target.process_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.target.process_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.target.process_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.target.process_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.target.process_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.target.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### schema.settings.window_mode

Fensterdarstellung: Voreinstellung des Programms, Normal oder Maximiert, soweit der jeweilige Step diese Option unterstützt.

### schema.settings.window_mode.option.Fullscreen

Fenster im unterstützten Vollbildmodus anzeigen.

### schema.settings.window_mode.option.Maximized

Maximiert das Fenster, soweit es dies unterstützt.

### schema.settings.window_mode.option.Normal

Verwendet ein normales, nicht maximiertes Fenster.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "focus_process",
  "name": "Fenster anzeigen oder minimieren",
  "description": "Bringt ein Prozessfenster in den Vordergrund oder minimiert es. Optional kann nach einem Fenstertitel gefiltert werden.",
  "category": "ProgrammeFenster",
  "uiFieldIds": [
    "process_target",
    "action",
    "window_mode"
  ],
  "fields": [
    {
      "id": "process_target",
      "name": "Prozessreferenz",
      "descriptor": {
        "Id": "process_target",
        "LabelKey": "Ui.Step.Settings.ProcessSource",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "process-target-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "process",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "action",
      "name": "Aktion",
      "descriptor": {
        "Id": "action",
        "LabelKey": "Ui.Step.Settings.Action",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "BringToFront",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "BringToFront",
            "Minimize"
          ]
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "BringToFront",
            "LabelKey": "Enum.FocusProcessAction.BringToFront",
            "DisplayName": null
          },
          {
            "Value": "Minimize",
            "LabelKey": "Enum.FocusProcessAction.Minimize",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "window_mode",
      "name": "Fenstermodus",
      "descriptor": {
        "Id": "window_mode",
        "LabelKey": "Ui.Step.Settings.WindowMode",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Normal",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Normal",
            "Maximized"
          ]
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": {
          "FieldId": "action",
          "EqualsValue": "BringToFront",
          "AnyOfValues": null
        },
        "Options": [
          {
            "Value": "Normal",
            "LabelKey": "Enum.FocusProcessWindowMode.Normal",
            "DisplayName": null
          },
          {
            "Value": "Maximized",
            "LabelKey": "Enum.FocusProcessWindowMode.Maximized",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "FocusProcessSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.action",
      "name": "action",
      "type": "FocusProcessAction",
      "options": [
        "BringToFront",
        "Minimize"
      ],
      "defaultValue": "BringToFront"
    },
    {
      "id": "settings.target",
      "name": "target",
      "type": "ProcessTargetSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.executable_path",
      "name": "executable_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source",
      "name": "process_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.window_mode",
      "name": "window_mode",
      "type": "FocusProcessWindowMode",
      "options": [
        "Normal",
        "Maximized",
        "Fullscreen"
      ],
      "defaultValue": "Normal"
    }
  ],
  "inputs": [
    {
      "Key": "process",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "FocusProcessResult",
    "DisplayName": "FocusProcessResult",
    "Properties": [
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "focus_process",
  "settings": {
    "target": {
      "process_source": {
        "provider_id": "",
        "source_id": ""
      },
      "process_name": "",
      "executable_path": "",
      "window_title_contains": ""
    },
    "action": "BringToFront",
    "window_mode": "Normal"
  },
  "id": "57d5804e-5282-502f-0454-33619a4efedb",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Laufenden Prozess suchen

ID: get_process
Website: /doku/steps/get_process/

Abbildung: [Detailansicht: Laufenden Prozess suchen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-get-process.detail.png)

1. Prozessname: Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.
2. Programmpfad: Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.
3. Fenstertitel enthält: Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

process_name auf notepad setzen; process an den nächsten Fokus-Step weiterreichen.

### field.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### field.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### field.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### purpose

Suche eine laufende Programminstanz über Namen, ausführbare Datei und optionalen Fenstertitel. Die Ausgabe process bezeichnet eine konkrete Instanz und kann an Statusprüfung, Fenstersteuerung oder Beenden weitergereicht werden. Verwende found beziehungsweise match_count, wenn kein oder mehr als ein Treffer möglich ist.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.query

Prozesssuche mit process_name, executable_path, window_title_contains oder einer konkreten process_source. Leere Suchkriterien und Typkompatibilität gemäß Prozessvertrag prüfen.

### schema.settings.query.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### schema.settings.query.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### schema.settings.query.process_source

Referenz auf eine konkrete laufende Programminstanz, üblicherweise process aus get_process oder start_process.

### schema.settings.query.process_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.query.process_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.query.process_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.query.process_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.query.process_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.query.process_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.query.process_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.query.process_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.query.process_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.query.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "get_process",
  "name": "Laufenden Prozess suchen",
  "description": "Sucht einen laufenden Prozess anhand seiner Merkmale und stellt die konkrete Prozessreferenz für nachfolgende Steps bereit.",
  "category": "ProgrammeFenster",
  "uiFieldIds": [
    "process_name",
    "executable_path",
    "window_title_contains"
  ],
  "fields": [
    {
      "id": "process_name",
      "name": "Prozessname",
      "descriptor": {
        "Id": "process_name",
        "LabelKey": "Ui.Step.Settings.ProcessName",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "process-name-suggestions",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "executable_path",
      "name": "Programmpfad",
      "descriptor": {
        "Id": "executable_path",
        "LabelKey": "Ui.Step.Settings.PathProgram",
        "ValueKind": "FilePath",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "executable-path-suggestions",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "window_title_contains",
      "name": "Fenstertitel enthält",
      "descriptor": {
        "Id": "window_title_contains",
        "LabelKey": "Ui.Step.Settings.WindowTitleContains",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "GetProcessSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query",
      "name": "query",
      "type": "ProcessTargetSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.executable_path",
      "name": "executable_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.query.process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.query.process_source",
      "name": "process_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.process_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.process_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.process_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.process_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.process_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.process_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.query.process_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.process_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.query.process_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query.window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "GetProcessResult",
    "DisplayName": "GetProcessResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "get_process",
  "settings": {
    "query": {
      "process_source": {
        "provider_id": "",
        "source_id": ""
      },
      "process_name": "",
      "executable_path": "",
      "window_title_contains": ""
    }
  },
  "id": "4d2791b6-420f-dcae-97a3-f32ff904ab70",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Wenn

ID: if
Website: /doku/steps/if/

Abbildung: [Der Wenn-Block vergleicht das Ergebnis der Benutzerauswahl mit dem Wert rechnung. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-bedingung.detail.png)

1. Bedingungen: Geordnete Bedingungsliste des Wenn-Zweigs. Jede Bedingung benötigt eine passende Ergebnisquelle und den gewählten Operator.
### errors

Ungültige Ergebnisreferenzen, inkompatible Vergleichstypen und unvollständige Blockstruktur werden zurückgewiesen. Rohwerte und Secrets gehören nicht in Diagnosemeldungen; der Verlauf beschreibt Operator und Entscheidungsstatus.

### example

Der Beispieljob „Arbeitsunterlagen vorbereiten“ vergleicht selected_value mit „rechnung“ und führt nur den passenden Kopierzweig aus.

### field.conditions

Geordnete Bedingungsliste des Wenn-Zweigs. Jede Bedingung benötigt eine passende Ergebnisquelle und den gewählten Operator.

### purpose

Beginne einen bedingten Block und wähle Ergebniswert, Operator und gegebenenfalls Vergleichswert. „Alle“ verknüpft Bedingungen mit UND, „Mindestens eine“ mit ODER. Bedingungen verwenden typisierte Werte; ein noch nicht ausgeführter oder inkompatibler Quell-Step darf nicht als vorhandenes Ergebnis angenommen werden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.conditions

Geordnete Bedingungsliste des Wenn-Zweigs. Jede Bedingung benötigt eine passende Ergebnisquelle und den gewählten Operator.

### schema.settings.conditions.comparison

Rechte Seite des Vergleichs: Literal oder ein weiteres Job-Ergebnis, abhängig von kind.

### schema.settings.conditions.comparison.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.comparison.items.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.comparison.items.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.comparison.items.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.comparison.items.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.comparison.items.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.comparison.items.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.comparison.items.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.comparison.items.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.comparison.items.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.comparison.kind

Literal verwendet den direkt konfigurierten Vergleichswert; JobResult verwendet die zweite typisierte Ergebnisreferenz. Dieses Enum ist kein type/$type-Discriminator.

### schema.settings.conditions.comparison.kind.option.JobResult

Verwendet einen kompatiblen Ergebniswert eines Job-Steps.

### schema.settings.conditions.comparison.kind.option.Literal

Verwendet einen direkt gespeicherten Vergleichswert.

### schema.settings.conditions.comparison.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.comparison.members.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.comparison.members.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.comparison.members.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.comparison.members.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.comparison.members.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.comparison.members.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.comparison.members.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.comparison.members.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.comparison.members.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.comparison.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.comparison.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.comparison.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.comparison.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.comparison.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.comparison.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.comparison.value

Gespeicherter Literal- oder Vergleichswert. Sein JSON-Typ muss zum angegebenen value_kind und zur Kardinalität passen; Zahlen und Booleans nicht versehentlich als Text speichern.

### schema.settings.conditions.comparison.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.comparison_value

Direkt eingetragener Vergleichswert. Sein Typ muss zum linken Ergebnis und Operator passen.

### schema.settings.conditions.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.items.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.items.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.items.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.items.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.items.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.items.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.items.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.items.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.items.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.members.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.conditions.members.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.conditions.members.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.members.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.members.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.members.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.members.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.members.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.members.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.conditions.operator

Vergleichsoperator. Wahrheits-/Leerheitsprüfungen benötigen keinen zusätzlichen Vergleichstext; andere Operatoren verlangen kompatible Werte.

### schema.settings.conditions.operator.option.Contains

Prüft, ob Text den angegebenen Vergleichstext enthält.

### schema.settings.conditions.operator.option.Equals

Prüft typkompatible Werte auf Gleichheit.

### schema.settings.conditions.operator.option.GreaterThan

Linker Wert muss größer sein als der rechte Vergleichswert.

### schema.settings.conditions.operator.option.GreaterThanOrEqual

Linker Wert muss größer oder gleich dem Vergleichswert sein.

### schema.settings.conditions.operator.option.IsEmpty

Prüft einen vorhandenen Wert auf Leerheit; ungültige Referenzen werden dadurch nicht gültig.

### schema.settings.conditions.operator.option.IsFalse

Prüft einen booleschen Wert auf false, ohne rechten Vergleichswert.

### schema.settings.conditions.operator.option.IsNotEmpty

Prüft einen vorhandenen Wert auf Nicht-Leerheit.

### schema.settings.conditions.operator.option.IsTrue

Prüft einen booleschen Wert auf true, ohne rechten Vergleichswert.

### schema.settings.conditions.operator.option.LessThan

Linker Wert muss kleiner sein als der rechte Vergleichswert.

### schema.settings.conditions.operator.option.LessThanOrEqual

Linker Wert muss kleiner oder gleich dem Vergleichswert sein.

### schema.settings.conditions.operator.option.NotEquals

Prüft typkompatible Werte auf Ungleichheit.

### schema.settings.conditions.operator.option.StartsWith

Prüft, ob Text mit dem angegebenen Vergleichstext beginnt.

### schema.settings.conditions.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.conditions.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.conditions.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.conditions.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.conditions.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.conditions.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.conditions.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.match_mode

All verlangt alle Bedingungen; Any lässt eine passende Bedingung genügen.

### schema.settings.match_mode.option.All

Alle betrachteten Bedingungen beziehungsweise Punkte müssen passen.

### schema.settings.match_mode.option.Any

Mindestens eine betrachtete Bedingung beziehungsweise ein Punkt muss passen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "if",
  "name": "Wenn",
  "description": "Beginnt einen bedingten Block.",
  "category": "AblaufSteuern",
  "uiFieldIds": [
    "conditions"
  ],
  "fields": [
    {
      "id": "conditions",
      "name": "Bedingungen",
      "descriptor": {
        "Id": "conditions",
        "LabelKey": "Ui.Step.Settings.Evaluation",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "match_mode": "All",
          "conditions": []
        },
        "DescriptionKey": null,
        "EditorHint": "condition-editor",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "IfConditionSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions",
      "name": "conditions",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison",
      "name": "comparison",
      "type": "ComparisonOperand",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.items.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.kind",
      "name": "kind",
      "type": "ComparisonOperandKind",
      "options": [
        "Literal",
        "JobResult"
      ],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.members.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.value",
      "name": "value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.comparison_value",
      "name": "comparison_value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.items.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.members.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.operator",
      "name": "operator",
      "type": "ConditionOperator",
      "options": [
        "IsTrue",
        "IsFalse",
        "Equals",
        "NotEquals",
        "GreaterThan",
        "LessThan",
        "GreaterThanOrEqual",
        "LessThanOrEqual",
        "Contains",
        "StartsWith",
        "IsEmpty",
        "IsNotEmpty"
      ],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.conditions.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.match_mode",
      "name": "match_mode",
      "type": "ConditionMatchMode",
      "options": [
        "All",
        "Any"
      ],
      "defaultValue": "All"
    }
  ],
  "inputs": [],
  "result": null
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "if",
  "settings": {
    "match_mode": "All",
    "conditions": []
  },
  "CanBeDisabled": false,
  "id": "d63699e5-2497-796d-bcbd-666b1c4a79ab",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Job ausführen

ID: job_execution
Website: /doku/steps/job_execution/

Abbildung: [Detailansicht: Job ausführen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-job-execution.detail.png)

1. Job: Im Editor eine vorhandene Jobreferenz wählen. In JSON müssen deren stabile Job-ID und der erwartete Referenztyp zusammenpassen.
2. Auf Beendigung warten: true wartet auf den Unterjob, bevor der nächste Step beginnt. false erlaubt parallele Hauptarbeit, löst aber nicht die Besitz- und Fehlerbeziehung.
### errors

Fehlende Job-IDs, direkte oder indirekte Abhängigkeitszyklen und ein fehlgeschlagener Unterjob sind Fehler. Auch ohne sofortiges Warten bleibt der Besitzer für die Unterarbeit verantwortlich.

### example

Ein Hauptjob startet einen zuvor getesteten Sicherungsjob per job_id und wartet mit wait_for_completion auf dessen Abschluss.

### field.job

Im Editor eine vorhandene Jobreferenz wählen. In JSON müssen deren stabile Job-ID und der erwartete Referenztyp zusammenpassen.

### field.wait_for_completion

true wartet auf den Unterjob, bevor der nächste Step beginnt. false erlaubt parallele Hauptarbeit, löst aber nicht die Besitz- und Fehlerbeziehung.

### purpose

Wähle einen vorhandenen Job per stabiler ID. Der aufrufende Job besitzt den gestarteten Unterjob. Ohne sofortiges Warten kann die Hauptphase weiterlaufen; vor der eigenen Endphase werden besessene Unterjobs zusammengeführt. Ein fehlgeschlagener Unterjob lässt den Besitzer fehlschlagen; zyklische Job-Abhängigkeiten sind unzulässig.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.job_id

GUID des auszuführenden Jobs. Ein Anzeigename alleine reicht für die Zuordnung nicht aus.

### schema.settings.job_name

Gespeicherter Anzeigename der ausgewählten Jobreferenz; die Ausführung richtet sich nach der Job-ID.

### schema.settings.wait_for_completion

true wartet auf den Unterjob, bevor der nächste Step beginnt. false erlaubt parallele Hauptarbeit, löst aber nicht die Besitz- und Fehlerbeziehung.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "job_execution",
  "name": "Job ausführen",
  "description": "Startet einen anderen Job und wartet optional auf dessen Abschluss.",
  "category": "AblaufSteuern",
  "uiFieldIds": [
    "job",
    "wait_for_completion"
  ],
  "fields": [
    {
      "id": "job",
      "name": "Job",
      "descriptor": {
        "Id": "job",
        "LabelKey": "Ui.Step.Settings.Job",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "job-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "wait_for_completion",
      "name": "Auf Beendigung warten",
      "descriptor": {
        "Id": "wait_for_completion",
        "LabelKey": "Ui.Step.Settings.WaitForCompletion",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": true,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "JobExecutionStepSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.job_id",
      "name": "job_id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.job_name",
      "name": "job_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.wait_for_completion",
      "name": "wait_for_completion",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "JobExecutionResult",
    "DisplayName": "JobExecutionResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "job_execution",
  "settings": {
    "job_name": "",
    "job_id": null,
    "wait_for_completion": true
  },
  "id": "7deb7f0c-62e0-194e-3194-da75007c16ed",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Bildmerkmale vergleichen

ID: keypoint_matching
Website: /doku/steps/keypoint_matching/

Abbildung: [Detailansicht: Bildmerkmale vergleichen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-keypoint-matching.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. Bildvorlage: Pfad zur lokalen Bildvorlage. Die Datei muss vorhanden und lesbar sein; für Pixelvorlagen darf sie nicht größer als der Suchbereich sein.
3. Bildbereich (ROI): Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.
4. Mindestanzahl Treffer: Mindestanzahl zuverlässiger SIFT-Merkmalszuordnungen, bevor der Merkmalsvergleich als Treffer gilt.
5. Lowe-Verhältnis (0–1): Lowe-Verhältnis von 0 bis 1 zur Filterung mehrdeutiger SIFT-Zuordnungen. Strengere Werte können die Trefferzahl verringern.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Bildschirm aufnehmen → detailreiche lokale PNG-Vorlage wählen → mindestens zehn Zuordnungen verlangen → found prüfen.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.lowes_ratio_threshold

Lowe-Verhältnis von 0 bis 1 zur Filterung mehrdeutiger SIFT-Zuordnungen. Strengere Werte können die Trefferzahl verringern.

### field.min_match_count

Mindestanzahl zuverlässiger SIFT-Merkmalszuordnungen, bevor der Merkmalsvergleich als Treffer gilt.

### field.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### field.template_path

Pfad zur lokalen Bildvorlage. Die Datei muss vorhanden und lesbar sein; für Pixelvorlagen darf sie nicht größer als der Suchbereich sein.

### input.dynamicRoi

dynamischer Suchbereich. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Vergleiche charakteristische SIFT-Bildmerkmale einer Vorlage mit einer Bildquelle. Mindestanzahl und Lowe-Verhältnis entscheiden, ob genügend zuverlässige Zuordnungen vorliegen. Anders als Pixelvorlagen ist dieser Ansatz auf Bildmerkmale ausgerichtet; eine strukturarme Vorlage kann zu wenig Merkmale liefern.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.dynamic_roi_source

Kompatible dynamische Rechteckquelle. Eine spätere DynamicRoi-Quelle darf Feedback für den nächsten Durchlauf liefern; dies ist eine besondere Ausnahme von normalen Vorwärtsreferenzen.

### schema.settings.dynamic_roi_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.dynamic_roi_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.dynamic_roi_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.dynamic_roi_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.dynamic_roi_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.dynamic_roi_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.dynamic_roi_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.dynamic_roi_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.dynamic_roi_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.enable_roi

Aktiviert den direkt konfigurierten Suchbereich. Ohne Aktivierung wird der Standardbereich der Quelle verwendet, sofern keine dynamische ROI-Quelle greift.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.lowes_ratio_threshold

Lowe-Verhältnis von 0 bis 1 zur Filterung mehrdeutiger SIFT-Zuordnungen. Strengere Werte können die Trefferzahl verringern.

### schema.settings.min_match_count

Mindestanzahl zuverlässiger SIFT-Merkmalszuordnungen, bevor der Merkmalsvergleich als Treffer gilt.

### schema.settings.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### schema.settings.roi.Empty

Vom serialisierten Geometrieobjekt angebotener Leerzustand. Kein eigener ROI-Schalter: den Suchbereich mit enable_roi beziehungsweise roi.enabled und den Koordinaten konfigurieren; dieses abgeleitete Mitglied nicht als Eingabequelle verwenden.

### schema.settings.roi.height

Höhe des Rechtecks oder Bildformats in Pixeln. Negative Größen sind kein gültiger Suchbereich.

### schema.settings.roi.width

Breite des Rechtecks oder Bildformats in Pixeln. Zusammen mit Höhe und Ursprung ergibt sie die räumliche Größe.

### schema.settings.roi.x

Horizontale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate X = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### schema.settings.roi.y

Vertikale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate Y = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### schema.settings.template_path

Pfad zur lokalen Bildvorlage. Die Datei muss vorhanden und lesbar sein; für Pixelvorlagen darf sie nicht größer als der Suchbereich sein.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "keypoint_matching",
  "name": "Bildmerkmale vergleichen",
  "description": "Vergleicht Bildmerkmale einer Bildvorlage mithilfe von SIFT.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "image_source",
    "template_path",
    "roi",
    "min_match_count",
    "lowes_ratio_threshold"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "template_path",
      "name": "Bildvorlage",
      "descriptor": {
        "Id": "template_path",
        "LabelKey": "Ui.Step.Settings.Template",
        "ValueKind": "FilePath",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "file-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": {
          "Kind": "Image",
          "ShowPreview": true
        },
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "roi",
      "name": "Bildbereich (ROI)",
      "descriptor": {
        "Id": "roi",
        "LabelKey": "Ui.Step.Settings.ROI",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "enabled": false,
          "x": 0,
          "y": 0,
          "width": 0,
          "height": 0,
          "dynamic_source": null
        },
        "DescriptionKey": null,
        "EditorHint": "roi-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": {
          "DynamicInputContractId": "dynamicRoi"
        },
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "min_match_count",
      "name": "Mindestanzahl Treffer",
      "descriptor": {
        "Id": "min_match_count",
        "LabelKey": "Ui.Step.Settings.MinMatches",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 10,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "lowes_ratio_threshold",
      "name": "Lowe-Verhältnis (0–1)",
      "descriptor": {
        "Id": "lowes_ratio_threshold",
        "LabelKey": "Ui.Step.Settings.LoweSRatio01",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 0.75,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 1e-06,
          "Maximum": 1,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "KeyPointMatchingSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source",
      "name": "dynamic_roi_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.enable_roi",
      "name": "enable_roi",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.lowes_ratio_threshold",
      "name": "lowes_ratio_threshold",
      "type": "Double",
      "options": [],
      "defaultValue": 0.75
    },
    {
      "id": "settings.min_match_count",
      "name": "min_match_count",
      "type": "Int32",
      "options": [],
      "defaultValue": 10
    },
    {
      "id": "settings.roi",
      "name": "roi",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.Empty",
      "name": "Empty",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.height",
      "name": "height",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.width",
      "name": "width",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.x",
      "name": "x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.y",
      "name": "y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.template_path",
      "name": "template_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "dynamicRoi",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "KeyPointMatchingResult",
    "DisplayName": "KeyPointMatchingResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "keypoint_matching",
  "settings": {
    "template_path": "",
    "min_match_count": 10,
    "lowes_ratio_threshold": 0.75,
    "enable_roi": false,
    "roi": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "dynamic_roi_source": {
      "provider_id": "",
      "source_id": ""
    }
  },
  "id": "4e14e928-862e-8c96-5024-1350f0969673",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Punkt anklicken

ID: klick_on_point
Website: /doku/steps/klick_on_point/

Abbildung: [Detailansicht: Punkt anklicken. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-klick-on-point.detail.png)

1. Punktquelle: Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.
2. Maustaste: left, right oder middle sendet die entsprechende Maustaste; none führt nur die Mausbewegung aus.
3. Versatz X (px): Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.
4. Versatz Y (px): Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.
5. Zeitlimit (ms): Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.
6. Doppelklick: Sendet einen Doppelklick statt eines Einzelklicks, sofern eine Maustaste gewählt ist.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Ein Erkennungs-Step liefert point; der Klick-Step verwendet diese Punktquelle, linke Taste und optional offset_x=5.

### field.click_type

left, right oder middle sendet die entsprechende Maustaste; none führt nur die Mausbewegung aus.

### field.click_type.option.left

Linke Maustaste.

### field.click_type.option.middle

Mittlere Maustaste.

### field.click_type.option.none

Keine Maustaste senden; nur die Bewegung ausführen.

### field.click_type.option.right

Rechte Maustaste.

### field.double_click

Sendet einen Doppelklick statt eines Einzelklicks, sofern eine Maustaste gewählt ist.

### field.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### field.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### field.points_source

Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.

### field.timeout_ms

Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.

### input.points

Punkt-/Erkennungsergebnis. Fehlende erforderliche Werte führen zum Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle eine kompatible Punktquelle und optional einen Pixelversatz. Bei einer Liste wird der erste passende Punkt verwendet, nicht jedes Listenelement angeklickt. Wähle eine Maustaste oder „none“ für reine Bewegung; ein Doppelklick ist eine zusätzliche Eingabeaktion.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.click_type

left, right oder middle sendet die entsprechende Maustaste; none führt nur die Mausbewegung aus.

### schema.settings.double_click

Sendet einen Doppelklick statt eines Einzelklicks, sofern eine Maustaste gewählt ist.

### schema.settings.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.points_source

Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.

### schema.settings.points_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.points_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.points_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.points_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.points_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.points_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.points_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.points_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.points_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.timeout_ms

Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "klick_on_point",
  "name": "Punkt anklicken",
  "description": "Klickt auf einen direkt angegebenen oder referenzierten Punkt.",
  "category": "MausTastatur",
  "uiFieldIds": [
    "points_source",
    "click_type",
    "offset_x",
    "offset_y",
    "timeout_ms",
    "double_click"
  ],
  "fields": [
    {
      "id": "points_source",
      "name": "Punktquelle",
      "descriptor": {
        "Id": "points_source",
        "LabelKey": "Ui.Step.Settings.PointSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "points",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "click_type",
      "name": "Maustaste",
      "descriptor": {
        "Id": "click_type",
        "LabelKey": "Ui.Step.Settings.ClickType",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "left",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "left",
            "right",
            "middle",
            "none"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "left",
            "LabelKey": "Enum.MouseClickType.Left",
            "DisplayName": null
          },
          {
            "Value": "right",
            "LabelKey": "Enum.MouseClickType.Right",
            "DisplayName": null
          },
          {
            "Value": "middle",
            "LabelKey": "Enum.MouseClickType.Middle",
            "DisplayName": null
          },
          {
            "Value": "none",
            "LabelKey": "Enum.MouseClickType.None",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_x",
      "name": "Versatz X (px)",
      "descriptor": {
        "Id": "offset_x",
        "LabelKey": "Ui.Step.Settings.XOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_y",
      "name": "Versatz Y (px)",
      "descriptor": {
        "Id": "offset_y",
        "LabelKey": "Ui.Step.Settings.YOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "timeout_ms",
      "name": "Zeitlimit (ms)",
      "descriptor": {
        "Id": "timeout_ms",
        "LabelKey": "Ui.Step.Settings.TimeoutMs",
        "ValueKind": "Duration",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "double_click",
      "name": "Doppelklick",
      "descriptor": {
        "Id": "double_click",
        "LabelKey": "Ui.Step.Settings.DoubleClick",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 5,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "KlickOnPointSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.click_type",
      "name": "click_type",
      "type": "String",
      "options": [],
      "defaultValue": "left"
    },
    {
      "id": "settings.double_click",
      "name": "double_click",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.points_source",
      "name": "points_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.points_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.points_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.timeout_ms",
      "name": "timeout_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    }
  ],
  "inputs": [
    {
      "Key": "points",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "local_value"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "KlickOnPointResult",
    "DisplayName": "KlickOnPointResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "klick_on_point",
  "settings": {
    "double_click": false,
    "click_type": "left",
    "timeout_ms": 0,
    "offset_x": 0,
    "offset_y": 0,
    "points_source": {
      "provider_id": "",
      "source_id": ""
    }
  },
  "id": "12ba351e-b0cc-6cb8-3277-7dcc5cc6353f",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: 3D-Ziel anklicken

ID: klick_on_point_3d
Website: /doku/steps/klick_on_point_3d/

Abbildung: [Detailansicht: 3D-Ziel anklicken. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-klick-on-point-3d.detail.png)

1. Punktquelle: Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.
2. Ursprung: Referenzursprung für die relative Zielbewegung. Die gewählte Koordinatenquelle und ihr Koordinatenraum müssen zum Ziel passen.
3. Maustaste: left, right oder middle sendet die entsprechende Maustaste; none führt nur die Mausbewegung aus.
4. Bewegungsfaktor X: Skalierung der horizontalen Zielabweichung für die relative Mausbewegung. Zunächst mit kleinen Faktoren testen.
5. Bewegungsfaktor Y: Skalierung der vertikalen Zielabweichung für die relative Mausbewegung. X- und Y-Achse können unterschiedlich reagieren.
6. Versatz X (px): Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.
7. Versatz Y (px): Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.
8. Zeitlimit (ms): Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.
9. Doppelklick: Sendet einen Doppelklick statt eines Einzelklicks, sofern eine Maustaste gewählt ist.
10. Bewegungstoleranz (px): Inklusive Toleranz in Pixeln auf beiden Achsen für wiederholte ganzzahlige Mausbewegungen. Standard 10; 0 unterdrückt nur exakt gleiche Bewegungen. Nur eine erfolgreich gesendete Bewegung aktualisiert die Vergleichsbasis.
### errors

Ein unterdrückter alter Frame oder eine Bewegung innerhalb der Toleranz sendet keine neue Bewegung und keinen Klick. Lies movement_blocked; fehlende Quellen, abgelaufene Eingaben und falsche Typen dürfen nicht als erfolgreiche Aktion behandelt werden.

### example

Erkennungspunkt relativ zum Bildschirmmittelpunkt verwenden; Faktoren zunächst klein wählen und movement_blocked im Debugging prüfen.

### field.click_type

left, right oder middle sendet die entsprechende Maustaste; none führt nur die Mausbewegung aus.

### field.click_type.option.left

Linke Maustaste.

### field.click_type.option.middle

Mittlere Maustaste.

### field.click_type.option.none

Keine Maustaste senden; nur die Bewegung ausführen.

### field.click_type.option.right

Rechte Maustaste.

### field.double_click

Sendet einen Doppelklick statt eines Einzelklicks, sofern eine Maustaste gewählt ist.

### field.movement_factor_x

Skalierung der horizontalen Zielabweichung für die relative Mausbewegung. Zunächst mit kleinen Faktoren testen.

### field.movement_factor_y

Skalierung der vertikalen Zielabweichung für die relative Mausbewegung. X- und Y-Achse können unterschiedlich reagieren.

### field.movement_threshold_px

Inklusive Toleranz in Pixeln auf beiden Achsen für wiederholte ganzzahlige Mausbewegungen. Standard 10; 0 unterdrückt nur exakt gleiche Bewegungen. Nur eine erfolgreich gesendete Bewegung aktualisiert die Vergleichsbasis.

### field.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### field.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### field.origin

Referenzursprung für die relative Zielbewegung. Die gewählte Koordinatenquelle und ihr Koordinatenraum müssen zum Ziel passen.

### field.points_source

Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.

### field.timeout_ms

Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.

### input.origin

Referenzursprung der Bewegung. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.points

Punkt-/Erkennungsergebnis. Fehlende erforderliche Werte führen zum Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle Zielpunkt und Ursprung für eine relative Mausbewegung mit getrennten Faktoren für X und Y. Die Bewegungstoleranz unterdrückt wiederholte nahezu identische ganzzahlige Bewegungen. Ein bekannter Quell-Frame, der nicht neuer als die letzte Eingabe ist, wird ebenfalls unterdrückt. movement_blocked unterscheidet diese Sperre von einer erfolgreich gesendeten Bewegung.

### result.click_on_point_3d.applied_delta_x

Tatsächlich angewendeter ganzzahliger horizontaler Mausversatz nach Skalierung und Rundung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.applied_delta_y

Tatsächlich angewendeter ganzzahliger vertikaler Mausversatz nach Skalierung und Rundung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.delta_x

Horizontale Abweichung beziehungsweise Bewegungsanteil in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.delta_y

Vertikale Abweichung beziehungsweise Bewegungsanteil in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.movement_blocked

Ob die 3D-Eingabe wegen Bewegungstoleranz oder nicht neuerem Quell-Frame unterdrückt wurde. Es wurde dabei keine neue Bewegung und kein Klick gesendet. Einzelwert dieses Ergebnisses.

### result.click_on_point_3d.movement_factor_x

Horizontaler Skalierungsfaktor, der für diese Eingabe verwendet wurde. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.movement_factor_y

Vertikaler Skalierungsfaktor, der für diese Eingabe verwendet wurde. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.click_type

left, right oder middle sendet die entsprechende Maustaste; none führt nur die Mausbewegung aus.

### schema.settings.double_click

Sendet einen Doppelklick statt eines Einzelklicks, sofern eine Maustaste gewählt ist.

### schema.settings.movement_factor

Zusammengesetzte Bewegungsfaktoren für die relative Maussteuerung. X- und Y-Faktor gehören zu derselben Einstellung.

### schema.settings.movement_factor_x

Skalierung der horizontalen Zielabweichung für die relative Mausbewegung. Zunächst mit kleinen Faktoren testen.

### schema.settings.movement_factor_y

Skalierung der vertikalen Zielabweichung für die relative Mausbewegung. X- und Y-Achse können unterschiedlich reagieren.

### schema.settings.movement_threshold_px

Inklusive Toleranz in Pixeln auf beiden Achsen für wiederholte ganzzahlige Mausbewegungen. Standard 10; 0 unterdrückt nur exakt gleiche Bewegungen. Nur eine erfolgreich gesendete Bewegung aktualisiert die Vergleichsbasis.

### schema.settings.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.origin_coordinate_space

Koordinatenraum des Ursprungs. Bildlokale Werte vor der Verwendung als Desktopkoordinate um den passenden Monitorversatz ergänzen.

### schema.settings.origin_monitor_index

Nullbasierter Monitor, auf den sich der konfigurierte Ursprung bezieht.

### schema.settings.origin_source

Wählt die direkte beziehungsweise referenzierte Herkunft des Bewegungsursprungs.

### schema.settings.origin_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.origin_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.origin_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.origin_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.origin_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.origin_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.origin_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.origin_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.origin_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.origin_x

Horizontale Koordinate des direkt konfigurierten Ursprungs in Pixeln.

### schema.settings.origin_y

Vertikale Koordinate des direkt konfigurierten Ursprungs in Pixeln.

### schema.settings.points_source

Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.

### schema.settings.points_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.points_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.points_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.points_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.points_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.points_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.points_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.points_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.points_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.timeout_ms

Zeitlimit in Millisekunden für den betreffenden Vorgang. Das jeweilige Fehler-/Skip-Verhalten steht im Step-Text; es ist keine allgemeine Job-Gesamtdauer.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "klick_on_point_3d",
  "name": "3D-Ziel anklicken",
  "description": "Bewegt die Maus per FOV-Berechnung auf ein Zielobjekt und klickt es an.",
  "category": "MausTastatur",
  "uiFieldIds": [
    "points_source",
    "origin",
    "click_type",
    "movement_factor_x",
    "movement_factor_y",
    "offset_x",
    "offset_y",
    "timeout_ms",
    "double_click",
    "movement_threshold_px"
  ],
  "fields": [
    {
      "id": "points_source",
      "name": "Punktquelle",
      "descriptor": {
        "Id": "points_source",
        "LabelKey": "Ui.Step.Settings.PointSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "points",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "origin",
      "name": "Ursprung",
      "descriptor": {
        "Id": "origin",
        "LabelKey": "Ui.Step.Settings.Origin",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "monitor_index": 0,
          "x": 0,
          "y": 0,
          "coordinate_space": "monitor_local",
          "point_source": null
        },
        "DescriptionKey": "Ui.Step.Settings.OriginLocalHelp",
        "EditorHint": "screen-point-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": {
          "DefaultToPrimaryMonitorCenter": true,
          "WholeValueInputContractId": "origin"
        },
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "click_type",
      "name": "Maustaste",
      "descriptor": {
        "Id": "click_type",
        "LabelKey": "Ui.Step.Settings.ClickType",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "left",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "left",
            "right",
            "middle",
            "none"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "left",
            "LabelKey": "Enum.MouseClickType.Left",
            "DisplayName": null
          },
          {
            "Value": "right",
            "LabelKey": "Enum.MouseClickType.Right",
            "DisplayName": null
          },
          {
            "Value": "middle",
            "LabelKey": "Enum.MouseClickType.Middle",
            "DisplayName": null
          },
          {
            "Value": "none",
            "LabelKey": "Enum.MouseClickType.None",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "movement_factor_x",
      "name": "Bewegungsfaktor X",
      "descriptor": {
        "Id": "movement_factor_x",
        "LabelKey": "Ui.Step.Settings.MovementFactorX",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 1,
        "DescriptionKey": "Ui.Step.Settings.MovementFactorHelp",
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0.01,
          "Maximum": 100,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "movement_factor_y",
      "name": "Bewegungsfaktor Y",
      "descriptor": {
        "Id": "movement_factor_y",
        "LabelKey": "Ui.Step.Settings.MovementFactorY",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 1,
        "DescriptionKey": "Ui.Step.Settings.MovementFactorHelp",
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0.01,
          "Maximum": 100,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_x",
      "name": "Versatz X (px)",
      "descriptor": {
        "Id": "offset_x",
        "LabelKey": "Ui.Step.Settings.XOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 5,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_y",
      "name": "Versatz Y (px)",
      "descriptor": {
        "Id": "offset_y",
        "LabelKey": "Ui.Step.Settings.YOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 6,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "timeout_ms",
      "name": "Zeitlimit (ms)",
      "descriptor": {
        "Id": "timeout_ms",
        "LabelKey": "Ui.Step.Settings.TimeoutMs",
        "ValueKind": "Duration",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 7,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "double_click",
      "name": "Doppelklick",
      "descriptor": {
        "Id": "double_click",
        "LabelKey": "Ui.Step.Settings.DoubleClick",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 8,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "movement_threshold_px",
      "name": "Bewegungstoleranz (px)",
      "descriptor": {
        "Id": "movement_threshold_px",
        "LabelKey": "Ui.Step.Settings.MovementThresholdPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 10,
        "DescriptionKey": "Ui.Step.Settings.MovementThresholdHelp",
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": 2147483647,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 9,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "KlickOnPoint3DSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.click_type",
      "name": "click_type",
      "type": "String",
      "options": [],
      "defaultValue": "left"
    },
    {
      "id": "settings.double_click",
      "name": "double_click",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.movement_factor",
      "name": "movement_factor",
      "type": "Double",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.movement_factor_x",
      "name": "movement_factor_x",
      "type": "Double",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.movement_factor_y",
      "name": "movement_factor_y",
      "type": "Double",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.movement_threshold_px",
      "name": "movement_threshold_px",
      "type": "Int32",
      "options": [],
      "defaultValue": 10
    },
    {
      "id": "settings.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.origin_coordinate_space",
      "name": "origin_coordinate_space",
      "type": "String",
      "options": [],
      "defaultValue": "monitor_local"
    },
    {
      "id": "settings.origin_monitor_index",
      "name": "origin_monitor_index",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.origin_source",
      "name": "origin_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.origin_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.origin_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.origin_x",
      "name": "origin_x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.origin_y",
      "name": "origin_y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.points_source",
      "name": "points_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.points_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.points_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.timeout_ms",
      "name": "timeout_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    }
  ],
  "inputs": [
    {
      "Key": "points",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "local_value"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "origin",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "KlickOnPoint3DResult",
    "DisplayName": "KlickOnPoint3DResult",
    "Properties": [
      {
        "Name": "DeltaX",
        "DisplayName": "Delta X",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.delta_x",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.delta_x"
      },
      {
        "Name": "DeltaY",
        "DisplayName": "Delta Y",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.delta_y",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.delta_y"
      },
      {
        "Name": "MovementFactorX",
        "DisplayName": "Movement Factor X",
        "DataType": "Number",
        "Description": "Number, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.movement_factor_x",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.movement_factor_x"
      },
      {
        "Name": "MovementFactorY",
        "DisplayName": "Movement Factor Y",
        "DataType": "Number",
        "Description": "Number, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.movement_factor_y",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.movement_factor_y"
      },
      {
        "Name": "AppliedDeltaX",
        "DisplayName": "Applied Delta X",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.applied_delta_x",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.applied_delta_x"
      },
      {
        "Name": "AppliedDeltaY",
        "DisplayName": "Applied Delta Y",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.applied_delta_y",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.applied_delta_y"
      },
      {
        "Name": "MovementBlocked",
        "DisplayName": "Movement Blocked",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.movement_blocked",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.movement_blocked"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "DeltaX",
        "DisplayName": "Delta X",
        "Property": {
          "Name": "DeltaX",
          "DisplayName": "Delta X",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.delta_x",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.delta_x"
        },
        "Children": []
      },
      {
        "Segment": "DeltaY",
        "DisplayName": "Delta Y",
        "Property": {
          "Name": "DeltaY",
          "DisplayName": "Delta Y",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.delta_y",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.delta_y"
        },
        "Children": []
      },
      {
        "Segment": "MovementFactorX",
        "DisplayName": "Movement Factor X",
        "Property": {
          "Name": "MovementFactorX",
          "DisplayName": "Movement Factor X",
          "DataType": "Number",
          "Description": "Number, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.movement_factor_x",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.movement_factor_x"
        },
        "Children": []
      },
      {
        "Segment": "MovementFactorY",
        "DisplayName": "Movement Factor Y",
        "Property": {
          "Name": "MovementFactorY",
          "DisplayName": "Movement Factor Y",
          "DataType": "Number",
          "Description": "Number, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.movement_factor_y",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.movement_factor_y"
        },
        "Children": []
      },
      {
        "Segment": "AppliedDeltaX",
        "DisplayName": "Applied Delta X",
        "Property": {
          "Name": "AppliedDeltaX",
          "DisplayName": "Applied Delta X",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.applied_delta_x",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.applied_delta_x"
        },
        "Children": []
      },
      {
        "Segment": "AppliedDeltaY",
        "DisplayName": "Applied Delta Y",
        "Property": {
          "Name": "AppliedDeltaY",
          "DisplayName": "Applied Delta Y",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.applied_delta_y",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.applied_delta_y"
        },
        "Children": []
      },
      {
        "Segment": "MovementBlocked",
        "DisplayName": "Movement Blocked",
        "Property": {
          "Name": "MovementBlocked",
          "DisplayName": "Movement Blocked",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.movement_blocked",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.movement_blocked"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "klick_on_point_3d",
  "settings": {
    "movement_threshold_px": 10,
    "double_click": false,
    "click_type": "left",
    "timeout_ms": 0,
    "origin_x": 0,
    "origin_y": 0,
    "origin_source": {
      "provider_id": "",
      "source_id": ""
    },
    "origin_monitor_index": 0,
    "origin_coordinate_space": "monitor_local",
    "movement_factor_x": null,
    "movement_factor_y": null,
    "offset_x": 0,
    "offset_y": 0,
    "points_source": {
      "provider_id": "",
      "source_id": ""
    }
  },
  "id": "23b322d2-328c-1eab-64b5-9a027aaa036d",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Makro ausführen

ID: makro_execution
Website: /doku/steps/makro_execution/

Abbildung: [Ein Makro-Step verweist auf das Beispielmakro Notiz eingeben; im Beispieljob ist dieser Step deaktiviert. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-makro.detail.png)

1. Makro: Im Editor ein vorhandenes Makro wählen; seine Eingaben wirken auf den aktiven Desktop und das aktive Fenster.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Der Unterlagenablauf zeigt das optionale Makro „Notiz eingeben“. Fokussiere einen leeren Editor und teste das Makro zuerst separat; der illustrierte Job-Step ist anfangs deaktiviert.

### field.macro

Im Editor ein vorhandenes Makro wählen; seine Eingaben wirken auf den aktiven Desktop und das aktive Fenster.

### purpose

Wähle ein gespeichertes Makro per ID und führe dessen Befehle im aktuellen Desktop-Kontext aus. Es verwendet das gerade aktive Fenster. Stelle deshalb vor dem Makro über Prozess- und Fenster-Steps sicher, dass die Eingabe im vorgesehenen Programm landet.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.makro_id

GUID des auszuführenden Makros. Beim Duplizieren eines Makros die Referenzen auf dessen neue ID anpassen.

### schema.settings.makro_name

Anzeigename der Makroreferenz; die stabile ID bestimmt das Ziel.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "makro_execution",
  "name": "Makro ausführen",
  "description": "Führt ein zuvor aufgezeichnetes Makro aus.",
  "category": "MausTastatur",
  "uiFieldIds": [
    "macro"
  ],
  "fields": [
    {
      "id": "macro",
      "name": "Makro",
      "descriptor": {
        "Id": "macro",
        "LabelKey": "Ui.Step.Settings.Macro",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "macro-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "MakroExecutionSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.makro_id",
      "name": "makro_id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.makro_name",
      "name": "makro_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "MakroExecutionResult",
    "DisplayName": "MakroExecutionResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "makro_execution",
  "settings": {
    "makro_name": "",
    "makro_id": null
  },
  "id": "9fd9f44c-6450-a88e-c624-8a1b7e809975",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Text erkennen

ID: ocr
Website: /doku/steps/ocr/

Abbildung: [Detailansicht: Text erkennen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-ocr.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. Sprache: OCR-Sprachdaten: deu für Deutsch, eng für Englisch oder deu+eng für beide. Die Daten müssen installiert sein.
3. Textanordnung: Erwartete Textstruktur der OCR, zum Beispiel TextBlock oder SingleWord. Eine passende Struktur verbessert die Auswertung des gewählten Bildbereichs.
4. Bildbereich (ROI): Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Ein Bildschirmbild mit deutschem Text aufnehmen; Sprache deu und TextBlock wählen; text in „Text auf Desktop anzeigen“ verwenden.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.languages

OCR-Sprachdaten: deu für Deutsch, eng für Englisch oder deu+eng für beide. Die Daten müssen installiert sein.

### field.languages.option.deu

Deutsche OCR-Sprachdaten verwenden.

### field.languages.option.deu+eng

Deutsche und englische OCR-Sprachdaten gemeinsam verwenden.

### field.languages.option.eng

Englische OCR-Sprachdaten verwenden.

### field.page_layout

Erwartete Textstruktur der OCR, zum Beispiel TextBlock oder SingleWord. Eine passende Struktur verbessert die Auswertung des gewählten Bildbereichs.

### field.page_layout.option.Automatic

Überlässt Kamera-/OCR-Moduswahl dem zuständigen Backend gemäß dieser Einstellung.

### field.page_layout.option.SingleWord

Ein einzelnes Wort erwarten.

### field.page_layout.option.SparseText

Verstreute kurze Textbereiche im Bild suchen.

### field.page_layout.option.TextBlock

Zusammenhängenden Textblock erwarten.

### field.page_layout.option.TextLine

Eine einzelne Textzeile erwarten.

### field.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### input.dynamicRoi

dynamischer Suchbereich. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle Bildquelle, Sprache und Textanordnung. Die Erkennung liefert den gesamten Text, Zeilen und Wörter einschließlich Positionen und Konfidenzen. Verwende beispielsweise text für eine Anzeige und found als Bedingung. Die gewünschten Sprachdaten müssen installiert sein.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.line_count

Anzahl erkannter Textzeilen der OCR-Auswertung. Einzelwert dieses Ergebnisses.

### result.lines.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.lines.position

Position des Punktes/Fensters im Ergebnis-Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.minimum_confidence

Für diese Berechnung verwendete Mindestkonfidenz als Anteil von 0 bis 1. Einzelwert dieses Ergebnisses.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### result.word_count

Anzahl erkannter Wörter im betrachteten Textbereich. Einzelwert dieses Ergebnisses.

### result.words.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.words.line_position

Position beziehungsweise Zuordnung des OCR-Treffers innerhalb seiner Zeile. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.position

Position des Punktes/Fensters im Ergebnis-Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.dynamic_roi_source

Kompatible dynamische Rechteckquelle. Eine spätere DynamicRoi-Quelle darf Feedback für den nächsten Durchlauf liefern; dies ist eine besondere Ausnahme von normalen Vorwärtsreferenzen.

### schema.settings.dynamic_roi_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.dynamic_roi_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.dynamic_roi_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.dynamic_roi_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.dynamic_roi_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.dynamic_roi_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.dynamic_roi_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.dynamic_roi_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.dynamic_roi_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.enable_roi

Aktiviert den direkt konfigurierten Suchbereich. Ohne Aktivierung wird der Standardbereich der Quelle verwendet, sofern keine dynamische ROI-Quelle greift.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.languages

OCR-Sprachdaten: deu für Deutsch, eng für Englisch oder deu+eng für beide. Die Daten müssen installiert sein.

### schema.settings.page_layout

Erwartete Textstruktur der OCR, zum Beispiel TextBlock oder SingleWord. Eine passende Struktur verbessert die Auswertung des gewählten Bildbereichs.

### schema.settings.page_layout.option.Automatic

Überlässt Kamera-/OCR-Moduswahl dem zuständigen Backend gemäß dieser Einstellung.

### schema.settings.page_layout.option.SingleWord

Ein einzelnes Wort erwarten.

### schema.settings.page_layout.option.SparseText

Verstreute kurze Textbereiche im Bild suchen.

### schema.settings.page_layout.option.TextBlock

Zusammenhängenden Textblock erwarten.

### schema.settings.page_layout.option.TextLine

Eine einzelne Textzeile erwarten.

### schema.settings.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### schema.settings.roi.Empty

Vom serialisierten Geometrieobjekt angebotener Leerzustand. Kein eigener ROI-Schalter: den Suchbereich mit enable_roi beziehungsweise roi.enabled und den Koordinaten konfigurieren; dieses abgeleitete Mitglied nicht als Eingabequelle verwenden.

### schema.settings.roi.height

Höhe des Rechtecks oder Bildformats in Pixeln. Negative Größen sind kein gültiger Suchbereich.

### schema.settings.roi.width

Breite des Rechtecks oder Bildformats in Pixeln. Zusammen mit Höhe und Ursprung ergibt sie die räumliche Größe.

### schema.settings.roi.x

Horizontale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate X = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### schema.settings.roi.y

Vertikale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate Y = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ocr",
  "name": "Text erkennen",
  "description": "Erkennt Text in einer Bildquelle und stellt Text sowie Wortpositionen bereit.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "image_source",
    "languages",
    "page_layout",
    "roi"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "languages",
      "name": "Sprache",
      "descriptor": {
        "Id": "languages",
        "LabelKey": "Ui.Step.Settings.OcrLanguages",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "deu+eng",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "deu",
            "eng",
            "deu+eng"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "deu",
            "LabelKey": "Enum.OcrLanguage.deu",
            "DisplayName": null
          },
          {
            "Value": "eng",
            "LabelKey": "Enum.OcrLanguage.eng",
            "DisplayName": null
          },
          {
            "Value": "deu+eng",
            "LabelKey": "Enum.OcrLanguage.deu+eng",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "page_layout",
      "name": "Textanordnung",
      "descriptor": {
        "Id": "page_layout",
        "LabelKey": "Ui.Step.Settings.OcrLayout",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Automatic",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Automatic",
            "TextBlock",
            "TextLine",
            "SingleWord",
            "SparseText"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "Automatic",
            "LabelKey": "Enum.OcrPageLayout.Automatic",
            "DisplayName": null
          },
          {
            "Value": "TextBlock",
            "LabelKey": "Enum.OcrPageLayout.TextBlock",
            "DisplayName": null
          },
          {
            "Value": "TextLine",
            "LabelKey": "Enum.OcrPageLayout.TextLine",
            "DisplayName": null
          },
          {
            "Value": "SingleWord",
            "LabelKey": "Enum.OcrPageLayout.SingleWord",
            "DisplayName": null
          },
          {
            "Value": "SparseText",
            "LabelKey": "Enum.OcrPageLayout.SparseText",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "roi",
      "name": "Bildbereich (ROI)",
      "descriptor": {
        "Id": "roi",
        "LabelKey": "Ui.Step.Settings.ROI",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "enabled": false,
          "x": 0,
          "y": 0,
          "width": 0,
          "height": 0,
          "dynamic_source": null
        },
        "DescriptionKey": null,
        "EditorHint": "roi-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": {
          "DynamicInputContractId": "dynamicRoi"
        },
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "OcrSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source",
      "name": "dynamic_roi_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.enable_roi",
      "name": "enable_roi",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.languages",
      "name": "languages",
      "type": "String",
      "options": [],
      "defaultValue": "deu+eng"
    },
    {
      "id": "settings.page_layout",
      "name": "page_layout",
      "type": "OcrPageLayout",
      "options": [
        "Automatic",
        "TextBlock",
        "TextLine",
        "SingleWord",
        "SparseText"
      ],
      "defaultValue": "Automatic"
    },
    {
      "id": "settings.roi",
      "name": "roi",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.Empty",
      "name": "Empty",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.height",
      "name": "height",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.width",
      "name": "width",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.x",
      "name": "x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.y",
      "name": "y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "dynamicRoi",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "OcrResult",
    "DisplayName": "OcrResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "MinimumConfidence",
        "DisplayName": "Minimum Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "minimum_confidence",
        "EnumDisplayNames": null,
        "StableId": "minimum_confidence"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "LineCount",
        "DisplayName": "Line Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "line_count",
        "EnumDisplayNames": null,
        "StableId": "line_count"
      },
      {
        "Name": "WordCount",
        "DisplayName": "Word Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "word_count",
        "EnumDisplayNames": null,
        "StableId": "word_count"
      },
      {
        "Name": "Lines.Count",
        "DisplayName": "Lines / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.count",
        "EnumDisplayNames": null,
        "StableId": "lines.count"
      },
      {
        "Name": "Lines[].Text",
        "DisplayName": "Lines[] / Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.text",
        "EnumDisplayNames": null,
        "StableId": "lines.text"
      },
      {
        "Name": "Lines[].Confidence",
        "DisplayName": "Lines[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.confidence",
        "EnumDisplayNames": null,
        "StableId": "lines.confidence"
      },
      {
        "Name": "Lines[].BoundingBox",
        "DisplayName": "Lines[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box"
      },
      {
        "Name": "Lines[].BoundingBox.X",
        "DisplayName": "Lines[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.x"
      },
      {
        "Name": "Lines[].BoundingBox.Y",
        "DisplayName": "Lines[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.y"
      },
      {
        "Name": "Lines[].BoundingBox.Width",
        "DisplayName": "Lines[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.width"
      },
      {
        "Name": "Lines[].BoundingBox.Height",
        "DisplayName": "Lines[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.height"
      },
      {
        "Name": "Lines[].BoundingBox.Left",
        "DisplayName": "Lines[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.left"
      },
      {
        "Name": "Lines[].BoundingBox.Top",
        "DisplayName": "Lines[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.top"
      },
      {
        "Name": "Lines[].BoundingBox.Right",
        "DisplayName": "Lines[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.right"
      },
      {
        "Name": "Lines[].BoundingBox.Bottom",
        "DisplayName": "Lines[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.bottom"
      },
      {
        "Name": "Lines[].BoundingBox.IsEmpty",
        "DisplayName": "Lines[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.is_empty"
      },
      {
        "Name": "Lines[].BoundingBox.Location",
        "DisplayName": "Lines[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.location"
      },
      {
        "Name": "Lines[].BoundingBox.Location.X",
        "DisplayName": "Lines[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.location.x"
      },
      {
        "Name": "Lines[].BoundingBox.Location.Y",
        "DisplayName": "Lines[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.location.y"
      },
      {
        "Name": "Lines[].BoundingBox.Center",
        "DisplayName": "Lines[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.center"
      },
      {
        "Name": "Lines[].BoundingBox.Center.X",
        "DisplayName": "Lines[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.center.x"
      },
      {
        "Name": "Lines[].BoundingBox.Center.Y",
        "DisplayName": "Lines[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.center.y"
      },
      {
        "Name": "Lines[].Position",
        "DisplayName": "Lines[] / Position",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.position",
        "EnumDisplayNames": null,
        "StableId": "lines.position"
      },
      {
        "Name": "Words.Count",
        "DisplayName": "Words / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.count",
        "EnumDisplayNames": null,
        "StableId": "words.count"
      },
      {
        "Name": "Words[].Text",
        "DisplayName": "Words[] / Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.text",
        "EnumDisplayNames": null,
        "StableId": "words.text"
      },
      {
        "Name": "Words[].Confidence",
        "DisplayName": "Words[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.confidence",
        "EnumDisplayNames": null,
        "StableId": "words.confidence"
      },
      {
        "Name": "Words[].BoundingBox",
        "DisplayName": "Words[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box"
      },
      {
        "Name": "Words[].BoundingBox.X",
        "DisplayName": "Words[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.x"
      },
      {
        "Name": "Words[].BoundingBox.Y",
        "DisplayName": "Words[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.y"
      },
      {
        "Name": "Words[].BoundingBox.Width",
        "DisplayName": "Words[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.width"
      },
      {
        "Name": "Words[].BoundingBox.Height",
        "DisplayName": "Words[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.height"
      },
      {
        "Name": "Words[].BoundingBox.Left",
        "DisplayName": "Words[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.left"
      },
      {
        "Name": "Words[].BoundingBox.Top",
        "DisplayName": "Words[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.top"
      },
      {
        "Name": "Words[].BoundingBox.Right",
        "DisplayName": "Words[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.right"
      },
      {
        "Name": "Words[].BoundingBox.Bottom",
        "DisplayName": "Words[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.bottom"
      },
      {
        "Name": "Words[].BoundingBox.IsEmpty",
        "DisplayName": "Words[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.is_empty"
      },
      {
        "Name": "Words[].BoundingBox.Location",
        "DisplayName": "Words[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.location"
      },
      {
        "Name": "Words[].BoundingBox.Location.X",
        "DisplayName": "Words[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.location.x"
      },
      {
        "Name": "Words[].BoundingBox.Location.Y",
        "DisplayName": "Words[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.location.y"
      },
      {
        "Name": "Words[].BoundingBox.Center",
        "DisplayName": "Words[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.center"
      },
      {
        "Name": "Words[].BoundingBox.Center.X",
        "DisplayName": "Words[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.center.x"
      },
      {
        "Name": "Words[].BoundingBox.Center.Y",
        "DisplayName": "Words[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.center.y"
      },
      {
        "Name": "Words[].Position",
        "DisplayName": "Words[] / Position",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.position",
        "EnumDisplayNames": null,
        "StableId": "words.position"
      },
      {
        "Name": "Words[].LinePosition",
        "DisplayName": "Words[] / Line Position",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.line_position",
        "EnumDisplayNames": null,
        "StableId": "words.line_position"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "MinimumConfidence",
        "DisplayName": "Minimum Confidence",
        "Property": {
          "Name": "MinimumConfidence",
          "DisplayName": "Minimum Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "minimum_confidence",
          "EnumDisplayNames": null,
          "StableId": "minimum_confidence"
        },
        "Children": []
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "LineCount",
        "DisplayName": "Line Count",
        "Property": {
          "Name": "LineCount",
          "DisplayName": "Line Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "line_count",
          "EnumDisplayNames": null,
          "StableId": "line_count"
        },
        "Children": []
      },
      {
        "Segment": "WordCount",
        "DisplayName": "Word Count",
        "Property": {
          "Name": "WordCount",
          "DisplayName": "Word Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "word_count",
          "EnumDisplayNames": null,
          "StableId": "word_count"
        },
        "Children": []
      },
      {
        "Segment": "Lines",
        "DisplayName": "Lines",
        "Property": null,
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Lines.Count",
              "DisplayName": "Lines / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.count",
              "EnumDisplayNames": null,
              "StableId": "lines.count"
            },
            "Children": []
          },
          {
            "Segment": "Text",
            "DisplayName": "Text",
            "Property": {
              "Name": "Lines[].Text",
              "DisplayName": "Lines[] / Text",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.text",
              "EnumDisplayNames": null,
              "StableId": "lines.text"
            },
            "Children": []
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "Lines[].Confidence",
              "DisplayName": "Lines[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.confidence",
              "EnumDisplayNames": null,
              "StableId": "lines.confidence"
            },
            "Children": []
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "Lines[].BoundingBox",
              "DisplayName": "Lines[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "lines.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Lines[].BoundingBox.X",
                  "DisplayName": "Lines[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Lines[].BoundingBox.Y",
                  "DisplayName": "Lines[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "Lines[].BoundingBox.Width",
                  "DisplayName": "Lines[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "Lines[].BoundingBox.Height",
                  "DisplayName": "Lines[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "Lines[].BoundingBox.Left",
                  "DisplayName": "Lines[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "Lines[].BoundingBox.Top",
                  "DisplayName": "Lines[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "Lines[].BoundingBox.Right",
                  "DisplayName": "Lines[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "Lines[].BoundingBox.Bottom",
                  "DisplayName": "Lines[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "Lines[].BoundingBox.IsEmpty",
                  "DisplayName": "Lines[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "Lines[].BoundingBox.Location",
                  "DisplayName": "Lines[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Location.X",
                      "DisplayName": "Lines[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Location.Y",
                      "DisplayName": "Lines[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "Lines[].BoundingBox.Center",
                  "DisplayName": "Lines[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Center.X",
                      "DisplayName": "Lines[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Center.Y",
                      "DisplayName": "Lines[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Position",
            "DisplayName": "Position",
            "Property": {
              "Name": "Lines[].Position",
              "DisplayName": "Lines[] / Position",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.position",
              "EnumDisplayNames": null,
              "StableId": "lines.position"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Words",
        "DisplayName": "Words",
        "Property": null,
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Words.Count",
              "DisplayName": "Words / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.count",
              "EnumDisplayNames": null,
              "StableId": "words.count"
            },
            "Children": []
          },
          {
            "Segment": "Text",
            "DisplayName": "Text",
            "Property": {
              "Name": "Words[].Text",
              "DisplayName": "Words[] / Text",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.text",
              "EnumDisplayNames": null,
              "StableId": "words.text"
            },
            "Children": []
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "Words[].Confidence",
              "DisplayName": "Words[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.confidence",
              "EnumDisplayNames": null,
              "StableId": "words.confidence"
            },
            "Children": []
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "Words[].BoundingBox",
              "DisplayName": "Words[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "words.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Words[].BoundingBox.X",
                  "DisplayName": "Words[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Words[].BoundingBox.Y",
                  "DisplayName": "Words[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "Words[].BoundingBox.Width",
                  "DisplayName": "Words[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "Words[].BoundingBox.Height",
                  "DisplayName": "Words[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "Words[].BoundingBox.Left",
                  "DisplayName": "Words[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "Words[].BoundingBox.Top",
                  "DisplayName": "Words[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "Words[].BoundingBox.Right",
                  "DisplayName": "Words[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "Words[].BoundingBox.Bottom",
                  "DisplayName": "Words[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "Words[].BoundingBox.IsEmpty",
                  "DisplayName": "Words[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "Words[].BoundingBox.Location",
                  "DisplayName": "Words[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Words[].BoundingBox.Location.X",
                      "DisplayName": "Words[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Words[].BoundingBox.Location.Y",
                      "DisplayName": "Words[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "Words[].BoundingBox.Center",
                  "DisplayName": "Words[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Words[].BoundingBox.Center.X",
                      "DisplayName": "Words[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Words[].BoundingBox.Center.Y",
                      "DisplayName": "Words[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Position",
            "DisplayName": "Position",
            "Property": {
              "Name": "Words[].Position",
              "DisplayName": "Words[] / Position",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.position",
              "EnumDisplayNames": null,
              "StableId": "words.position"
            },
            "Children": []
          },
          {
            "Segment": "LinePosition",
            "DisplayName": "Line Position",
            "Property": {
              "Name": "Words[].LinePosition",
              "DisplayName": "Words[] / Line Position",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.line_position",
              "EnumDisplayNames": null,
              "StableId": "words.line_position"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "ocr",
  "settings": {
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "languages": "deu+eng",
    "page_layout": "Automatic",
    "roi": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "enable_roi": false,
    "dynamic_roi_source": {
      "provider_id": "",
      "source_id": ""
    }
  },
  "id": "4bfa512d-7ade-7be2-0978-97fc17f2f70d",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Punkte vergleichen

ID: point_comparison
Website: /doku/steps/point_comparison/

Abbildung: [Detailansicht: Punkte vergleichen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-point-comparison.detail.png)

1. Modus: Offset vergleicht Punkte mit einer Referenz und erlaubten X-/Y-Abweichungen. Expression wertet die konfigurierten Achsenbedingungen aus. Nur die Einstellungen des gewählten Modus sind aktiv.
2. Erforderliche Treffer: Legt fest, ob alle geprüften Punkte/Bedingungen oder wenigstens einer/eine die Prüfung bestehen müssen.
3. ZU PRÜFENDE PUNKTE: Füge die zu prüfenden Punkte hinzu. Wähle pro Eintrag eine manuelle X-/Y-Koordinate oder die kompatible Punktquelle eines vorherigen Steps. Die Auswahl bestimmt, welche Unterfelder erscheinen.
4. Referenzpunkt: 
5. Versatz X (px): Erlaubte horizontale Abweichung vom Referenzpunkt in Pixeln. Mit 10 besteht ein Punkt die X-Prüfung, wenn seine X-Koordinate höchstens 10 px von der Referenz abweicht.
6. Versatz Y (px): Erlaubte vertikale Abweichung vom Referenzpunkt in Pixeln. Mit 10 besteht ein Punkt die Y-Prüfung, wenn seine Y-Koordinate höchstens 10 px von der Referenz abweicht.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Prüfe, ob eine Erkennung in X höchstens zehn Pixel vom Referenzpunkt abweicht, bevor ein nachfolgender Step ausgeführt wird.

### field.combine_mode

Verknüpft Achsenbedingungen mit And (UND) oder Or (ODER).

### field.combine_mode.option.And

Bedingungen mit logischem UND verknüpfen.

### field.combine_mode.option.Or

Bedingungen mit logischem ODER verknüpfen.

### field.expressions

Liste von Achsenbedingungen. Jede Bedingung beschreibt Achse, Operator und Vergleichsausdruck.

### field.match_requirement

Legt fest, ob alle geprüften Punkte/Bedingungen oder wenigstens einer/eine die Prüfung bestehen müssen.

### field.match_requirement.option.All

Alle betrachteten Bedingungen beziehungsweise Punkte müssen passen.

### field.match_requirement.option.Any

Mindestens eine betrachtete Bedingung beziehungsweise ein Punkt muss passen.

### field.mode

Offset vergleicht Punkte mit einer Referenz und erlaubten X-/Y-Abweichungen. Expression wertet die konfigurierten Achsenbedingungen aus. Nur die Einstellungen des gewählten Modus sind aktiv.

### field.mode.option.Expression

Punkte anhand expliziter Achsenbedingungen vergleichen.

### field.mode.option.Offset

Punkte anhand einer Referenzposition und erlaubter Versätze vergleichen.

### field.offset_x

Erlaubte horizontale Abweichung vom Referenzpunkt in Pixeln. Mit 10 besteht ein Punkt die X-Prüfung, wenn seine X-Koordinate höchstens 10 px von der Referenz abweicht.

### field.offset_y

Erlaubte vertikale Abweichung vom Referenzpunkt in Pixeln. Mit 10 besteht ein Punkt die Y-Prüfung, wenn seine Y-Koordinate höchstens 10 px von der Referenz abweicht.

### field.points

Füge die zu prüfenden Punkte hinzu. Wähle pro Eintrag eine manuelle X-/Y-Koordinate oder die kompatible Punktquelle eines vorherigen Steps. Die Auswahl bestimmt, welche Unterfelder erscheinen.

### field.reference_points_source

Typisierte Punktquelle als Referenz für den Punktvergleich.

### field.reference_source

Manual verwendet die direkt angegebenen Referenzkoordinaten; JobResult verwendet reference_points_source.

### field.reference_source.option.JobResult

Verwendet einen kompatiblen Ergebniswert eines Job-Steps.

### field.reference_source.option.Manual

Verwendet die manuell angegebenen Koordinaten.

### field.reference_x

Horizontale Referenzkoordinate für den Offsetvergleich in Pixeln.

### field.reference_y

Vertikale Referenzkoordinate für den Offsetvergleich in Pixeln.

### input.points

Punkt-/Erkennungsergebnis. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Vergleiche eine oder mehrere Punktquellen entweder mit einem Referenzpunkt und erlaubten Versätzen oder mit Achsenbedingungen. „Alle“ und „Mindestens eine“ bestimmen, wie mehrere Prüfungen zusammengefasst werden. Der Vergleich erzeugt ein Ergebnis; er bewegt die Maus nicht.

### result.match_count

Anzahl passender Prozesse oder Merkmalszuordnungen im konkreten Ergebnis; der Ergebnis-Typ bestimmt, was gezählt wird. Einzelwert dieses Ergebnisses.

### result.matches

Einzelne OCR-/Punktvergleichstreffer mit ihren Detailwerten. Der Ergebnis-Typ bestimmt die Elementstruktur. Einzelwert dieses Ergebnisses.

### result.total_count

Gesamtzahl der im konkreten Abfrageergebnis gelieferten Einträge. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.expression_settings

Einstellungen für den Punktvergleich mittels Achsenbedingungen und deren Verknüpfung.

### schema.settings.expression_settings.combine_mode

Verknüpft Achsenbedingungen mit And (UND) oder Or (ODER).

### schema.settings.expression_settings.combine_mode.option.And

Bedingungen mit logischem UND verknüpfen.

### schema.settings.expression_settings.combine_mode.option.Or

Bedingungen mit logischem ODER verknüpfen.

### schema.settings.expression_settings.expressions

Liste von Achsenbedingungen. Jede Bedingung beschreibt Achse, Operator und Vergleichsausdruck.

### schema.settings.expression_settings.expressions.axis

Zu prüfende Koordinatenachse, etwa X oder Y. Die Bedingung bezieht sich auf diese Komponente des Punktes.

### schema.settings.expression_settings.expressions.operator

Vergleichsoperator. Wahrheits-/Leerheitsprüfungen benötigen keinen zusätzlichen Vergleichstext; andere Operatoren verlangen kompatible Werte.

### schema.settings.expression_settings.expressions.operator.option.Equal

Prüft die Achsenbedingung auf Gleichheit.

### schema.settings.expression_settings.expressions.operator.option.GreaterThan

Linker Wert muss größer sein als der rechte Vergleichswert.

### schema.settings.expression_settings.expressions.operator.option.GreaterThanOrEqual

Linker Wert muss größer oder gleich dem Vergleichswert sein.

### schema.settings.expression_settings.expressions.operator.option.LessThan

Linker Wert muss kleiner sein als der rechte Vergleichswert.

### schema.settings.expression_settings.expressions.operator.option.LessThanOrEqual

Linker Wert muss kleiner oder gleich dem Vergleichswert sein.

### schema.settings.expression_settings.expressions.operator.option.NotEqual

Prüft die Achsenbedingung auf Ungleichheit.

### schema.settings.expression_settings.expressions.value

Gespeicherter Literal- oder Vergleichswert. Sein JSON-Typ muss zum angegebenen value_kind und zur Kardinalität passen; Zahlen und Booleans nicht versehentlich als Text speichern.

### schema.settings.match_requirement

Legt fest, ob alle geprüften Punkte/Bedingungen oder wenigstens einer/eine die Prüfung bestehen müssen.

### schema.settings.match_requirement.option.All

Alle betrachteten Bedingungen beziehungsweise Punkte müssen passen.

### schema.settings.match_requirement.option.Any

Mindestens eine betrachtete Bedingung beziehungsweise ein Punkt muss passen.

### schema.settings.mode

Offset vergleicht Punkte mit einer Referenz und erlaubten X-/Y-Abweichungen. Expression wertet die konfigurierten Achsenbedingungen aus. Nur die Einstellungen des gewählten Modus sind aktiv.

### schema.settings.mode.option.Expression

Punkte anhand expliziter Achsenbedingungen vergleichen.

### schema.settings.mode.option.Offset

Punkte anhand einer Referenzposition und erlaubter Versätze vergleichen.

### schema.settings.offset_settings

Einstellungen für den Punktvergleich mit Referenzpunkt und erlaubten Abweichungen.

### schema.settings.offset_settings.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.offset_settings.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.offset_settings.reference_points_source

Typisierte Punktquelle als Referenz für den Punktvergleich.

### schema.settings.offset_settings.reference_points_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.offset_settings.reference_points_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.offset_settings.reference_points_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.offset_settings.reference_points_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.offset_settings.reference_points_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.offset_settings.reference_points_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.offset_settings.reference_points_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.offset_settings.reference_points_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.offset_settings.reference_points_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.offset_settings.reference_source

Manual verwendet die direkt angegebenen Referenzkoordinaten; JobResult verwendet reference_points_source.

### schema.settings.offset_settings.reference_source.option.JobResult

Verwendet einen kompatiblen Ergebniswert eines Job-Steps.

### schema.settings.offset_settings.reference_source.option.Manual

Verwendet die manuell angegebenen Koordinaten.

### schema.settings.offset_settings.reference_x

Horizontale Referenzkoordinate für den Offsetvergleich in Pixeln.

### schema.settings.offset_settings.reference_y

Vertikale Referenzkoordinate für den Offsetvergleich in Pixeln.

### schema.settings.points

Füge die zu prüfenden Punkte hinzu. Wähle pro Eintrag eine manuelle X-/Y-Koordinate oder die kompatible Punktquelle eines vorherigen Steps. Die Auswahl bestimmt, welche Unterfelder erscheinen.

### schema.settings.points.manual_x

Direkt eingetragene horizontale Punktkoordinate in Pixeln.

### schema.settings.points.manual_y

Direkt eingetragene vertikale Punktkoordinate in Pixeln.

### schema.settings.points.points_source

Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.

### schema.settings.points.points_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.points.points_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.points.points_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.points.points_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.points.points_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.points.points_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.points.points_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.points.points_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.points.points_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.points.source

Auswahl zwischen einem direkt angegebenen Wert und einem referenzierten Job-Ergebnis, soweit dieser Konfigurationstyp beide Varianten anbietet.

### schema.settings.points.source.option.JobResult

Verwendet einen kompatiblen Ergebniswert eines Job-Steps.

### schema.settings.points.source.option.Manual

Verwendet die manuell angegebenen Koordinaten.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "point_comparison",
  "name": "Punkte vergleichen",
  "description": "Vergleicht Punkte mit einem Referenzpunkt oder Achsenbedingungen.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "mode",
    "match_requirement",
    "points",
    "reference_source",
    "reference_x",
    "reference_y",
    "reference_points_source",
    "offset_x",
    "offset_y",
    "combine_mode",
    "expressions"
  ],
  "fields": [
    {
      "id": "mode",
      "name": "Modus",
      "descriptor": {
        "Id": "mode",
        "LabelKey": "Ui.Step.Settings.Mode",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Offset",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Offset",
            "Expression"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "Offset",
            "LabelKey": "Ui.Step.Settings.OffsetTolerance",
            "DisplayName": null
          },
          {
            "Value": "Expression",
            "LabelKey": "Ui.Step.Settings.Expression",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "match_requirement",
      "name": "Erforderliche Treffer",
      "descriptor": {
        "Id": "match_requirement",
        "LabelKey": "Ui.Step.Settings.RequiredMatches",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "All",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "All",
            "Any"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "All",
            "LabelKey": "Ui.Step.Settings.AllAND",
            "DisplayName": null
          },
          {
            "Value": "Any",
            "LabelKey": "Ui.Step.Settings.AtLeastOneOR",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "points",
      "name": "ZU PRÜFENDE PUNKTE",
      "descriptor": {
        "Id": "points",
        "LabelKey": "Ui.Step.Settings.PointsToCheck",
        "ValueKind": "Collection",
        "Required": true,
        "DefaultValue": [
          {
            "source": "Manual",
            "manual_x": 0,
            "manual_y": 0,
            "points_source": null
          }
        ],
        "DescriptionKey": null,
        "EditorHint": "point-entry-list",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "points",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "reference_source",
      "name": "Referenzquelle",
      "descriptor": {
        "Id": "reference_source",
        "LabelKey": "Ui.Step.Settings.ReferenceSource",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Manual",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Manual",
            "JobResult"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 3,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Offset",
          "AnyOfValues": null
        },
        "Options": [
          {
            "Value": "Manual",
            "LabelKey": "Ui.Step.Settings.EnterManually",
            "DisplayName": null
          },
          {
            "Value": "JobResult",
            "LabelKey": "Ui.Step.Settings.FromDetectionResult",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "reference_x",
      "name": "X",
      "descriptor": {
        "Id": "reference_x",
        "LabelKey": "Ui.Step.Settings.X",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 4,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Offset",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "reference_y",
      "name": "Y",
      "descriptor": {
        "Id": "reference_y",
        "LabelKey": "Ui.Step.Settings.Y",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 5,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Offset",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "reference_points_source",
      "name": "Punktquelle",
      "descriptor": {
        "Id": "reference_points_source",
        "LabelKey": "Ui.Step.Settings.PointSource",
        "ValueKind": "ResultBinding",
        "Required": false,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 6,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Offset",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": "points",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_x",
      "name": "Versatz X (px)",
      "descriptor": {
        "Id": "offset_x",
        "LabelKey": "Ui.Step.Settings.XOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 10,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 7,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Offset",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_y",
      "name": "Versatz Y (px)",
      "descriptor": {
        "Id": "offset_y",
        "LabelKey": "Ui.Step.Settings.YOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 10,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 8,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Offset",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "combine_mode",
      "name": "Verknüpfung",
      "descriptor": {
        "Id": "combine_mode",
        "LabelKey": "Ui.Step.Settings.CombineWith",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "And",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "And",
            "Or"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 9,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Expression",
          "AnyOfValues": null
        },
        "Options": [
          {
            "Value": "And",
            "LabelKey": "Ui.Step.Settings.ANDAll",
            "DisplayName": null
          },
          {
            "Value": "Or",
            "LabelKey": "Ui.Step.Settings.ORAny",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "expressions",
      "name": "Achsenbedingungen",
      "descriptor": {
        "Id": "expressions",
        "LabelKey": "Ui.Step.Settings.AxisExpressions",
        "ValueKind": "Collection",
        "Required": true,
        "DefaultValue": [
          {
            "axis": "X",
            "operator": "LessThan",
            "value": 0
          }
        ],
        "DescriptionKey": null,
        "EditorHint": "axis-expression-list",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 10,
        "VisibleWhen": {
          "FieldId": "mode",
          "EqualsValue": "Expression",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "PointComparisonSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.expression_settings",
      "name": "expression_settings",
      "type": "ExpressionComparisonSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.expression_settings.combine_mode",
      "name": "combine_mode",
      "type": "ExpressionCombineMode",
      "options": [
        "And",
        "Or"
      ],
      "defaultValue": "And"
    },
    {
      "id": "settings.expression_settings.expressions",
      "name": "expressions",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.expression_settings.expressions.axis",
      "name": "axis",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.expression_settings.expressions.operator",
      "name": "operator",
      "type": "PointAxisOperator",
      "options": [
        "LessThan",
        "LessThanOrEqual",
        "GreaterThan",
        "GreaterThanOrEqual",
        "Equal",
        "NotEqual"
      ],
      "defaultValue": null
    },
    {
      "id": "settings.expression_settings.expressions.value",
      "name": "value",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.match_requirement",
      "name": "match_requirement",
      "type": "PointMatchRequirement",
      "options": [
        "All",
        "Any"
      ],
      "defaultValue": "All"
    },
    {
      "id": "settings.mode",
      "name": "mode",
      "type": "PointComparisonMode",
      "options": [
        "Offset",
        "Expression"
      ],
      "defaultValue": "Offset"
    },
    {
      "id": "settings.offset_settings",
      "name": "offset_settings",
      "type": "OffsetComparisonSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": 10
    },
    {
      "id": "settings.offset_settings.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": 10
    },
    {
      "id": "settings.offset_settings.reference_points_source",
      "name": "reference_points_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_points_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_points_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_points_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_points_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_points_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_points_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.offset_settings.reference_points_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_points_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.offset_settings.reference_points_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.offset_settings.reference_source",
      "name": "reference_source",
      "type": "PointEntrySource",
      "options": [
        "Manual",
        "JobResult"
      ],
      "defaultValue": "Manual"
    },
    {
      "id": "settings.offset_settings.reference_x",
      "name": "reference_x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.offset_settings.reference_y",
      "name": "reference_y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.points",
      "name": "points",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.manual_x",
      "name": "manual_x",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.manual_y",
      "name": "manual_y",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source",
      "name": "points_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.points_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points.source",
      "name": "source",
      "type": "PointEntrySource",
      "options": [
        "Manual",
        "JobResult"
      ],
      "defaultValue": null
    }
  ],
  "inputs": [
    {
      "Key": "points",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "PointComparisonResult",
    "DisplayName": "PointComparisonResult",
    "Properties": [
      {
        "Name": "Matches",
        "DisplayName": "Matches",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "matches",
        "EnumDisplayNames": null,
        "StableId": "matches"
      },
      {
        "Name": "MatchCount",
        "DisplayName": "Match Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "match_count",
        "EnumDisplayNames": null,
        "StableId": "match_count"
      },
      {
        "Name": "TotalCount",
        "DisplayName": "Total Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "total_count",
        "EnumDisplayNames": null,
        "StableId": "total_count"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Matches",
        "DisplayName": "Matches",
        "Property": {
          "Name": "Matches",
          "DisplayName": "Matches",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "matches",
          "EnumDisplayNames": null,
          "StableId": "matches"
        },
        "Children": []
      },
      {
        "Segment": "MatchCount",
        "DisplayName": "Match Count",
        "Property": {
          "Name": "MatchCount",
          "DisplayName": "Match Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "match_count",
          "EnumDisplayNames": null,
          "StableId": "match_count"
        },
        "Children": []
      },
      {
        "Segment": "TotalCount",
        "DisplayName": "Total Count",
        "Property": {
          "Name": "TotalCount",
          "DisplayName": "Total Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "total_count",
          "EnumDisplayNames": null,
          "StableId": "total_count"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "point_comparison",
  "settings": {
    "mode": "Offset",
    "match_requirement": "All",
    "points": [
      {
        "source": "Manual",
        "manual_x": 0,
        "manual_y": 0,
        "points_source": {
          "provider_id": "",
          "source_id": ""
        }
      }
    ],
    "offset_settings": {
      "reference_source": "Manual",
      "reference_x": 0,
      "reference_y": 0,
      "reference_points_source": {
        "provider_id": "",
        "source_id": ""
      },
      "offset_x": 10,
      "offset_y": 10
    },
    "expression_settings": {
      "expressions": [
        {
          "axis": "X",
          "operator": "LessThan",
          "value": 0
        }
      ],
      "combine_mode": "And"
    }
  },
  "id": "e82b1d75-e0de-5ff6-a44a-a5c26f839b7f",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Bewegung vorhersagen

ID: predict_movement
Website: /doku/steps/predict_movement/

Abbildung: [Detailansicht: Bewegung vorhersagen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-predict-movement.detail.png)

1. Punktquelle: Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.
2. Vorhersagemodell: Modell der Zielvorhersage: automatische Auswahl oder das ausdrücklich gewählte lineare, Beschleunigungs- beziehungsweise Kalman-Modell.
3. Mindestkonfidenz (%): Mindestkonfidenz für die Übernahme eines Treffers in ROI/Vorhersage. Erkennungsergebnisse verwenden 0 bis 1; der Editor kann denselben Wert als Prozent darstellen.
4. Mindestanzahl Messwerte: Mindestzahl verwertbarer Messpunkte, bevor eine Vorhersage möglich ist.
5. Spur zurücksetzen ab (px): Pixelabstand, ab dem ein Sprung die bisherige Bewegungsspur zurücksetzt.
6. Maximales Alter der Messwerte (ms): Maximales Alter einer Messung in Millisekunden gegen die aktuelle Uhr. Wiederholtes Lesen desselben eingefrorenen Frames verjüngt sie nicht.
7. Maximale Vorhersagedistanz (px): Maximal zulässige Entfernung der Vorhersage vom gemessenen Punkt in Pixeln.
8. Maximaler Modellfehler (px): Maximal akzeptierter Modellfehler in Pixeln. Eine unzuverlässige Anpassung wird nicht als sichere Vorhersage weitergereicht.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

In einem wiederholten Job mehrere zeitlich frische Erkennungspunkte sammeln und 50 ms in die Zukunft vorhersagen; is_predicted prüfen.

### field.max_fit_error

Maximal akzeptierter Modellfehler in Pixeln. Eine unzuverlässige Anpassung wird nicht als sichere Vorhersage weitergereicht.

### field.max_prediction_distance

Maximal zulässige Entfernung der Vorhersage vom gemessenen Punkt in Pixeln.

### field.max_sample_age_ms

Maximales Alter einer Messung in Millisekunden gegen die aktuelle Uhr. Wiederholtes Lesen desselben eingefrorenen Frames verjüngt sie nicht.

### field.min_samples

Mindestzahl verwertbarer Messpunkte, bevor eine Vorhersage möglich ist.

### field.minimum_confidence

Mindestkonfidenz für die Übernahme eines Treffers in ROI/Vorhersage. Erkennungsergebnisse verwenden 0 bis 1; der Editor kann denselben Wert als Prozent darstellen.

### field.points_source

Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.

### field.prediction_model

Modell der Zielvorhersage: automatische Auswahl oder das ausdrücklich gewählte lineare, Beschleunigungs- beziehungsweise Kalman-Modell.

### field.prediction_model.option.Acceleration

Bewegungsmodell mit Beschleunigung.

### field.prediction_model.option.Automatic

Überlässt die Auswahl des geeigneten Vorhersagemodells dem Backend.

### field.prediction_model.option.Kalman

Kalman-Modell für die Bewegungsschätzung.

### field.prediction_model.option.Linear

Lineares Bewegungsmodell ohne ausdrücklich modellierte Beschleunigung.

### field.prediction_ms

Zeitlicher Vorhersagehorizont in Millisekunden. Größere Horizonte erhöhen typischerweise die Unsicherheit.

### field.reset_distance_threshold

Pixelabstand, ab dem ein Sprung die bisherige Bewegungsspur zurücksetzt.

### field.time_basis

Zeitgrundlage der Bewegungsschätzung. Prüfe die angebotene Quelle und deren Empfangs-/Frame-Zeitstempel statt ungeprüft die Step-Reihenfolge als Messzeit anzunehmen.

### input.points

Punkt-/Erkennungsergebnis. Fehlende erforderliche Werte führen zum Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Sammle Erkennungspunkte und schätze eine zukünftige Position. Mindestkonfidenz, Probenzahl, Alter, Modellfehler und Sprunggrenzen begrenzen die verwendete Spur. Prüfe is_predicted vor der Weiterverwendung; eingefrorene Frames altern gegen die aktuelle Uhr und sind keine neuen Messungen.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.is_predicted

Ob ein Vorhersagemodell genügend geeignete Messwerte für eine gültige Prognose hatte. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.predicted_for_utc

UTC-Zielzeitpunkt, für den die vorhergesagte Position gilt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.max_fit_error

Maximal akzeptierter Modellfehler in Pixeln. Eine unzuverlässige Anpassung wird nicht als sichere Vorhersage weitergereicht.

### schema.settings.max_prediction_distance

Maximal zulässige Entfernung der Vorhersage vom gemessenen Punkt in Pixeln.

### schema.settings.max_sample_age_ms

Maximales Alter einer Messung in Millisekunden gegen die aktuelle Uhr. Wiederholtes Lesen desselben eingefrorenen Frames verjüngt sie nicht.

### schema.settings.min_samples

Mindestzahl verwertbarer Messpunkte, bevor eine Vorhersage möglich ist.

### schema.settings.minimum_confidence

Mindestkonfidenz für die Übernahme eines Treffers in ROI/Vorhersage. Erkennungsergebnisse verwenden 0 bis 1; der Editor kann denselben Wert als Prozent darstellen.

### schema.settings.points_source

Kompatible Punkt-/Erkennungsquelle. Der betreffende Eingabevertrag bestimmt, ob der erste oder alle Listeneinträge verarbeitet werden.

### schema.settings.points_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.points_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.points_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.points_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.points_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.points_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.points_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.points_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.points_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.prediction_model

Modell der Zielvorhersage: automatische Auswahl oder das ausdrücklich gewählte lineare, Beschleunigungs- beziehungsweise Kalman-Modell.

### schema.settings.prediction_ms

Zeitlicher Vorhersagehorizont in Millisekunden. Größere Horizonte erhöhen typischerweise die Unsicherheit.

### schema.settings.reset_distance_threshold

Pixelabstand, ab dem ein Sprung die bisherige Bewegungsspur zurücksetzt.

### schema.settings.time_basis

Zeitgrundlage der Bewegungsschätzung. Prüfe die angebotene Quelle und deren Empfangs-/Frame-Zeitstempel statt ungeprüft die Step-Reihenfolge als Messzeit anzunehmen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "predict_movement",
  "name": "Bewegung vorhersagen",
  "description": "Berechnet aus vorherigen Erkennungspunkten eine vorhergesagte Zielposition.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "points_source",
    "prediction_model",
    "minimum_confidence",
    "min_samples",
    "reset_distance_threshold",
    "max_sample_age_ms",
    "max_prediction_distance",
    "max_fit_error"
  ],
  "fields": [
    {
      "id": "points_source",
      "name": "Punktquelle",
      "descriptor": {
        "Id": "points_source",
        "LabelKey": "Ui.Step.Settings.PointSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "points",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "prediction_model",
      "name": "Vorhersagemodell",
      "descriptor": {
        "Id": "prediction_model",
        "LabelKey": "Ui.Step.Settings.PredictionModel",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Automatic",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Automatic",
            "Linear",
            "Acceleration",
            "Kalman"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "Automatic",
            "LabelKey": "Enum.PredictionModel.Automatic",
            "DisplayName": null
          },
          {
            "Value": "Linear",
            "LabelKey": "Enum.PredictionModel.Linear",
            "DisplayName": null
          },
          {
            "Value": "Acceleration",
            "LabelKey": "Enum.PredictionModel.Acceleration",
            "DisplayName": null
          },
          {
            "Value": "Kalman",
            "LabelKey": "Enum.PredictionModel.Kalman",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "minimum_confidence",
      "name": "Mindestkonfidenz (%)",
      "descriptor": {
        "Id": "minimum_confidence",
        "LabelKey": "Ui.Step.Settings.MinimumConfidencePercent",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 0.15,
        "DescriptionKey": null,
        "EditorHint": "percentage",
        "Constraints": {
          "Minimum": 0,
          "Maximum": 1,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "min_samples",
      "name": "Mindestanzahl Messwerte",
      "descriptor": {
        "Id": "min_samples",
        "LabelKey": "Ui.Step.Settings.MinValues",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 3,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 2,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "reset_distance_threshold",
      "name": "Spur zurücksetzen ab (px)",
      "descriptor": {
        "Id": "reset_distance_threshold",
        "LabelKey": "Ui.Step.Settings.ResetAtDistance",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 250,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "max_sample_age_ms",
      "name": "Maximales Alter der Messwerte (ms)",
      "descriptor": {
        "Id": "max_sample_age_ms",
        "LabelKey": "Ui.Step.Settings.MaxAgeMs",
        "ValueKind": "Duration",
        "Required": false,
        "DefaultValue": 500,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 5,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "max_prediction_distance",
      "name": "Maximale Vorhersagedistanz (px)",
      "descriptor": {
        "Id": "max_prediction_distance",
        "LabelKey": "Ui.Step.Settings.MaxPredictionDistance",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 500,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 6,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "max_fit_error",
      "name": "Maximaler Modellfehler (px)",
      "descriptor": {
        "Id": "max_fit_error",
        "LabelKey": "Ui.Step.Settings.MaxFitError",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 75,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 7,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "prediction_ms",
      "name": "Vorhersage (ms)",
      "descriptor": {
        "Id": "prediction_ms",
        "LabelKey": "Ui.Step.Settings.PredictionMs",
        "ValueKind": "Duration",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 8,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "time_basis",
      "name": "Zeitbasis",
      "descriptor": {
        "Id": "time_basis",
        "LabelKey": "Ui.Step.Settings.TimeBasis",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": "Execution",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 9,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "PredictMovementSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.max_fit_error",
      "name": "max_fit_error",
      "type": "Double",
      "options": [],
      "defaultValue": 75
    },
    {
      "id": "settings.max_prediction_distance",
      "name": "max_prediction_distance",
      "type": "Double",
      "options": [],
      "defaultValue": 500
    },
    {
      "id": "settings.max_sample_age_ms",
      "name": "max_sample_age_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 500
    },
    {
      "id": "settings.minimum_confidence",
      "name": "minimum_confidence",
      "type": "Double",
      "options": [],
      "defaultValue": 0.15
    },
    {
      "id": "settings.min_samples",
      "name": "min_samples",
      "type": "Int32",
      "options": [],
      "defaultValue": 3
    },
    {
      "id": "settings.points_source",
      "name": "points_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.points_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.points_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.points_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.prediction_model",
      "name": "prediction_model",
      "type": "String",
      "options": [],
      "defaultValue": "Automatic"
    },
    {
      "id": "settings.prediction_ms",
      "name": "prediction_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.reset_distance_threshold",
      "name": "reset_distance_threshold",
      "type": "Double",
      "options": [],
      "defaultValue": 250
    },
    {
      "id": "settings.time_basis",
      "name": "time_basis",
      "type": "String",
      "options": [],
      "defaultValue": "Execution"
    }
  ],
  "inputs": [
    {
      "Key": "points",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "PredictMovementResult",
    "DisplayName": "PredictMovementResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "IsPredicted",
        "DisplayName": "Is Predicted",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_predicted",
        "EnumDisplayNames": null,
        "StableId": "is_predicted"
      },
      {
        "Name": "PredictedForUtc",
        "DisplayName": "Predicted For Utc",
        "DataType": "DateTime",
        "Description": "DateTime, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "predicted_for_utc",
        "EnumDisplayNames": null,
        "StableId": "predicted_for_utc"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "IsPredicted",
        "DisplayName": "Is Predicted",
        "Property": {
          "Name": "IsPredicted",
          "DisplayName": "Is Predicted",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_predicted",
          "EnumDisplayNames": null,
          "StableId": "is_predicted"
        },
        "Children": []
      },
      {
        "Segment": "PredictedForUtc",
        "DisplayName": "Predicted For Utc",
        "Property": {
          "Name": "PredictedForUtc",
          "DisplayName": "Predicted For Utc",
          "DataType": "DateTime",
          "Description": "DateTime, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "predicted_for_utc",
          "EnumDisplayNames": null,
          "StableId": "predicted_for_utc"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "predict_movement",
  "settings": {
    "points_source": {
      "provider_id": "",
      "source_id": ""
    },
    "min_samples": 3,
    "prediction_ms": 0,
    "reset_distance_threshold": 250,
    "max_sample_age_ms": 500,
    "prediction_model": "Automatic",
    "time_basis": "Execution",
    "max_prediction_distance": 500,
    "max_fit_error": 75,
    "minimum_confidence": 0.15
  },
  "id": "85d18ddf-cfef-1f36-8b83-b38783c5f34b",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Bild speichern

ID: save_image
Website: /doku/steps/save_image/

Abbildung: [Detailansicht: Bild speichern. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-save-image.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. Speicherpfad: Ordner für die Bild-/Videoausgabe. Er muss auf dem Zielrechner erreichbar und beschreibbar sein.
3. Dateiname: Dateiname der Bild-/Videoausgabe. Wähle ein zur Ausgabe passendes Format und prüfe vorhandene Dateien am Ziel.
4. Einblendungen: Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Eine Bildschirmaufnahme als PNG in C:\DesktopAutomation-Beispiele\Ausgabe speichern; den zurückgegebenen file_path für eine Folgeaktion verwenden.

### field.file_name

Dateiname der Bild-/Videoausgabe. Wähle ein zur Ausgabe passendes Format und prüfe vorhandene Dateien am Ziel.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### field.save_path

Ordner für die Bild-/Videoausgabe. Er muss auf dem Zielrechner erreichbar und beschreibbar sein.

### input.detections

Einblendungsquellen mit Geometrie. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.text

Text beziehungsweise darstellbarer Wert. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle ein Bild, Ausgabeordner und Dateiname. Optional zeichnest du Einblendungen in die gespeicherte Kopie. file_path und saved_at_utc beschreiben die Ausgabe; die Bildquelle selbst bleibt eine Laufzeitressource und wird nicht als Bitmap in die Jobdatei geschrieben.

### result.file_name

Name der erzeugten Datei ohne zwingend den ganzen Verzeichnispfad. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.file_path

Pfad der erzeugten Bild-/Videodatei auf dem ausführenden Rechner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.file_size_bytes

Größe der gespeicherten Datei in Bytes. Einzelwert dieses Ergebnisses.

### result.format

Ausgabeformat der Bild-/Videodatei. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.height

Höhe des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.saved_at_utc

UTC-Zeitpunkt der Speicherung/Finalisierung. Einzelwert dieses Ergebnisses.

### result.width

Breite des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.file_name

Dateiname der Bild-/Videoausgabe. Wähle ein zur Ausgabe passendes Format und prüfe vorhandene Dateien am Ziel.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### schema.settings.overlay.detection_results

Liste referenzierter Erkennungsergebnisse für die Einblendung.

### schema.settings.overlay.detection_results.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.detection_results.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.detection_results.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.detection_results.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.detection_results.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.detection_results.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.detection_results.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.detection_results.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.detection_results.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay.text_results

Liste referenzierter Text-/Anzeige-Werte für die Einblendung.

### schema.settings.overlay.text_results.clear_on_job_end

Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.

### schema.settings.overlay.text_results.desktop_index

Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.

### schema.settings.overlay.text_results.duration_ms

Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.

### schema.settings.overlay.text_results.font_color

Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.

### schema.settings.overlay.text_results.font_size

Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.

### schema.settings.overlay.text_results.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.settings.overlay.text_results.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.opacity

Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.

### schema.settings.overlay.text_results.result

Typisierte Ergebnisreferenz für den betreffenden Wert; Quelle und Ergebnis-ID auswählen und die Ausführungsreihenfolge beachten.

### schema.settings.overlay.text_results.result.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.text_results.result.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.text_results.result.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.text_results.result.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.text_results.result.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.text_results.result.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.text_results.result.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.text_results.result.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.text_results.result.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.save_path

Ordner für die Bild-/Videoausgabe. Er muss auf dem Zielrechner erreichbar und beschreibbar sein.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "save_image",
  "name": "Bild speichern",
  "description": "Speichert die ausgewählte Bildquelle als Bilddatei.",
  "category": "AnzeigenSpeichern",
  "uiFieldIds": [
    "image_source",
    "save_path",
    "file_name",
    "overlay"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "save_path",
      "name": "Speicherpfad",
      "descriptor": {
        "Id": "save_path",
        "LabelKey": "Ui.Step.Settings.SavePath",
        "ValueKind": "DirectoryPath",
        "Required": true,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "directory-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": {
          "SuggestedDirectory": "Pictures",
          "SuggestedSubfolder": "DesktopAutomation"
        },
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "file_name",
      "name": "Dateiname",
      "descriptor": {
        "Id": "file_name",
        "LabelKey": "Ui.Step.Settings.FileName",
        "ValueKind": "Text",
        "Required": true,
        "DefaultValue": "image.png",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "overlay",
      "name": "Einblendungen",
      "descriptor": {
        "Id": "overlay",
        "LabelKey": "Ui.Step.Settings.Overlays",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "detection_results": [],
          "text_results": []
        },
        "DescriptionKey": null,
        "EditorHint": "visual-overlay",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": {
          "DetectionInputContractId": "detections",
          "TextInputContractId": "text",
          "SupportsDesktopPlacement": false
        },
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "SaveImageSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.file_name",
      "name": "file_name",
      "type": "String",
      "options": [],
      "defaultValue": "image.png"
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay",
      "name": "overlay",
      "type": "VisualOverlaySettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results",
      "name": "detection_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results",
      "name": "text_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.clear_on_job_end",
      "name": "clear_on_job_end",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.desktop_index",
      "name": "desktop_index",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.duration_ms",
      "name": "duration_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_color",
      "name": "font_color",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_size",
      "name": "font_size",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.id",
      "name": "id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.opacity",
      "name": "opacity",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result",
      "name": "result",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.save_path",
      "name": "save_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "detections",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "text",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Text",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Boolean",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Integer",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Number",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "DateTime",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Color",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "FilePath",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Enum",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "secret"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "SaveImageResult",
    "DisplayName": "SaveImageResult",
    "Properties": [
      {
        "Name": "FilePath",
        "DisplayName": "File Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "file_path",
        "EnumDisplayNames": null,
        "StableId": "file_path"
      },
      {
        "Name": "FileName",
        "DisplayName": "File Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "file_name",
        "EnumDisplayNames": null,
        "StableId": "file_name"
      },
      {
        "Name": "Format",
        "DisplayName": "Format",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "format",
        "EnumDisplayNames": null,
        "StableId": "format"
      },
      {
        "Name": "Width",
        "DisplayName": "Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "width",
        "EnumDisplayNames": null,
        "StableId": "width"
      },
      {
        "Name": "Height",
        "DisplayName": "Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "height",
        "EnumDisplayNames": null,
        "StableId": "height"
      },
      {
        "Name": "FileSizeBytes",
        "DisplayName": "File Size Bytes",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "file_size_bytes",
        "EnumDisplayNames": null,
        "StableId": "file_size_bytes"
      },
      {
        "Name": "SavedAtUtc",
        "DisplayName": "Saved At Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "saved_at_utc",
        "EnumDisplayNames": null,
        "StableId": "saved_at_utc"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "FilePath",
        "DisplayName": "File Path",
        "Property": {
          "Name": "FilePath",
          "DisplayName": "File Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "file_path",
          "EnumDisplayNames": null,
          "StableId": "file_path"
        },
        "Children": []
      },
      {
        "Segment": "FileName",
        "DisplayName": "File Name",
        "Property": {
          "Name": "FileName",
          "DisplayName": "File Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "file_name",
          "EnumDisplayNames": null,
          "StableId": "file_name"
        },
        "Children": []
      },
      {
        "Segment": "Format",
        "DisplayName": "Format",
        "Property": {
          "Name": "Format",
          "DisplayName": "Format",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "format",
          "EnumDisplayNames": null,
          "StableId": "format"
        },
        "Children": []
      },
      {
        "Segment": "Width",
        "DisplayName": "Width",
        "Property": {
          "Name": "Width",
          "DisplayName": "Width",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "width",
          "EnumDisplayNames": null,
          "StableId": "width"
        },
        "Children": []
      },
      {
        "Segment": "Height",
        "DisplayName": "Height",
        "Property": {
          "Name": "Height",
          "DisplayName": "Height",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "height",
          "EnumDisplayNames": null,
          "StableId": "height"
        },
        "Children": []
      },
      {
        "Segment": "FileSizeBytes",
        "DisplayName": "File Size Bytes",
        "Property": {
          "Name": "FileSizeBytes",
          "DisplayName": "File Size Bytes",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "file_size_bytes",
          "EnumDisplayNames": null,
          "StableId": "file_size_bytes"
        },
        "Children": []
      },
      {
        "Segment": "SavedAtUtc",
        "DisplayName": "Saved At Utc",
        "Property": {
          "Name": "SavedAtUtc",
          "DisplayName": "Saved At Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "saved_at_utc",
          "EnumDisplayNames": null,
          "StableId": "saved_at_utc"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "save_image",
  "settings": {
    "save_path": "",
    "file_name": "image.png",
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "overlay": {
      "detection_results": [],
      "text_results": []
    }
  },
  "id": "469a3886-c8fa-1eba-0a8f-bbed4435a3cc",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Skript ausführen

ID: script_execution
Website: /doku/steps/script_execution/

Abbildung: [Detailansicht: Skript ausführen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-script-execution.detail.png)

1. Skriptpfad: Pfad zur vorhandenen .ps1-, .py- oder Batch-Datei. Der entsprechende Interpreter muss auf dem Zielrechner verfügbar sein.
2. Auf Beendigung warten: true wartet an diesem Step auf das Ende des gestarteten Programms/Skripts. Ohne sofortiges Warten bleibt besessene Skriptarbeit bis zum Job-Ende zugeordnet.
3. Argumente: Argumentzeichenfolge für das Programm oder Skript. Passe Anführungszeichen an den Interpreter an; Argumente werden nicht als vollständiger Inhalt in den Verlauf übernommen.
### errors

Ein nicht vorhandener Interpreter oder Skriptpfad, ein fehlerhafter Exit beziehungsweise ein fehlgeschlagener Hintergrundprozess kann den Job fehlschlagen lassen. Der Verlauf enthält Kontext und bereinigte Diagnose, nicht automatisch den vollständigen Skriptinhalt oder dessen Argumente.

### example

Ein selbst erstelltes .ps1-Skript mit einem Testordner als Argument wählen und wait_for_exit aktivieren; den Verlauf auf Exit-Fehler prüfen.

### field.arguments

Argumentzeichenfolge für das Programm oder Skript. Passe Anführungszeichen an den Interpreter an; Argumente werden nicht als vollständiger Inhalt in den Verlauf übernommen.

### field.script_path

Pfad zur vorhandenen .ps1-, .py- oder Batch-Datei. Der entsprechende Interpreter muss auf dem Zielrechner verfügbar sein.

### field.wait_for_exit

true wartet an diesem Step auf das Ende des gestarteten Programms/Skripts. Ohne sofortiges Warten bleibt besessene Skriptarbeit bis zum Job-Ende zugeordnet.

### purpose

Wähle ein vorhandenes PowerShell-, Python- oder Batch-Skript und dessen Argumente. Mit Warten wird sein Ende vor dem nächsten Step abgewartet. Ohne Warten gehört der Hintergrundprozess weiterhin zum Job: Fehler werden dem Besitzer gemeldet und die Endphase beginnt erst nach dem Zusammenführen besessener Arbeit.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.arguments

Argumentzeichenfolge für das Programm oder Skript. Passe Anführungszeichen an den Interpreter an; Argumente werden nicht als vollständiger Inhalt in den Verlauf übernommen.

### schema.settings.script_path

Pfad zur vorhandenen .ps1-, .py- oder Batch-Datei. Der entsprechende Interpreter muss auf dem Zielrechner verfügbar sein.

### schema.settings.wait_for_exit

true wartet an diesem Step auf das Ende des gestarteten Programms/Skripts. Ohne sofortiges Warten bleibt besessene Skriptarbeit bis zum Job-Ende zugeordnet.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "script_execution",
  "name": "Skript ausführen",
  "description": "Führt ein externes PowerShell-, Python- oder Batch-Skript aus.",
  "category": "ProgrammeFenster",
  "uiFieldIds": [
    "script_path",
    "wait_for_exit",
    "arguments"
  ],
  "fields": [
    {
      "id": "script_path",
      "name": "Skriptpfad",
      "descriptor": {
        "Id": "script_path",
        "LabelKey": "Ui.Step.Settings.ScriptPath",
        "ValueKind": "FilePath",
        "Required": true,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "file-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "wait_for_exit",
      "name": "Auf Beendigung warten",
      "descriptor": {
        "Id": "wait_for_exit",
        "LabelKey": "Ui.Step.Settings.WaitForCompletion",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "arguments",
      "name": "Argumente",
      "descriptor": {
        "Id": "arguments",
        "LabelKey": "Ui.Step.Settings.Arguments",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "ScriptExecutionSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.arguments",
      "name": "arguments",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.script_path",
      "name": "script_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.wait_for_exit",
      "name": "wait_for_exit",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "ScriptExecutionResult",
    "DisplayName": "ScriptExecutionResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "script_execution",
  "settings": {
    "script_path": "",
    "arguments": "",
    "wait_for_exit": false
  },
  "id": "ed6670e1-efaa-085a-1445-700c4fc2d2bb",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Bild anzeigen

ID: show_image
Website: /doku/steps/show_image/

Abbildung: [Detailansicht: Bild anzeigen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-show-image.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. Fenstertitel: Name des Bild-Vorschaufensters. Wiederverwendung desselben Namens ermöglicht Aktualisierung derselben Vorschau.
3. Einblendungen: Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Das letzte Kamerabild im Fenster „Kamera-Vorschau“ anzeigen; derselbe Name aktualisiert die Vorschau im wiederholten Job.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### field.window_name

Name des Bild-Vorschaufensters. Wiederverwendung desselben Namens ermöglicht Aktualisierung derselben Vorschau.

### input.detections

Einblendungsquellen mit Geometrie. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.text

Text beziehungsweise darstellbarer Wert. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle die Bildquelle für ein Vorschaufenster. Ein gleichbleibender Fenstername ermöglicht Aktualisierungen desselben Anzeigefensters. Einblendungen können Erkennungen und Text mit dem Bild kombinieren, ohne die Quelldatei zu verändern.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.detections_source

Kompatible Erkennungs-, Rechteck- oder Punktquelle für die Einblendung. Der Eingabevertrag beschreibt die Verarbeitung mehrerer Werte.

### schema.settings.detections_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.detections_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.detections_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.detections_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.detections_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.detections_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.detections_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.detections_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.detections_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### schema.settings.overlay.detection_results

Liste referenzierter Erkennungsergebnisse für die Einblendung.

### schema.settings.overlay.detection_results.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.detection_results.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.detection_results.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.detection_results.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.detection_results.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.detection_results.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.detection_results.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.detection_results.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.detection_results.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay.text_results

Liste referenzierter Text-/Anzeige-Werte für die Einblendung.

### schema.settings.overlay.text_results.clear_on_job_end

Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.

### schema.settings.overlay.text_results.desktop_index

Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.

### schema.settings.overlay.text_results.duration_ms

Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.

### schema.settings.overlay.text_results.font_color

Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.

### schema.settings.overlay.text_results.font_size

Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.

### schema.settings.overlay.text_results.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.settings.overlay.text_results.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.opacity

Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.

### schema.settings.overlay.text_results.result

Typisierte Ergebnisreferenz für den betreffenden Wert; Quelle und Ergebnis-ID auswählen und die Ausführungsreihenfolge beachten.

### schema.settings.overlay.text_results.result.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.text_results.result.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.text_results.result.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.text_results.result.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.text_results.result.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.text_results.result.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.text_results.result.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.text_results.result.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.text_results.result.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.window_name

Name des Bild-Vorschaufensters. Wiederverwendung desselben Namens ermöglicht Aktualisierung derselben Vorschau.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "show_image",
  "name": "Bild anzeigen",
  "description": "Zeigt das aktuelle Bild in einem Vorschaufenster an.",
  "category": "AnzeigenSpeichern",
  "uiFieldIds": [
    "image_source",
    "window_name",
    "overlay"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "window_name",
      "name": "Fenstertitel",
      "descriptor": {
        "Id": "window_name",
        "LabelKey": "Ui.Step.Settings.WindowName",
        "ValueKind": "Text",
        "Required": true,
        "DefaultValue": "MyWindow",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "overlay",
      "name": "Einblendungen",
      "descriptor": {
        "Id": "overlay",
        "LabelKey": "Ui.Step.Settings.Overlays",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "detection_results": [],
          "text_results": []
        },
        "DescriptionKey": null,
        "EditorHint": "visual-overlay",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": {
          "DetectionInputContractId": "detections",
          "TextInputContractId": "text",
          "SupportsDesktopPlacement": false
        },
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "ShowImageSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source",
      "name": "detections_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.detections_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.detections_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay",
      "name": "overlay",
      "type": "VisualOverlaySettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results",
      "name": "detection_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results",
      "name": "text_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.clear_on_job_end",
      "name": "clear_on_job_end",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.desktop_index",
      "name": "desktop_index",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.duration_ms",
      "name": "duration_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_color",
      "name": "font_color",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_size",
      "name": "font_size",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.id",
      "name": "id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.opacity",
      "name": "opacity",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result",
      "name": "result",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.window_name",
      "name": "window_name",
      "type": "String",
      "options": [],
      "defaultValue": "MyWindow"
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "detections",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "text",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Text",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Boolean",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Integer",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Number",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "DateTime",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Color",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "FilePath",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Enum",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "secret"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "ShowImageResult",
    "DisplayName": "ShowImageResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "show_image",
  "settings": {
    "window_name": "MyWindow",
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "detections_source": {
      "provider_id": "",
      "source_id": ""
    },
    "overlay": {
      "detection_results": [],
      "text_results": []
    }
  },
  "id": "e8080526-e62e-f27f-fe43-49586d257e39",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Auf Desktop anzeigen

ID: show_on_desktop
Website: /doku/steps/show_on_desktop/

Abbildung: [Detailansicht: Auf Desktop anzeigen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-show-on-desktop.detail.png)

1. Einblendungen: Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

all_detections einer Erkennung als Rechtecke einblenden und text einer OCR-Quelle daneben darstellen.

### field.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### input.detections

Einblendungsquellen mit Geometrie. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.text

Text beziehungsweise darstellbarer Wert. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Konfiguriere Erkennungs- und Textquellen für eine transparente Desktop-Einblendung. Sie dient der Darstellung bereits vorhandener Ergebnisse, nicht deren Erkennung. Prüfe Zielmonitor, Versatz und Sichtbarkeit der Darstellung im Zusammenhang mit dem tatsächlichen Desktop.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.detections_source

Kompatible Erkennungs-, Rechteck- oder Punktquelle für die Einblendung. Der Eingabevertrag beschreibt die Verarbeitung mehrerer Werte.

### schema.settings.detections_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.detections_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.detections_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.detections_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.detections_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.detections_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.detections_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.detections_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.detections_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### schema.settings.overlay.detection_results

Liste referenzierter Erkennungsergebnisse für die Einblendung.

### schema.settings.overlay.detection_results.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.detection_results.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.detection_results.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.detection_results.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.detection_results.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.detection_results.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.detection_results.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.detection_results.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.detection_results.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay.text_results

Liste referenzierter Text-/Anzeige-Werte für die Einblendung.

### schema.settings.overlay.text_results.clear_on_job_end

Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.

### schema.settings.overlay.text_results.desktop_index

Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.

### schema.settings.overlay.text_results.duration_ms

Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.

### schema.settings.overlay.text_results.font_color

Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.

### schema.settings.overlay.text_results.font_size

Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.

### schema.settings.overlay.text_results.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.settings.overlay.text_results.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.opacity

Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.

### schema.settings.overlay.text_results.result

Typisierte Ergebnisreferenz für den betreffenden Wert; Quelle und Ergebnis-ID auswählen und die Ausführungsreihenfolge beachten.

### schema.settings.overlay.text_results.result.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.text_results.result.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.text_results.result.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.text_results.result.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.text_results.result.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.text_results.result.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.text_results.result.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.text_results.result.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.text_results.result.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "show_on_desktop",
  "name": "Auf Desktop anzeigen",
  "description": "Zeigt Erkennungen und Textwerte als Einblendung auf dem Desktop an.",
  "category": "AnzeigenSpeichern",
  "uiFieldIds": [
    "overlay"
  ],
  "fields": [
    {
      "id": "overlay",
      "name": "Einblendungen",
      "descriptor": {
        "Id": "overlay",
        "LabelKey": "Ui.Step.Settings.Overlays",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "detection_results": [],
          "text_results": []
        },
        "DescriptionKey": null,
        "EditorHint": "visual-overlay",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": {
          "DetectionInputContractId": "detections",
          "TextInputContractId": "text",
          "SupportsDesktopPlacement": true
        },
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "ShowOnDesktopSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source",
      "name": "detections_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.detections_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.detections_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay",
      "name": "overlay",
      "type": "VisualOverlaySettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results",
      "name": "detection_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results",
      "name": "text_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.clear_on_job_end",
      "name": "clear_on_job_end",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.desktop_index",
      "name": "desktop_index",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.duration_ms",
      "name": "duration_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_color",
      "name": "font_color",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_size",
      "name": "font_size",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.id",
      "name": "id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.opacity",
      "name": "opacity",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result",
      "name": "result",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ],
  "inputs": [
    {
      "Key": "detections",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "text",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Text",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Boolean",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Integer",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Number",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "DateTime",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Color",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "FilePath",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Enum",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "secret"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "ShowOnDesktopResult",
    "DisplayName": "ShowOnDesktopResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "show_on_desktop",
  "settings": {
    "detections_source": {
      "provider_id": "",
      "source_id": ""
    },
    "overlay": {
      "detection_results": [],
      "text_results": []
    }
  },
  "id": "b77b3a43-7414-193b-5f4e-63675ea46498",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Text auf Desktop anzeigen

ID: show_text
Website: /doku/steps/show_text/

Abbildung: [Die Desktop-Textausgabe übernimmt die Beschriftung der Benutzerauswahl als Ergebnisquelle. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-werte.detail.png)

1. Text: Text oder kompatibler Anzeige-Wert aus einer Quelle. Für Benutzerauswahlen eignet sich selected_label.
2. Monitor: Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.
3. Schriftgröße (pt): Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.
4. Schriftfarbe: Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.
5. Deckkraft (%): Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.
6. Anzeigedauer (ms): Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.
7. Bei Job-Ende entfernen: Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.
8. Position: 
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Die gewählte Antwort aus user_choice über selected_label zwei Sekunden auf Monitor 0 anzeigen.

### field.clear_on_job_end

Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.

### field.desktop_index

Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.

### field.duration_ms

Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.

### field.font_color

Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.

### field.font_size

Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.

### field.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### field.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### field.opacity

Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.

### field.text_result

Text oder kompatibler Anzeige-Wert aus einer Quelle. Für Benutzerauswahlen eignet sich selected_label.

### input.text

Text beziehungsweise darstellbarer Wert. Fehlende erforderliche Werte führen zum Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Trage Text ein oder verbinde einen kompatiblen Wert. Wähle Monitor, Schrift, Farbe, Deckkraft und Anzeigedauer. Die Anzeige kann nach Zeitablauf oder beim Job-Ende entfernt werden. Verwende selected_label einer Benutzerauswahl für eine verständliche Rückmeldung.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.clear_on_job_end

Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.

### schema.settings.desktop_index

Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.

### schema.settings.duration_ms

Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.

### schema.settings.font_color

Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.

### schema.settings.font_size

Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.

### schema.settings.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.opacity

Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.

### schema.settings.text

Direkt angezeigter beziehungsweise eingegebener Text. Ein Makro schreibt ihn in das aktive Fenster; die Desktop-Anzeige stellt ihn nur dar.

### schema.settings.text_result

Text oder kompatibler Anzeige-Wert aus einer Quelle. Für Benutzerauswahlen eignet sich selected_label.

### schema.settings.text_result.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.text_result.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.text_result.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.text_result.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.text_result.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.text_result.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.text_result.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.text_result.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.text_result.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.text_source

ExplicitText verwendet den direkten Text, TaskResult den verbundenen Ergebniswert in der älteren settings-Konfiguration.

### schema.settings.text_source.option.ExplicitText

Verwendet den direkt eingegebenen Text.

### schema.settings.text_source.option.TaskResult

Verwendet den verbundenen Step-Ergebniswert statt des direkten Literals.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "show_text",
  "name": "Text auf Desktop anzeigen",
  "description": "Zeigt konfigurierbaren Text auf dem Desktop an.",
  "category": "AnzeigenSpeichern",
  "uiFieldIds": [
    "text_result",
    "desktop_index",
    "font_size",
    "font_color",
    "opacity",
    "duration_ms",
    "clear_on_job_end",
    "offset_x",
    "offset_y"
  ],
  "fields": [
    {
      "id": "text_result",
      "name": "Text",
      "descriptor": {
        "Id": "text_result",
        "LabelKey": "Ui.Step.Settings.DisplayText",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "text",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": true,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "desktop_index",
      "name": "Monitor",
      "descriptor": {
        "Id": "desktop_index",
        "LabelKey": "Ui.Step.Settings.DesktopIndex",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": "monitor-picker",
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "font_size",
      "name": "Schriftgröße (pt)",
      "descriptor": {
        "Id": "font_size",
        "LabelKey": "Ui.Step.Settings.FontSizePt",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 24,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0.01,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "font_color",
      "name": "Schriftfarbe",
      "descriptor": {
        "Id": "font_color",
        "LabelKey": "Ui.Step.Settings.FontColor",
        "ValueKind": "Color",
        "Required": false,
        "DefaultValue": "#FFFFFF",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 5,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "opacity",
      "name": "Deckkraft (%)",
      "descriptor": {
        "Id": "opacity",
        "LabelKey": "Ui.Step.Settings.OpacityPercent",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 1,
        "DescriptionKey": null,
        "EditorHint": "percentage",
        "Constraints": {
          "Minimum": 0,
          "Maximum": 1,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 6,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "duration_ms",
      "name": "Anzeigedauer (ms)",
      "descriptor": {
        "Id": "duration_ms",
        "LabelKey": "Ui.Step.Settings.DisplayDurationMs",
        "ValueKind": "Duration",
        "Required": false,
        "DefaultValue": 5000,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 7,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "clear_on_job_end",
      "name": "Bei Job-Ende entfernen",
      "descriptor": {
        "Id": "clear_on_job_end",
        "LabelKey": "Ui.Step.Settings.RemoveWhenJobEnds",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 8,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_x",
      "name": "Versatz X (px)",
      "descriptor": {
        "Id": "offset_x",
        "LabelKey": "Ui.Step.Settings.XOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 100,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 9,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_y",
      "name": "Versatz Y (px)",
      "descriptor": {
        "Id": "offset_y",
        "LabelKey": "Ui.Step.Settings.YOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 100,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 10,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "ShowTextSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.clear_on_job_end",
      "name": "clear_on_job_end",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.desktop_index",
      "name": "desktop_index",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.duration_ms",
      "name": "duration_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 5000
    },
    {
      "id": "settings.font_color",
      "name": "font_color",
      "type": "String",
      "options": [],
      "defaultValue": "#FFFFFF"
    },
    {
      "id": "settings.font_size",
      "name": "font_size",
      "type": "Single",
      "options": [],
      "defaultValue": 24
    },
    {
      "id": "settings.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": 100
    },
    {
      "id": "settings.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": 100
    },
    {
      "id": "settings.opacity",
      "name": "opacity",
      "type": "Single",
      "options": [],
      "defaultValue": 1
    },
    {
      "id": "settings.text",
      "name": "text",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.text_result",
      "name": "text_result",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_result.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_result.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_result.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_result.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_result.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_result.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.text_result.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_result.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.text_result.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.text_source",
      "name": "text_source",
      "type": "ShowTextSource",
      "options": [
        "ExplicitText",
        "TaskResult"
      ],
      "defaultValue": "TaskResult"
    }
  ],
  "inputs": [
    {
      "Key": "text",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Text",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Boolean",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Integer",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Number",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "DateTime",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Color",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "FilePath",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Enum",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "secret"
      ],
      "AllowsDirectValue": true,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "ShowTextResult",
    "DisplayName": "ShowTextResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "show_text",
  "settings": {
    "text_source": "TaskResult",
    "text": "",
    "text_result": {
      "provider_id": "",
      "source_id": ""
    },
    "font_size": 24,
    "font_color": "#FFFFFF",
    "opacity": 1,
    "desktop_index": 0,
    "offset_x": 100,
    "offset_y": 100,
    "duration_ms": 5000,
    "clear_on_job_end": false
  },
  "id": "53488c77-d339-7ac1-2fc2-7774b8ec431e",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Prozess starten

ID: start_process
Website: /doku/steps/start_process/

Abbildung: [Notepad als Beispielprogramm: ausführbare Datei und Startoptionen im Editor. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-programmstart.detail.png)

1. Programmpfad: Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.
2. Auf Beendigung warten: Mit Häkchen wartet der Job auf das Ende des gestarteten Programms. Ohne Häkchen folgt der nächste Step nach dem Start; für einen geöffneten Editor ist das meist die passende Wahl.
3. Argumente: Zusätzliche Startargumente des Programms, etwa der Pfad zu einer Textdatei für den Editor. Pfade mit Leerzeichen in Anführungszeichen setzen. Leer lassen, wenn keine Argumente nötig sind.
4. Arbeitsverzeichnis: Arbeitsverzeichnis des gestarteten Programms. Relative Pfade des Programms können davon abhängen.
5. Monitor: Nullbasierter Monitor für Programmfenster oder Anzeige. Er bezieht sich auf die aktuelle Bildschirmkonfiguration.
6. Fenstermodus: Fensterdarstellung: Voreinstellung des Programms, Normal oder Maximiert, soweit der jeweilige Step diese Option unterstützt.
7. Position: „Zentriert“ positioniert das Programmfenster mittig auf dem gewählten Monitor; „Benutzerdefiniert“ verwendet die konfigurierten Versätze.
8. Versatz X (px): Bei Position „Benutzerdefiniert“: Abstand in Pixeln vom linken Rand des Arbeitsbereichs des gewählten Monitors zur linken Fensterkante. Beispiel 120 setzt das Fenster 120 px nach rechts.
9. Versatz Y (px): Bei Position „Benutzerdefiniert“: Abstand in Pixeln vom oberen Rand des Arbeitsbereichs des gewählten Monitors zur oberen Fensterkante. Beispiel 80 setzt das Fenster 80 px nach unten.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Der Beispieljob „Arbeitsplatz nach Zeitplan“ startet notepad nur bei Bedarf und öffnet anschließend calc.

### field.action

Wähle „Starten“, um ein Programm über seinen Pfad zu öffnen, oder „Beenden“, um die ausgewählte Prozessreferenz zu schließen. Es werden nur die Felder der gewählten Aktion eingeblendet.

### field.action.option.Start

Startet das konfigurierte Programm.

### field.action.option.Terminate

Beendet die gewählte Programminstanz beziehungsweise die unterstützte Zielsuche.

### field.arguments

Zusätzliche Startargumente des Programms, etwa der Pfad zu einer Textdatei für den Editor. Pfade mit Leerzeichen in Anführungszeichen setzen. Leer lassen, wenn keine Argumente nötig sind.

### field.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### field.monitor_index

Nullbasierter Monitor für Programmfenster oder Anzeige. Er bezieht sich auf die aktuelle Bildschirmkonfiguration.

### field.offset_x

Bei Position „Benutzerdefiniert“: Abstand in Pixeln vom linken Rand des Arbeitsbereichs des gewählten Monitors zur linken Fensterkante. Beispiel 120 setzt das Fenster 120 px nach rechts.

### field.offset_y

Bei Position „Benutzerdefiniert“: Abstand in Pixeln vom oberen Rand des Arbeitsbereichs des gewählten Monitors zur oberen Fensterkante. Beispiel 80 setzt das Fenster 80 px nach unten.

### field.placement_mode

„Zentriert“ positioniert das Programmfenster mittig auf dem gewählten Monitor; „Benutzerdefiniert“ verwendet die konfigurierten Versätze.

### field.placement_mode.option.Centered

Positioniert das Fenster mittig auf dem gewählten Monitor.

### field.placement_mode.option.Custom

Verwendet die angegebenen Positionsversätze.

### field.process_target

Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.

### field.wait_for_exit

Mit Häkchen wartet der Job auf das Ende des gestarteten Programms. Ohne Häkchen folgt der nächste Step nach dem Start; für einen geöffneten Editor ist das meist die passende Wahl.

### field.window_mode

Fensterdarstellung: Voreinstellung des Programms, Normal oder Maximiert, soweit der jeweilige Step diese Option unterstützt.

### field.window_mode.option.ApplicationDefault

Überlässt den anfänglichen Fenstermodus dem Programm.

### field.window_mode.option.Maximized

Maximiert das Fenster, soweit es dies unterstützt.

### field.window_mode.option.Normal

Verwendet ein normales, nicht maximiertes Fenster.

### field.working_directory

Arbeitsverzeichnis des gestarteten Programms. Relative Pfade des Programms können davon abhängen.

### input.process

konkrete Prozessreferenz. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Starte ein Programm über seinen ausführbaren Pfad. Argumente und Arbeitsverzeichnis bestimmen den Startkontext. Fenstermodus und Position werden angewendet, soweit das Programm ein steuerbares Fenster bereitstellt. Zum Beenden eines Programms verwende den Step „Prozess beenden“.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.action

Wähle „Starten“, um ein Programm über seinen Pfad zu öffnen, oder „Beenden“, um die ausgewählte Prozessreferenz zu schließen. Es werden nur die Felder der gewählten Aktion eingeblendet.

### schema.settings.action.option.Start

Startet das konfigurierte Programm.

### schema.settings.action.option.Terminate

Beendet die gewählte Programminstanz beziehungsweise die unterstützte Zielsuche.

### schema.settings.arguments

Zusätzliche Startargumente des Programms, etwa der Pfad zu einer Textdatei für den Editor. Pfade mit Leerzeichen in Anführungszeichen setzen. Leer lassen, wenn keine Argumente nötig sind.

### schema.settings.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### schema.settings.monitor_index

Nullbasierter Monitor für Programmfenster oder Anzeige. Er bezieht sich auf die aktuelle Bildschirmkonfiguration.

### schema.settings.offset_x

Bei Position „Benutzerdefiniert“: Abstand in Pixeln vom linken Rand des Arbeitsbereichs des gewählten Monitors zur linken Fensterkante. Beispiel 120 setzt das Fenster 120 px nach rechts.

### schema.settings.offset_y

Bei Position „Benutzerdefiniert“: Abstand in Pixeln vom oberen Rand des Arbeitsbereichs des gewählten Monitors zur oberen Fensterkante. Beispiel 80 setzt das Fenster 80 px nach unten.

### schema.settings.placement_mode

„Zentriert“ positioniert das Programmfenster mittig auf dem gewählten Monitor; „Benutzerdefiniert“ verwendet die konfigurierten Versätze.

### schema.settings.placement_mode.option.Centered

Positioniert das Fenster mittig auf dem gewählten Monitor.

### schema.settings.placement_mode.option.Custom

Verwendet die angegebenen Positionsversätze.

### schema.settings.target

Prozess-Zielkonfiguration aus Name/Pfad/Titel oder einer konkreten Prozessreferenz. Die konkrete Referenz schützt vor Verwechslung gleichnamiger Instanzen.

### schema.settings.target.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### schema.settings.target.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### schema.settings.target.process_source

Referenz auf eine konkrete laufende Programminstanz, üblicherweise process aus get_process oder start_process.

### schema.settings.target.process_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.target.process_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.target.process_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.target.process_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.target.process_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.target.process_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.target.process_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.target.process_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.target.process_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.target.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### schema.settings.wait_for_exit

Mit Häkchen wartet der Job auf das Ende des gestarteten Programms. Ohne Häkchen folgt der nächste Step nach dem Start; für einen geöffneten Editor ist das meist die passende Wahl.

### schema.settings.window_mode

Fensterdarstellung: Voreinstellung des Programms, Normal oder Maximiert, soweit der jeweilige Step diese Option unterstützt.

### schema.settings.window_mode.option.ApplicationDefault

Überlässt den anfänglichen Fenstermodus dem Programm.

### schema.settings.window_mode.option.Maximized

Maximiert das Fenster, soweit es dies unterstützt.

### schema.settings.window_mode.option.Normal

Verwendet ein normales, nicht maximiertes Fenster.

### schema.settings.working_directory

Arbeitsverzeichnis des gestarteten Programms. Relative Pfade des Programms können davon abhängen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "start_process",
  "name": "Prozess starten",
  "description": "Startet ein Programm und konfiguriert optional dessen Fenster.",
  "category": "ProgrammeFenster",
  "uiFieldIds": [
    "executable_path",
    "wait_for_exit",
    "arguments",
    "working_directory",
    "monitor_index",
    "window_mode",
    "placement_mode",
    "offset_x",
    "offset_y"
  ],
  "fields": [
    {
      "id": "action",
      "name": "Aktion",
      "descriptor": {
        "Id": "action",
        "LabelKey": "Ui.Step.Settings.Action",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Start",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Start",
            "Terminate"
          ]
        },
        "Width": "Full",
        "Advanced": false,
        "Order": -2,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "Start",
            "LabelKey": "Enum.StartProcessAction.Start",
            "DisplayName": null
          },
          {
            "Value": "Terminate",
            "LabelKey": "Enum.StartProcessAction.Terminate",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "process_target",
      "name": "Prozessreferenz",
      "descriptor": {
        "Id": "process_target",
        "LabelKey": "Ui.Step.Settings.ProcessSource",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "process-target-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": -1,
        "VisibleWhen": {
          "FieldId": "action",
          "EqualsValue": "Terminate",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": "process",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "executable_path",
      "name": "Programmpfad",
      "descriptor": {
        "Id": "executable_path",
        "LabelKey": "Ui.Step.Settings.PathProgram",
        "ValueKind": "FilePath",
        "Required": true,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "start-program-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": {
          "FieldId": "action",
          "EqualsValue": "Start",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "wait_for_exit",
      "name": "Auf Beendigung warten",
      "descriptor": {
        "Id": "wait_for_exit",
        "LabelKey": "Ui.Step.Settings.WaitForCompletion",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "arguments",
      "name": "Argumente",
      "descriptor": {
        "Id": "arguments",
        "LabelKey": "Ui.Step.Settings.Arguments",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "working_directory",
      "name": "Arbeitsverzeichnis",
      "descriptor": {
        "Id": "working_directory",
        "LabelKey": "Ui.Step.Settings.WorkingDirectory",
        "ValueKind": "DirectoryPath",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "monitor_index",
      "name": "Monitor",
      "descriptor": {
        "Id": "monitor_index",
        "LabelKey": "Ui.Step.Settings.Monitor",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": "monitor-picker",
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "window_mode",
      "name": "Fenstermodus",
      "descriptor": {
        "Id": "window_mode",
        "LabelKey": "Ui.Step.Settings.WindowMode",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "ApplicationDefault",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "ApplicationDefault",
            "Normal",
            "Maximized"
          ]
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 5,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "ApplicationDefault",
            "LabelKey": "Enum.StartProcessWindowMode.ApplicationDefault",
            "DisplayName": null
          },
          {
            "Value": "Normal",
            "LabelKey": "Enum.StartProcessWindowMode.Normal",
            "DisplayName": null
          },
          {
            "Value": "Maximized",
            "LabelKey": "Enum.StartProcessWindowMode.Maximized",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "placement_mode",
      "name": "Position",
      "descriptor": {
        "Id": "placement_mode",
        "LabelKey": "Ui.Step.Settings.Position",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "Centered",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "Centered",
            "Custom"
          ]
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 6,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "Centered",
            "LabelKey": "Enum.StartProcessPlacementMode.Centered",
            "DisplayName": null
          },
          {
            "Value": "Custom",
            "LabelKey": "Enum.StartProcessPlacementMode.Custom",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_x",
      "name": "Versatz X (px)",
      "descriptor": {
        "Id": "offset_x",
        "LabelKey": "Ui.Step.Settings.XOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 7,
        "VisibleWhen": {
          "FieldId": "placement_mode",
          "EqualsValue": "Custom",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "offset_y",
      "name": "Versatz Y (px)",
      "descriptor": {
        "Id": "offset_y",
        "LabelKey": "Ui.Step.Settings.YOffsetPixels",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 8,
        "VisibleWhen": {
          "FieldId": "placement_mode",
          "EqualsValue": "Custom",
          "AnyOfValues": null
        },
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "StartProcessSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.action",
      "name": "action",
      "type": "StartProcessAction",
      "options": [
        "Start",
        "Terminate"
      ],
      "defaultValue": "Start"
    },
    {
      "id": "settings.arguments",
      "name": "arguments",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.executable_path",
      "name": "executable_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.monitor_index",
      "name": "monitor_index",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.placement_mode",
      "name": "placement_mode",
      "type": "StartProcessPlacementMode",
      "options": [
        "Centered",
        "Custom"
      ],
      "defaultValue": "Centered"
    },
    {
      "id": "settings.target",
      "name": "target",
      "type": "ProcessTargetSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.executable_path",
      "name": "executable_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source",
      "name": "process_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.wait_for_exit",
      "name": "wait_for_exit",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.window_mode",
      "name": "window_mode",
      "type": "StartProcessWindowMode",
      "options": [
        "ApplicationDefault",
        "Normal",
        "Maximized"
      ],
      "defaultValue": "ApplicationDefault"
    },
    {
      "id": "settings.working_directory",
      "name": "working_directory",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "process",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "StartProcessResult",
    "DisplayName": "StartProcessResult",
    "Properties": [
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "start_process",
  "settings": {
    "target": {
      "process_source": {
        "provider_id": "",
        "source_id": ""
      },
      "process_name": "",
      "executable_path": "",
      "window_title_contains": ""
    },
    "action": "Start",
    "executable_path": "",
    "arguments": "",
    "working_directory": "",
    "wait_for_exit": false,
    "monitor_index": 0,
    "placement_mode": "Centered",
    "offset_x": 0,
    "offset_y": 0,
    "window_mode": "ApplicationDefault"
  },
  "id": "6fbbf6ae-f17e-bbfb-d307-3c3f4e398d7a",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Bildvorlage erkennen

ID: template_matching
Website: /doku/steps/template_matching/

Abbildung: [Detailansicht: Bildvorlage erkennen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-template-matching.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. Bildvorlage: Pfad zur lokalen Bildvorlage. Die Datei muss vorhanden und lesbar sein; für Pixelvorlagen darf sie nicht größer als der Suchbereich sein.
3. Konfidenz (%): Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.
4. Mehrere Treffer zurückgeben: true liefert mehrere Template-Treffer nach Unterdrückung benachbarter Treffer; false verwendet nur den besten Treffer.
5. Bildbereich (ROI): Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.
6. Vergleichsmethode: Vergleichsmethode für die Pixelvorlage. Im aktuellen Step sind ausschließlich die drei normalisierten Methoden CCoeffNormed, CCorrNormed und SqDiffNormed gültig.
### errors

Nur CCoeffNormed, CCorrNormed und SqDiffNormed sind im aktuellen Step unterstützt. Andere Namen aus der OpenCV-Enumeration sind in der technischen Typaufzählung sichtbar, aber keine gültige Step-Konfiguration. Prüfe außerdem Vorlagendatei, Bildquelle und Bildgrößen.

### example

Bildschirmaufnahme mit einer lokalen Symbolvorlage vergleichen, CCoeffNormed und Schwellenwert 0,9 wählen, danach found prüfen.

### field.confidence_threshold

Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.multiple_points

true liefert mehrere Template-Treffer nach Unterdrückung benachbarter Treffer; false verwendet nur den besten Treffer.

### field.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### field.template_match_mode

Vergleichsmethode für die Pixelvorlage. Im aktuellen Step sind ausschließlich die drei normalisierten Methoden CCoeffNormed, CCorrNormed und SqDiffNormed gültig.

### field.template_match_mode.option.CCoeffNormed

Normalisierte Korrelation mit Zentrierung; Ergebnis-Konfidenz 0 bis 1.

### field.template_match_mode.option.CCorrNormed

Normalisierte Kreuzkorrelation; Ergebnis-Konfidenz 0 bis 1.

### field.template_match_mode.option.SqDiffNormed

Normalisierte quadratische Differenz. Intern ist ein kleiner Rohwert besser; der Step gibt daraus eine höhere normalisierte Konfidenz aus.

### field.template_path

Pfad zur lokalen Bildvorlage. Die Datei muss vorhanden und lesbar sein; für Pixelvorlagen darf sie nicht größer als der Suchbereich sein.

### input.dynamicRoi

dynamischer Suchbereich. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Vergleiche eine Pixelvorlage mit der Bildquelle. Wähle eine der drei unterstützten normalisierten Methoden und einen Schwellenwert. „Mehrere Treffer“ liefert mehrere Erkennungen; alle Konfidenzen werden als 0 bis 1 ausgegeben, auch bei SqDiffNormed, dessen Rohscore intern umgekehrt bewertet wird.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.confidence_threshold

Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.

### schema.settings.dynamic_roi_source

Kompatible dynamische Rechteckquelle. Eine spätere DynamicRoi-Quelle darf Feedback für den nächsten Durchlauf liefern; dies ist eine besondere Ausnahme von normalen Vorwärtsreferenzen.

### schema.settings.dynamic_roi_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.dynamic_roi_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.dynamic_roi_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.dynamic_roi_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.dynamic_roi_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.dynamic_roi_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.dynamic_roi_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.dynamic_roi_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.dynamic_roi_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.enable_roi

Aktiviert den direkt konfigurierten Suchbereich. Ohne Aktivierung wird der Standardbereich der Quelle verwendet, sofern keine dynamische ROI-Quelle greift.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.multiple_points

true liefert mehrere Template-Treffer nach Unterdrückung benachbarter Treffer; false verwendet nur den besten Treffer.

### schema.settings.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### schema.settings.roi.Empty

Vom serialisierten Geometrieobjekt angebotener Leerzustand. Kein eigener ROI-Schalter: den Suchbereich mit enable_roi beziehungsweise roi.enabled und den Koordinaten konfigurieren; dieses abgeleitete Mitglied nicht als Eingabequelle verwenden.

### schema.settings.roi.height

Höhe des Rechtecks oder Bildformats in Pixeln. Negative Größen sind kein gültiger Suchbereich.

### schema.settings.roi.width

Breite des Rechtecks oder Bildformats in Pixeln. Zusammen mit Höhe und Ursprung ergibt sie die räumliche Größe.

### schema.settings.roi.x

Horizontale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate X = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### schema.settings.roi.y

Vertikale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate Y = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### schema.settings.template_match_mode

Vergleichsmethode für die Pixelvorlage. Im aktuellen Step sind ausschließlich die drei normalisierten Methoden CCoeffNormed, CCorrNormed und SqDiffNormed gültig.

### schema.settings.template_match_mode.option.CCoeff

OpenCV-Typwert, im aktuellen Template-Step nicht unterstützt; CCoeffNormed verwenden.

### schema.settings.template_match_mode.option.CCoeffNormed

Normalisierte Korrelation mit Zentrierung; Ergebnis-Konfidenz 0 bis 1.

### schema.settings.template_match_mode.option.CCorr

OpenCV-Typwert, im aktuellen Template-Step nicht unterstützt; CCorrNormed verwenden.

### schema.settings.template_match_mode.option.CCorrNormed

Normalisierte Kreuzkorrelation; Ergebnis-Konfidenz 0 bis 1.

### schema.settings.template_match_mode.option.SqDiff

OpenCV-Typwert, im aktuellen Template-Step nicht unterstützt; SqDiffNormed verwenden.

### schema.settings.template_match_mode.option.SqDiffNormed

Normalisierte quadratische Differenz. Intern ist ein kleiner Rohwert besser; der Step gibt daraus eine höhere normalisierte Konfidenz aus.

### schema.settings.template_path

Pfad zur lokalen Bildvorlage. Die Datei muss vorhanden und lesbar sein; für Pixelvorlagen darf sie nicht größer als der Suchbereich sein.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "template_matching",
  "name": "Bildvorlage erkennen",
  "description": "Vergleicht eine Bildvorlage mit der ausgewählten Bildquelle.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "image_source",
    "template_path",
    "confidence_threshold",
    "multiple_points",
    "roi",
    "template_match_mode"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "template_path",
      "name": "Bildvorlage",
      "descriptor": {
        "Id": "template_path",
        "LabelKey": "Ui.Step.Settings.Template",
        "ValueKind": "FilePath",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "file-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": {
          "Kind": "Image",
          "ShowPreview": true
        },
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "confidence_threshold",
      "name": "Konfidenz (%)",
      "descriptor": {
        "Id": "confidence_threshold",
        "LabelKey": "Ui.Step.Settings.ConfidencePercent",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 0.9,
        "DescriptionKey": null,
        "EditorHint": "percentage",
        "Constraints": {
          "Minimum": 0,
          "Maximum": 1,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "roi",
      "name": "Bildbereich (ROI)",
      "descriptor": {
        "Id": "roi",
        "LabelKey": "Ui.Step.Settings.ROI",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "enabled": false,
          "x": 0,
          "y": 0,
          "width": 0,
          "height": 0,
          "dynamic_source": null
        },
        "DescriptionKey": null,
        "EditorHint": "roi-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": {
          "DynamicInputContractId": "dynamicRoi"
        },
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "template_match_mode",
      "name": "Vergleichsmethode",
      "descriptor": {
        "Id": "template_match_mode",
        "LabelKey": "Ui.Step.Settings.MatchMode",
        "ValueKind": "Enum",
        "Required": true,
        "DefaultValue": "CCoeffNormed",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": [
            "CCoeffNormed",
            "CCorrNormed",
            "SqDiffNormed"
          ]
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 4,
        "VisibleWhen": null,
        "Options": [
          {
            "Value": "CCoeffNormed",
            "LabelKey": "Enum.TemplateMatchMode.CCoeffNormed",
            "DisplayName": null
          },
          {
            "Value": "CCorrNormed",
            "LabelKey": "Enum.TemplateMatchMode.CCorrNormed",
            "DisplayName": null
          },
          {
            "Value": "SqDiffNormed",
            "LabelKey": "Enum.TemplateMatchMode.SqDiffNormed",
            "DisplayName": null
          }
        ],
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "multiple_points",
      "name": "Mehrere Treffer zurückgeben",
      "descriptor": {
        "Id": "multiple_points",
        "LabelKey": "Ui.Step.Settings.MultiplePoints",
        "ValueKind": "Boolean",
        "Required": false,
        "DefaultValue": false,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 5,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "TemplateMatchingSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.confidence_threshold",
      "name": "confidence_threshold",
      "type": "Double",
      "options": [],
      "defaultValue": 0.9
    },
    {
      "id": "settings.dynamic_roi_source",
      "name": "dynamic_roi_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.enable_roi",
      "name": "enable_roi",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.multiple_points",
      "name": "multiple_points",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.roi",
      "name": "roi",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.Empty",
      "name": "Empty",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.height",
      "name": "height",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.width",
      "name": "width",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.x",
      "name": "x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.y",
      "name": "y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.template_match_mode",
      "name": "template_match_mode",
      "type": "TemplateMatchModes",
      "options": [
        "SqDiff",
        "SqDiffNormed",
        "CCorr",
        "CCorrNormed",
        "CCoeff",
        "CCoeffNormed"
      ],
      "defaultValue": "CCoeffNormed"
    },
    {
      "id": "settings.template_path",
      "name": "template_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "dynamicRoi",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "TemplateMatchingResult",
    "DisplayName": "TemplateMatchingResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "template_matching",
  "settings": {
    "template_path": "",
    "template_match_mode": "CCoeffNormed",
    "multiple_points": false,
    "confidence_threshold": 0.9,
    "roi": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "enable_roi": false,
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "dynamic_roi_source": {
      "provider_id": "",
      "source_id": ""
    }
  },
  "id": "fecba802-7139-a95a-9712-cc418e4a3527",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Prozess beenden

ID: terminate_process
Website: /doku/steps/terminate_process/

Abbildung: [Detailansicht: Prozess beenden. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-terminate-process.detail.png)

1. Prozessreferenz: Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Eine zuvor über get_process ermittelte Testprogramm-Instanz beenden; keine ungesicherten Dokumente im Testprogramm offen lassen.

### field.process_target

Im Editor eine kompatible Prozessreferenz wählen. Suchkriterien einer älteren settings.target-Konfiguration sind kein Ersatz für eine beliebige Textquelle im typisierten Prozesseingang.

### input.process

konkrete Prozessreferenz. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Beende die gewählte Programminstanz beziehungsweise passende Instanzen der konfigurierten Suche. Prüfe Prozessreferenz und Titel sorgfältig: das Beenden eines Programms kann ungespeicherte Arbeit verlieren. Eine nicht mehr vorhandene Instanz ist von einem Berechtigungsfehler zu unterscheiden.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.target

Prozess-Zielkonfiguration aus Name/Pfad/Titel oder einer konkreten Prozessreferenz. Die konkrete Referenz schützt vor Verwechslung gleichnamiger Instanzen.

### schema.settings.target.executable_path

Pfad zur ausführbaren Datei. Beim Start muss er zu einem startbaren Programm führen; bei einer Suche grenzt er die Programminstanz ein.

### schema.settings.target.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### schema.settings.target.process_source

Referenz auf eine konkrete laufende Programminstanz, üblicherweise process aus get_process oder start_process.

### schema.settings.target.process_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.target.process_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.target.process_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.target.process_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.target.process_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.target.process_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.target.process_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.target.process_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.target.process_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.target.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "terminate_process",
  "name": "Prozess beenden",
  "description": "Beendet laufende Prozesse anhand einer Prozessreferenz oder ihres Namens und optional ihres Fenstertitels.",
  "category": "ProgrammeFenster",
  "uiFieldIds": [
    "process_target"
  ],
  "fields": [
    {
      "id": "process_target",
      "name": "Prozessreferenz",
      "descriptor": {
        "Id": "process_target",
        "LabelKey": "Ui.Step.Settings.ProcessSource",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "process-target-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "process",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "TerminateProcessSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target",
      "name": "target",
      "type": "ProcessTargetSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.executable_path",
      "name": "executable_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source",
      "name": "process_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.process_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.target.process_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.target.window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "process",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "TerminateProcessResult",
    "DisplayName": "TerminateProcessResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "terminate_process",
  "settings": {
    "target": {
      "process_source": {
        "provider_id": "",
        "source_id": ""
      },
      "process_name": "",
      "executable_path": "",
      "window_title_contains": ""
    }
  },
  "id": "1a0a37d7-cbd4-4080-4162-27be3efcf1d4",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Warten

ID: timeout
Website: /doku/steps/timeout/

Abbildung: [Detailansicht: Warten. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-timeout.detail.png)

1. Wartezeit (ms): Wartezeit in Millisekunden. 1000 entspricht einer Sekunde; eine Zeitpause ersetzt keine Statusprüfung eines Programms.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Nach einer Rückmeldung 1000 ms warten und erst dann den nächsten Step ausführen.

### field.delay_ms

Wartezeit in Millisekunden. 1000 entspricht einer Sekunde; eine Zeitpause ersetzt keine Statusprüfung eines Programms.

### purpose

Füge eine Pause zwischen zwei Aktionen ein. Der Wert ist in Millisekunden; 1000 entspricht einer Sekunde. Die Pause wartet auf Zeitablauf und ist kein Beleg dafür, dass ein anderes Programm bereits fertig geladen hat.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.delay_ms

Wartezeit in Millisekunden. 1000 entspricht einer Sekunde; eine Zeitpause ersetzt keine Statusprüfung eines Programms.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "timeout",
  "name": "Warten",
  "description": "Wartet eine konfigurierbare Zeit, bevor der nächste Step ausgeführt wird.",
  "category": "AblaufSteuern",
  "uiFieldIds": [
    "delay_ms"
  ],
  "fields": [
    {
      "id": "delay_ms",
      "name": "Wartezeit (ms)",
      "descriptor": {
        "Id": "delay_ms",
        "LabelKey": "Ui.Step.Settings.WaitTimeMs",
        "ValueKind": "Duration",
        "Required": true,
        "DefaultValue": 1000,
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "TimeoutSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.delay_ms",
      "name": "delay_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": 1000
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "TimeoutResult",
    "DisplayName": "TimeoutResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "timeout",
  "settings": {
    "delay_ms": 1000
  },
  "id": "f8468467-aabe-4960-2611-1a0bcd68497c",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Eingaben freigeben

ID: unblock_input
Website: /doku/steps/unblock_input/

Abbildung: [Detailansicht: Eingaben freigeben. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-step-unblock-input.detail.png)

1. Eingaben freigeben: Hebt eine zuvor gesetzte Sperre für physische Maus- und Tastatureingaben auf.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Ein Job setzt block_input in der Hauptphase und unblock_input in endSteps, damit normales Beenden die Eingaben freigibt.

### purpose

Gib die vom aktuellen Job besessene Maus- und Tastatursperre frei. Verwende diesen Step nach dem geschützten Abschnitt oder im Bereich „Beim Beenden“. Er hebt keine Sperre eines fremden Besitzers auf.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "unblock_input",
  "name": "Eingaben freigeben",
  "description": "Gibt blockierte Maus- und Tastatureingaben wieder frei.",
  "category": "AblaufSteuern",
  "uiFieldIds": [],
  "fields": [],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "InputControlResult",
    "DisplayName": "InputControlResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "unblock_input",
  "id": "ebfe1a0a-c733-fcf3-dae8-97b992a5ff8e",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Benutzerauswahl abfragen

ID: user_choice
Website: /doku/steps/user_choice/

Abbildung: [Eine Rückfrage mit zwei beschrifteten Optionen und getrennten Rückgabewerten. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/step-auswahl.detail.png)

1. Überschrift (optional): Sichtbare Überschrift der Auswahl beziehungsweise Gruppentitel. Sie ist keine technische Identität.
2. Titel (optional): Fragetext der Benutzerauswahl. Formuliere ihn so, dass die angebotenen Antworten eine eindeutige Entscheidung ermöglichen.
3. Beschreibung (optional): Zusätzliche Beschreibung für Menschen; sie ist kein auszuführender Befehl.
4. Monitor: Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.
5. Antwortmöglichkeiten (2 bis 18, verpflichtend): Lege zwei bis achtzehn Antworten an. Jede Antwort benötigt einen sichtbaren Antworttext. Ein optionaler Rückgabewert ermöglicht stabile Bedingungen; bleibt er leer, wird der Antworttext zurückgegeben. Die interne ID bleibt beim Umbenennen oder Umordnen erhalten.
### errors

Abbrechen der Auswahl ist von Stoppen des ganzen Jobs zu unterscheiden. Prüfe was_cancelled, bevor du selected_value verwendest. Ungültige, doppelte oder zu wenige/zu viele Antworten werden bei der Konfiguration zurückgewiesen.

### example

Zwei Antworten: ID rechnung, Label Rechnungen, Wert rechnung sowie ID notiz, Label Notizen, Wert notiz. Der Wenn-Step verwendet selected_value.

### field.description

Zusätzliche Beschreibung für Menschen; sie ist kein auszuführender Befehl.

### field.desktop_index

Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.

### field.options

Lege zwei bis achtzehn Antworten an. Jede Antwort benötigt einen sichtbaren Antworttext. Ein optionaler Rückgabewert ermöglicht stabile Bedingungen; bleibt er leer, wird der Antworttext zurückgegeben. Die interne ID bleibt beim Umbenennen oder Umordnen erhalten.

### field.question

Fragetext der Benutzerauswahl. Formuliere ihn so, dass die angebotenen Antworten eine eindeutige Entscheidung ermöglichen.

### field.title

Sichtbare Überschrift der Auswahl beziehungsweise Gruppentitel. Sie ist keine technische Identität.

### purpose

Lege zwei bis achtzehn Antworten an und frage den Benutzer während des Jobs nach einer Auswahl. Jede Antwort hat eine stabile ID, ein sichtbares Label und einen weitergegebenen Textwert. Die Ergebnisse selected_option_id, selected_label und selected_value erfüllen unterschiedliche Zwecke; ein Abbruch wird separat als was_cancelled gemeldet.

### result.selected_index

Index der gewählten Antwort, nullbasiert. Vor Verwendung was_cancelled prüfen. Einzelwert dieses Ergebnisses.

### result.selected_label

Sichtbarer Text der gewählten Antwort, geeignet für eine verständliche Rückmeldung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.selected_option_id

Stabile ID der gewählten Antwort; sie ist vom sichtbaren Label und vom fachlichen Textwert getrennt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.selected_option_id.option.example-option-0

Beispielhafte Antwort-ID einer Benutzerauswahl; bei eigener Antwortliste entstehen deren eigene stabile IDs. Der zugehörige Wert beschreibt nur diese Option.

### result.selected_option_id.option.example-option-1

Beispielhafte Antwort-ID einer Benutzerauswahl; bei eigener Antwortliste entstehen deren eigene stabile IDs. Der zugehörige Wert beschreibt nur diese Option.

### result.selected_value

Weitergereichter fachlicher Textwert der Antwort, geeignet für nachfolgende Vergleiche. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.was_cancelled

Ob der Benutzer das Auswahlfenster ohne Antwort abgebrochen hat. Dies allein bedeutet nicht, dass der komplette Job gestoppt wurde. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.description

Zusätzliche Beschreibung für Menschen; sie ist kein auszuführender Befehl.

### schema.settings.desktopIndex

Nullbasierter Monitorindex dieser Konfiguration; die Monitorreihenfolge ist rechnerabhängig.

### schema.settings.options

Antwortliste mit zwei bis achtzehn Einträgen. Jeder Eintrag benötigt stabile ID, sichtbares Label und einen weitergereichten Textwert.

### schema.settings.options.id

Eindeutige, stabile ID dieser Antwort innerhalb der Antwortliste. Über diese ID können nachfolgende Steps die gewählte Option erkennen. Beim Umbenennen der Beschriftung die ID beibehalten.

### schema.settings.options.label

Für Menschen sichtbarer Antworttext. Verwende value für stabile fachliche Vergleiche, wenn das Label später umformuliert werden soll.

### schema.settings.options.value

Optionaler Textwert, der bei Auswahl dieser Antwort weitergereicht wird, zum Beispiel „yes“. Leer verwendet den Antworttext. Mit einem stabilen Rückgabewert funktionieren Bedingungen auch nach einer Änderung der sichtbaren Beschriftung.

### schema.settings.question

Fragetext der Benutzerauswahl. Formuliere ihn so, dass die angebotenen Antworten eine eindeutige Entscheidung ermöglichen.

### schema.settings.title

Sichtbare Überschrift der Auswahl beziehungsweise Gruppentitel. Sie ist keine technische Identität.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "user_choice",
  "name": "Benutzerauswahl abfragen",
  "description": "Öffnet während der Job-Ausführung ein Auswahlfenster und stellt die gewählte Antwort nachfolgenden Steps bereit.",
  "category": "AblaufSteuern",
  "uiFieldIds": [
    "title",
    "question",
    "description",
    "desktop_index",
    "options"
  ],
  "fields": [
    {
      "id": "title",
      "name": "Überschrift (optional)",
      "descriptor": {
        "Id": "title",
        "LabelKey": "Ui.UserChoice.Title",
        "ValueKind": "Text",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "single-line-text",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "question",
      "name": "Titel (optional)",
      "descriptor": {
        "Id": "question",
        "LabelKey": "Ui.UserChoice.Question",
        "ValueKind": "MultilineText",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "description",
      "name": "Beschreibung (optional)",
      "descriptor": {
        "Id": "description",
        "LabelKey": "Ui.UserChoice.Description",
        "ValueKind": "MultilineText",
        "Required": false,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "desktop_index",
      "name": "Monitor",
      "descriptor": {
        "Id": "desktop_index",
        "LabelKey": "Ui.Step.Settings.DesktopIndex",
        "ValueKind": "Integer",
        "Required": false,
        "DefaultValue": 0,
        "DescriptionKey": null,
        "EditorHint": "monitor-picker",
        "Constraints": {
          "Minimum": 0,
          "Maximum": null,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "options",
      "name": "Antwortmöglichkeiten (2 bis 18, verpflichtend)",
      "descriptor": {
        "Id": "options",
        "LabelKey": "Ui.UserChoice.Answers",
        "ValueKind": "Collection",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "user-choice-options",
        "Constraints": {
          "Minimum": null,
          "Maximum": null,
          "MinimumLength": 2,
          "MaximumLength": 18,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": false,
        "Order": 4,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "UserChoiceSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.description",
      "name": "description",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.desktopIndex",
      "name": "desktopIndex",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.options",
      "name": "options",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.options.id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.options.label",
      "name": "label",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.options.value",
      "name": "value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.question",
      "name": "question",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.title",
      "name": "title",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "UserChoiceResult",
    "DisplayName": "UserChoiceResult",
    "Properties": [
      {
        "Name": "SelectedOptionId",
        "DisplayName": "Selected Option Id",
        "DataType": "Enum",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": "UserChoiceResult:documentation-user_choice",
        "EnumValues": [
          "example-option-0",
          "example-option-1"
        ],
        "Id": "selected_option_id",
        "EnumDisplayNames": {
          "example-option-0": "",
          "example-option-1": ""
        },
        "StableId": "selected_option_id"
      },
      {
        "Name": "SelectedLabel",
        "DisplayName": "Selected Label",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "selected_label",
        "EnumDisplayNames": null,
        "StableId": "selected_label"
      },
      {
        "Name": "SelectedValue",
        "DisplayName": "Selected Value",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "selected_value",
        "EnumDisplayNames": null,
        "StableId": "selected_value"
      },
      {
        "Name": "SelectedIndex",
        "DisplayName": "Selected Index",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "selected_index",
        "EnumDisplayNames": null,
        "StableId": "selected_index"
      },
      {
        "Name": "WasCancelled",
        "DisplayName": "Was Cancelled",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "was_cancelled",
        "EnumDisplayNames": null,
        "StableId": "was_cancelled"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "SelectedOptionId",
        "DisplayName": "Selected Option Id",
        "Property": {
          "Name": "SelectedOptionId",
          "DisplayName": "Selected Option Id",
          "DataType": "Enum",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": "UserChoiceResult:documentation-user_choice",
          "EnumValues": [
            "example-option-0",
            "example-option-1"
          ],
          "Id": "selected_option_id",
          "EnumDisplayNames": {
            "example-option-0": "",
            "example-option-1": ""
          },
          "StableId": "selected_option_id"
        },
        "Children": []
      },
      {
        "Segment": "SelectedLabel",
        "DisplayName": "Selected Label",
        "Property": {
          "Name": "SelectedLabel",
          "DisplayName": "Selected Label",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "selected_label",
          "EnumDisplayNames": null,
          "StableId": "selected_label"
        },
        "Children": []
      },
      {
        "Segment": "SelectedValue",
        "DisplayName": "Selected Value",
        "Property": {
          "Name": "SelectedValue",
          "DisplayName": "Selected Value",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "selected_value",
          "EnumDisplayNames": null,
          "StableId": "selected_value"
        },
        "Children": []
      },
      {
        "Segment": "SelectedIndex",
        "DisplayName": "Selected Index",
        "Property": {
          "Name": "SelectedIndex",
          "DisplayName": "Selected Index",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "selected_index",
          "EnumDisplayNames": null,
          "StableId": "selected_index"
        },
        "Children": []
      },
      {
        "Segment": "WasCancelled",
        "DisplayName": "Was Cancelled",
        "Property": {
          "Name": "WasCancelled",
          "DisplayName": "Was Cancelled",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "was_cancelled",
          "EnumDisplayNames": null,
          "StableId": "was_cancelled"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "user_choice",
  "settings": {
    "title": "",
    "question": "",
    "description": "",
    "desktopIndex": 0,
    "options": [
      {
        "id": "c4de30c6-f016-2700-00a7-c656a7abcf11",
        "label": "",
        "value": ""
      },
      {
        "id": "5c562fe4-9360-401a-e540-39a24df5f2aa",
        "label": "",
        "value": ""
      }
    ]
  },
  "id": "50a7ffc1-3f4c-06a1-4d31-b5461fe898cb",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Video erstellen

ID: video_creation
Website: /doku/steps/video_creation/

Abbildung: [Detailansicht: Video erstellen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-video-creation.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. Speicherpfad: Ordner für die Bild-/Videoausgabe. Er muss auf dem Zielrechner erreichbar und beschreibbar sein.
3. Dateiname: Dateiname der Bild-/Videoausgabe. Wähle ein zur Ausgabe passendes Format und prüfe vorhandene Dateien am Ziel.
4. Einblendungen: Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

In einem wiederholten Job frische Bildschirmbilder erfassen und an denselben Video-Step mit gleichem Ausgabeziel weiterreichen; den Job regulär beenden.

### field.file_name

Dateiname der Bild-/Videoausgabe. Wähle ein zur Ausgabe passendes Format und prüfe vorhandene Dateien am Ziel.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### field.save_path

Ordner für die Bild-/Videoausgabe. Er muss auf dem Zielrechner erreichbar und beschreibbar sein.

### input.detections

Einblendungsquellen mit Geometrie. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.text

Text beziehungsweise darstellbarer Wert. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Alle kompatiblen Listeneinträge werden verarbeitet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Verbinde einen Bildstrom mit Ausgabeordner, Dateiname, Bildrate und optionalen Einblendungen. Die Aufnahme gehört zum produzierenden Step; ihre Finalisierung wird diesem Step im Verlauf zugeordnet. Ein einzelner Bild-Step liefert allein noch keinen fortlaufenden Film: wiederhole Aufnahme und Video-Step passend zum gewünschten Ablauf.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.detections_source

Kompatible Erkennungs-, Rechteck- oder Punktquelle für die Einblendung. Der Eingabevertrag beschreibt die Verarbeitung mehrerer Werte.

### schema.settings.detections_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.detections_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.detections_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.detections_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.detections_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.detections_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.detections_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.detections_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.detections_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.file_name

Dateiname der Bild-/Videoausgabe. Wähle ein zur Ausgabe passendes Format und prüfe vorhandene Dateien am Ziel.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay

Zusammengesetzte Darstellungseinstellungen für Erkennungen und Text. Die zugrunde liegenden Ergebnisse müssen vorher erzeugt worden sein.

### schema.settings.overlay.detection_results

Liste referenzierter Erkennungsergebnisse für die Einblendung.

### schema.settings.overlay.detection_results.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.detection_results.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.detection_results.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.detection_results.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.detection_results.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.detection_results.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.detection_results.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.detection_results.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.detection_results.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.overlay.text_results

Liste referenzierter Text-/Anzeige-Werte für die Einblendung.

### schema.settings.overlay.text_results.clear_on_job_end

Entfernt die durch diesen Job erzeugte Anzeige beim regulären Aufräumen.

### schema.settings.overlay.text_results.desktop_index

Nullbasierter Zielmonitor der Desktop-Anzeige oder Benutzerauswahl. Prüfe ihn auf dem Zielrechner.

### schema.settings.overlay.text_results.duration_ms

Anzeigedauer in Millisekunden. Beachte die vom Editor angebotenen Grenzen und die zusätzliche Entfernung beim Job-Ende.

### schema.settings.overlay.text_results.font_color

Hex-Farbwert der Textanzeige. Wähle einen ausreichenden Kontrast zum Hintergrund.

### schema.settings.overlay.text_results.font_size

Schriftgröße der Textanzeige in Punkten. Prüfe Lesbarkeit auf dem tatsächlichen Monitor und dessen Skalierung.

### schema.settings.overlay.text_results.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.settings.overlay.text_results.offset_x

Zusätzlicher horizontaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.offset_y

Zusätzlicher vertikaler Versatz in Pixeln relativ zum ermittelten Punkt, Referenzpunkt oder Anzeigeursprung.

### schema.settings.overlay.text_results.opacity

Deckkraft als Anteil von 0 bis 1, auch im referenzierten localValues-Wert. 1 bedeutet vollständig sichtbar, 0 unsichtbar. Der Editor zeigt Prozent an.

### schema.settings.overlay.text_results.result

Typisierte Ergebnisreferenz für den betreffenden Wert; Quelle und Ergebnis-ID auswählen und die Ausführungsreihenfolge beachten.

### schema.settings.overlay.text_results.result.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.overlay.text_results.result.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.overlay.text_results.result.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.overlay.text_results.result.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.overlay.text_results.result.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.overlay.text_results.result.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.overlay.text_results.result.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.overlay.text_results.result.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.overlay.text_results.result.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.save_path

Ordner für die Bild-/Videoausgabe. Er muss auf dem Zielrechner erreichbar und beschreibbar sein.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "video_creation",
  "name": "Video erstellen",
  "description": "Speichert den aktuellen Bildstrom als Videodatei.",
  "category": "AnzeigenSpeichern",
  "uiFieldIds": [
    "image_source",
    "save_path",
    "file_name",
    "overlay"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "save_path",
      "name": "Speicherpfad",
      "descriptor": {
        "Id": "save_path",
        "LabelKey": "Ui.Step.Settings.SavePath",
        "ValueKind": "DirectoryPath",
        "Required": true,
        "DefaultValue": "",
        "DescriptionKey": null,
        "EditorHint": "directory-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": {
          "SuggestedDirectory": "Videos",
          "SuggestedSubfolder": "DesktopAutomation"
        },
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "file_name",
      "name": "Dateiname",
      "descriptor": {
        "Id": "file_name",
        "LabelKey": "Ui.Step.Settings.FileName",
        "ValueKind": "Text",
        "Required": true,
        "DefaultValue": "output.mp4",
        "DescriptionKey": null,
        "EditorHint": null,
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "overlay",
      "name": "Einblendungen",
      "descriptor": {
        "Id": "overlay",
        "LabelKey": "Ui.Step.Settings.Overlays",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "detection_results": [],
          "text_results": []
        },
        "DescriptionKey": null,
        "EditorHint": "visual-overlay",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": {
          "DetectionInputContractId": "detections",
          "TextInputContractId": "text",
          "SupportsDesktopPlacement": false
        },
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "VideoCreationSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source",
      "name": "detections_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.detections_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.detections_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.detections_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.file_name",
      "name": "file_name",
      "type": "String",
      "options": [],
      "defaultValue": "output.mp4"
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay",
      "name": "overlay",
      "type": "VisualOverlaySettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results",
      "name": "detection_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.detection_results.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results",
      "name": "text_results",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.clear_on_job_end",
      "name": "clear_on_job_end",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.desktop_index",
      "name": "desktop_index",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.duration_ms",
      "name": "duration_ms",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_color",
      "name": "font_color",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.font_size",
      "name": "font_size",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.id",
      "name": "id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_x",
      "name": "offset_x",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.offset_y",
      "name": "offset_y",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.opacity",
      "name": "opacity",
      "type": "Single",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result",
      "name": "result",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.overlay.text_results.result.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.save_path",
      "name": "save_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "detections",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "text",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "AllValues",
      "AcceptedShapes": [
        {
          "ValueKind": "Text",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Boolean",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Integer",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Number",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "DateTime",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Color",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "FilePath",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Enum",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        },
        {
          "ValueKind": "Point",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "Detection",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        },
        {
          "ValueKind": "ProcessReference",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [
        "secret"
      ],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "VideoCreationResult",
    "DisplayName": "VideoCreationResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "video_creation",
  "settings": {
    "save_path": "",
    "file_name": "output.mp4",
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "detections_source": {
      "provider_id": "",
      "source_id": ""
    },
    "overlay": {
      "detection_results": [],
      "text_results": []
    }
  },
  "id": "2d39ad30-66ba-a116-67f8-f7ef96c0f247",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Windows-Einstellung ändern

ID: windows_setting_change
Website: /doku/steps/windows_setting_change/

Abbildung: [Detailansicht: Windows-Einstellung ändern. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-windows-setting-change.detail.png)

1. Windows-Funktion: Windows-Funktion und dazugehörige Parameter im Editor. Wähle eine Funktion, die die gewünschte Abfrage/Änderung tatsächlich unterstützt.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

audio.mute auswählen und state auf on setzen; previous_value für die spätere Wiederherstellung lesen.

### field.capability

Windows-Funktion und dazugehörige Parameter im Editor. Wähle eine Funktion, die die gewünschte Abfrage/Änderung tatsächlich unterstützt.

### purpose

Wähle eine Windows-Funktion, die Einstellungsänderungen unterstützt, und ergänze deren Parameter. Der Step meldet vorherigen und angewendeten Wert sowie Erfolg oder Fehler. Administratorrechte und gerätespezifische Voraussetzungen stehen auf der jeweiligen Funktionsseite; sie können nicht durch eine JSON-Einstellung ersetzt werden.

### result.windows_setting.applied_value

Vom Windows-Provider gemeldeter angewendeter Wert nach der Änderung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.previous_value

Vor der Windows-Änderung beobachteter Wert. Für eine Wiederherstellung nur mit derselben Funktion und kompatibler Darstellung verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.restart_required

Ob die abgefragte Funktion beziehungsweise Windows Update einen Neustartbedarf meldet. Einzelwert dieses Ergebnisses.

### result.windows_setting.setting_id

Kennung der geänderten Windows-Funktion. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.windows_setting.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.windows_setting.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.windows_setting.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.windows_setting.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.windows_setting.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.parameters

Benannte Parameter der Windows-Funktion beziehungsweise bereinigte Diagnoseparameter im Log. Parameternamen sind stabil und keine UI-Labels.

### schema.settings.setting_id

Stabile Kennung der zu ändernden Windows-Einstellung. Ihre Parameter sind im Windows-Funktionskatalog dokumentiert.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_setting_change",
  "name": "Windows-Einstellung ändern",
  "description": "Ändert eine ausgewählte Windows-Einstellung und liefert den vorherigen sowie den angewendeten Wert.",
  "category": "WindowsSystem",
  "uiFieldIds": [
    "capability"
  ],
  "fields": [
    {
      "id": "capability",
      "name": "Windows-Funktion",
      "descriptor": {
        "Id": "capability",
        "LabelKey": "Ui.Windows.Capability",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "capability_id": "audio.master_volume",
          "parameters": {
            "value": "50"
          }
        },
        "DescriptionKey": null,
        "EditorHint": "windows-capability-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": {
          "Mode": "SettingChange"
        },
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "WindowsSettingChangeSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.parameters",
      "name": "parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.setting_id",
      "name": "setting_id",
      "type": "String",
      "options": [],
      "defaultValue": "audio.master_volume"
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "WindowsSettingChangeResult",
    "DisplayName": "WindowsSettingChangeResult",
    "Properties": [
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "windows_setting.status",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.status"
      },
      {
        "Name": "SettingId",
        "DisplayName": "Einstellung",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.setting_id",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.setting_id"
      },
      {
        "Name": "PreviousValue",
        "DisplayName": "Vorheriger Wert",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.previous_value",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.previous_value"
      },
      {
        "Name": "AppliedValue",
        "DisplayName": "Angewendeter Wert",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.applied_value",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.applied_value"
      },
      {
        "Name": "RestartRequired",
        "DisplayName": "Neustart erforderlich",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.restart_required",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.restart_required"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Fehlercode",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.error_code",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.error_code"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "windows_setting.status",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.status"
        },
        "Children": []
      },
      {
        "Segment": "SettingId",
        "DisplayName": "Einstellung",
        "Property": {
          "Name": "SettingId",
          "DisplayName": "Einstellung",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.setting_id",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.setting_id"
        },
        "Children": []
      },
      {
        "Segment": "PreviousValue",
        "DisplayName": "Vorheriger Wert",
        "Property": {
          "Name": "PreviousValue",
          "DisplayName": "Vorheriger Wert",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.previous_value",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.previous_value"
        },
        "Children": []
      },
      {
        "Segment": "AppliedValue",
        "DisplayName": "Angewendeter Wert",
        "Property": {
          "Name": "AppliedValue",
          "DisplayName": "Angewendeter Wert",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.applied_value",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.applied_value"
        },
        "Children": []
      },
      {
        "Segment": "RestartRequired",
        "DisplayName": "Neustart erforderlich",
        "Property": {
          "Name": "RestartRequired",
          "DisplayName": "Neustart erforderlich",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.restart_required",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.restart_required"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Fehlercode",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Fehlercode",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.error_code",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.error_code"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "windows_setting_change",
  "settings": {
    "setting_id": "audio.master_volume",
    "parameters": {}
  },
  "id": "cdf47e67-4f34-aa28-2720-e262a0db31d5",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Windows-Zustand abfragen

ID: windows_state_query
Website: /doku/steps/windows_state_query/

Abbildung: [Detailansicht: Windows-Zustand abfragen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-windows-state-query.detail.png)

1. Windows-Funktion: Windows-Funktion und dazugehörige Parameter im Editor. Wähle eine Funktion, die die gewünschte Abfrage/Änderung tatsächlich unterstützt.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

process.running mit name=notepad abfragen und is_running als Bedingung verwenden.

### field.capability

Windows-Funktion und dazugehörige Parameter im Editor. Wähle eine Funktion, die die gewünschte Abfrage/Änderung tatsächlich unterstützt.

### purpose

Wähle eine Windows-Funktion mit Zustandsabfrage. Ihr konkreter Ergebnisvertrag bestimmt die verfügbaren Werte; ein Wechsel der Funktion kann bestehende nachfolgende Referenzen ungültig machen. Nutze beispielsweise Netzwerkstatus, Leerlauf oder laufende Prozesse für eine Bedingung.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.connection_type

Art der ermittelten Netzwerkverbindung, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.connection_type.option.Ethernet

Kabelgebundene Ethernet-Verbindung.

### result.connection_type.option.Mobile

Mobilfunkverbindung.

### result.connection_type.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.connection_type.option.Virtual

Virtueller Netzwerkadapter beziehungsweise virtuelle Verbindung.

### result.connection_type.option.WiFi

Drahtlose WLAN-Verbindung.

### result.connectivity

Vom Netzwerkprovider gemeldete Verbindungsqualität beziehungsweise Konnektivität. Einzelwert dieses Ergebnisses.

### result.connectivity.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.connectivity.option.Internet

Windows meldet Internetkonnektivität.

### result.connectivity.option.LocalNetwork

Windows meldet lokale Netzwerkkonnektivität ohne belegten Internetzugang.

### result.connectivity.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.parameters

Benannte Parameter der Windows-Funktion beziehungsweise bereinigte Diagnoseparameter im Log. Parameternamen sind stabil und keine UI-Labels.

### schema.settings.query_type

Stabile Kennung der Windows-Zustandsabfrage. Nach einem Wechsel nachfolgende Ergebnisbindungen erneut prüfen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_state_query",
  "name": "Windows-Zustand abfragen",
  "description": "Fragt einen aktuellen Windows-Zustand ab und stellt das Ergebnis nachfolgenden Steps bereit.",
  "category": "WindowsSystem",
  "uiFieldIds": [
    "capability"
  ],
  "fields": [
    {
      "id": "capability",
      "name": "Windows-Funktion",
      "descriptor": {
        "Id": "capability",
        "LabelKey": "Ui.Windows.Capability",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "capability_id": "network.connectivity",
          "parameters": {}
        },
        "DescriptionKey": null,
        "EditorHint": "windows-capability-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": {
          "Mode": "StateQuery"
        },
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "WindowsStateQuerySettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.parameters",
      "name": "parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.query_type",
      "name": "query_type",
      "type": "String",
      "options": [],
      "defaultValue": "network.connectivity"
    }
  ],
  "inputs": [],
  "result": {
    "TypeName": "NetworkConnectivityQueryResult",
    "DisplayName": "NetworkConnectivityQueryResult",
    "Properties": [
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Connectivity",
        "DisplayName": "Connectivity",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectivity",
        "EnumValues": [
          "Unknown",
          "Disconnected",
          "LocalNetwork",
          "Internet"
        ],
        "Id": "connectivity",
        "EnumDisplayNames": null,
        "StableId": "connectivity"
      },
      {
        "Name": "ConnectionType",
        "DisplayName": "Connection Type",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectionType",
        "EnumValues": [
          "Unknown",
          "Ethernet",
          "WiFi",
          "Mobile",
          "Virtual"
        ],
        "Id": "connection_type",
        "EnumDisplayNames": null,
        "StableId": "connection_type"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Connectivity",
        "DisplayName": "Connectivity",
        "Property": {
          "Name": "Connectivity",
          "DisplayName": "Connectivity",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectivity",
          "EnumValues": [
            "Unknown",
            "Disconnected",
            "LocalNetwork",
            "Internet"
          ],
          "Id": "connectivity",
          "EnumDisplayNames": null,
          "StableId": "connectivity"
        },
        "Children": []
      },
      {
        "Segment": "ConnectionType",
        "DisplayName": "Connection Type",
        "Property": {
          "Name": "ConnectionType",
          "DisplayName": "Connection Type",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectionType",
          "EnumValues": [
            "Unknown",
            "Ethernet",
            "WiFi",
            "Mobile",
            "Virtual"
          ],
          "Id": "connection_type",
          "EnumDisplayNames": null,
          "StableId": "connection_type"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "windows_state_query",
  "settings": {
    "query_type": "network.connectivity",
    "parameters": {}
  },
  "id": "6e1150cf-6454-7283-17b2-4a12a6c84fb9",
  "inputs": {},
  "is_enabled": true
}
```

## Steps: Objekte erkennen

ID: yolo_detection
Website: /doku/steps/yolo_detection/

Abbildung: [Detailansicht: Objekte erkennen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion. Zusammengestellte Ausschnitte echter Einstellungsfelder mit Beispielwerten; die Nummer markiert Beschriftung und Eingabe gemeinsam.](/ref-step-yolo-detection.detail.png)

1. Bildquelle: Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.
2. YOLO-Modell: Wähle zuerst ein auf dem Zielrechner verfügbares YOLO-Modell und danach die gewünschte Objektklasse aus dessen Klassenliste. Das Modell bestimmt, welche Objekte erkannt werden können; eine freie Klassenbezeichnung ersetzt keinen Modell-Eintrag.
3. Bildbereich (ROI): Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.
4. Konfidenz (%): Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.
### errors

Prüfe die in dieser Referenz beschriebenen aktiven Pflichtfelder, kompatible Wertequellen und die Voraussetzungen auf dem Zielrechner. Ungültige Quellen oder Typen sind Fehler; eine gültige, aber nicht verfügbare optionale Quelle kann gemäß Eingabevertrag zum Überspringen führen. Ein Fehler beendet die Start-/Hauptphase; die vorgesehene Endphase wird zum Aufräumen behandelt. Der Verlauf zeigt den tatsächlich belegten Status.

### example

Ein kompatibles installiertes Modell auswählen und Erkennungen einer Bildschirmaufnahme im Vorschaufenster einblenden.

### field.confidence_threshold

Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.

### field.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### field.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### field.yolo_selection

Wähle zuerst ein auf dem Zielrechner verfügbares YOLO-Modell und danach die gewünschte Objektklasse aus dessen Klassenliste. Das Modell bestimmt, welche Objekte erkannt werden können; eine freie Klassenbezeichnung ersetzt keinen Modell-Eintrag.

### input.dynamicRoi

dynamischer Suchbereich. Eine gültige, aber noch nicht verfügbare optionale Step-Quelle kann den Verbraucher mit NoInput überspringen; malformed Referenzen bleiben Fehler. Bei kompatiblen Listen wird der erste Wert verwendet. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### input.image

Bildobjekt einer Aufnahme. Fehlende erforderliche Werte führen zum Fehler. Es wird kein beliebiges Listenelement ausgewählt. Akzeptierte Typen und Anbieter stehen in den Vertragsspalten; unbegrenzte Anbieterwahl bedeutet weiterhin Typprüfung.

### purpose

Wähle ein installiertes YOLO-Modell, Bildquelle und Mindestkonfidenz. Das Modell liefert erkannte Klassen, Rechtecke und Punkte. Seine Klassen und Genauigkeit hängen vom gewählten Modell ab; found und all_detections beschreiben die tatsächlichen Treffer dieses Laufs.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### schema.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### schema.inputs

Zuordnung von UI-Feld-ID zu typisierter Wertequelle. Bei vorhandenen inputs serialisiert der kanonische Job-Serializer settings nicht zusätzlich. Leere inputs mit settings bleiben als Legacy-/direkte Konfiguration lesbar.

### schema.inputs.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.inputs.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.inputs.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.inputs.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.inputs.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.inputs.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.inputs.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.inputs.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.inputs.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.is_enabled

true führt den Step aus; false deaktiviert ihn. Blockmarker können in der UI nicht beliebig deaktiviert werden, weil ihre Struktur erhalten bleiben muss.

### schema.settings

Direkte beziehungsweise ältere Step-Konfiguration. Für neue referenzbasierte Dateien inputs und localValues verwenden; die UI migriert gespeicherte Literalwerte in lokale Quellen.

### schema.settings.class_name

Name einer vom gewählten Modell gelieferten Klasse. Verwende vorhandene Modellklassen statt frei erfundener Objektbezeichnungen.

### schema.settings.confidence_threshold

Mindestkonfidenz als Anteil von 0 bis 1, auch im referenzierten localValues-Wert: 0.9 bedeutet 90 %. Der Editor zeigt Prozent an.

### schema.settings.dynamic_roi_source

Kompatible dynamische Rechteckquelle. Eine spätere DynamicRoi-Quelle darf Feedback für den nächsten Durchlauf liefern; dies ist eine besondere Ausnahme von normalen Vorwärtsreferenzen.

### schema.settings.dynamic_roi_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.dynamic_roi_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.dynamic_roi_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.dynamic_roi_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.dynamic_roi_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.dynamic_roi_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.dynamic_roi_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.dynamic_roi_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.dynamic_roi_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.enable_roi

Aktiviert den direkt konfigurierten Suchbereich. Ohne Aktivierung wird der Standardbereich der Quelle verwendet, sofern keine dynamische ROI-Quelle greift.

### schema.settings.image_source

Bildobjekt eines Aufnahme-Steps. Ein Dateipfad als Text ist nicht automatisch eine kompatible Bildquelle.

### schema.settings.image_source.items

Geordnete Unterbindungen einer Liste. Die Reihenfolge ist Teil der Eingabe; Elemente müssen das Listenelement-Schema erfüllen.

### schema.settings.image_source.members

Benannte Unterbindungen eines strukturierten Werts. Jeder Schlüssel ist eine stabile Mitglied-ID des Feldschemas; Unterbindungen können Werte einer Basisquelle gezielt überschreiben.

### schema.settings.image_source.property_id

Stabile Ergebnis-ID einer älteren Step-Referenz. Neue Dateien kodieren sie in source_id; nicht mit einem CLR-Propertynamen oder dem UI-Label verwechseln.

### schema.settings.image_source.property_path

Älterer Pfad zu einem Ergebnis-Unterwert. Bestehende Dateien bleiben lesbar; neue Referenzen verwenden stabile Ergebnis-IDs und gegebenenfalls value_path.

### schema.settings.image_source.provider_id

Anbieter der Wertequelle: local_value, job_variable, step_result oder secret. Ein Quellwert benötigt zusätzlich source_id und muss zum Eingabetyp passen.

### schema.settings.image_source.schema_id

Versionierte Form eines zusammengesetzten Eingabewerts. Sie gehört zum Bindungsbaum, nicht als frei erfundener Schlüssel in die Variable. Übernimm die für dieses Feld exportierte Schema-ID.

### schema.settings.image_source.source_id

Anbieterbezogene Identität. Bei step_result: v1/<URI-kodierte-Step-ID>/<URI-kodierte-stabile-Ergebnis-ID>; bei lokalen Werten und Jobvariablen deren GUID. Dies ist nicht nur die rohe Step-ID.

### schema.settings.image_source.source_step_id

Kompatibilitätsfeld älterer Referenzen. Neue Referenzen verwenden provider_id=step_result und die versionierte source_id.

### schema.settings.image_source.value_path

Optionaler Pfad unterhalb einer Anbieterquelle, zum Beispiel zu einem typisierten Objektmitglied. Er ändert den Quellanbieter nicht; der ausgewählte Unterwert muss kompatibel sein.

### schema.settings.model

Modellkennung beziehungsweise Modellwahl der betreffenden Erkennung/Vorhersage. Sie bestimmt die unterstützten Ausgaben und muss auf dem Zielrechner verfügbar sein.

### schema.settings.roi

Suchrechteck in Pixeln relativ zur Bildquelle. x/y bestimmen die linke obere Ecke, width/height die Größe; es muss zur Quelle passen.

### schema.settings.roi.Empty

Vom serialisierten Geometrieobjekt angebotener Leerzustand. Kein eigener ROI-Schalter: den Suchbereich mit enable_roi beziehungsweise roi.enabled und den Koordinaten konfigurieren; dieses abgeleitete Mitglied nicht als Eingabequelle verwenden.

### schema.settings.roi.height

Höhe des Rechtecks oder Bildformats in Pixeln. Negative Größen sind kein gültiger Suchbereich.

### schema.settings.roi.width

Breite des Rechtecks oder Bildformats in Pixeln. Zusammen mit Höhe und Ursprung ergibt sie die räumliche Größe.

### schema.settings.roi.x

Horizontale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate X = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### schema.settings.roi.y

Vertikale Position der linken oberen Ecke des Suchrechtecks in Pixeln relativ zum Quellbild. Beispiel 100 startet den Bereich bei Bildkoordinate Y = 100; Bildschirm- und Bildkoordinaten können voneinander abweichen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "yolo_detection",
  "name": "Objekte erkennen",
  "description": "Erkennt Objekte mithilfe eines YOLO-Modells und speichert ihre Position.",
  "category": "BildAuswerten",
  "uiFieldIds": [
    "image_source",
    "yolo_selection",
    "roi",
    "confidence_threshold"
  ],
  "fields": [
    {
      "id": "image_source",
      "name": "Bildquelle",
      "descriptor": {
        "Id": "image_source",
        "LabelKey": "Ui.Step.Settings.ImageSource",
        "ValueKind": "ResultBinding",
        "Required": true,
        "DefaultValue": null,
        "DescriptionKey": null,
        "EditorHint": "value-reference-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 0,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": "image",
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "yolo_selection",
      "name": "YOLO-Modell",
      "descriptor": {
        "Id": "yolo_selection",
        "LabelKey": "Ui.Step.Settings.Model",
        "ValueKind": "Object",
        "Required": true,
        "DefaultValue": {
          "model": "",
          "class_name": ""
        },
        "DescriptionKey": null,
        "EditorHint": "yolo-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": false,
        "Order": 1,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": {
          "RecommendedConfidenceTargetFieldId": "confidence_threshold"
        },
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "roi",
      "name": "Bildbereich (ROI)",
      "descriptor": {
        "Id": "roi",
        "LabelKey": "Ui.Step.Settings.ROI",
        "ValueKind": "Object",
        "Required": false,
        "DefaultValue": {
          "enabled": false,
          "x": 0,
          "y": 0,
          "width": 0,
          "height": 0,
          "dynamic_source": null
        },
        "DescriptionKey": null,
        "EditorHint": "roi-picker",
        "Constraints": null,
        "Width": "Full",
        "Advanced": true,
        "Order": 2,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": {
          "DynamicInputContractId": "dynamicRoi"
        },
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    },
    {
      "id": "confidence_threshold",
      "name": "Konfidenz (%)",
      "descriptor": {
        "Id": "confidence_threshold",
        "LabelKey": "Ui.Step.Settings.ConfidencePercent",
        "ValueKind": "Number",
        "Required": false,
        "DefaultValue": 0.5,
        "DescriptionKey": null,
        "EditorHint": "percentage",
        "Constraints": {
          "Minimum": 0,
          "Maximum": 1,
          "MinimumLength": null,
          "MaximumLength": null,
          "AllowedValues": null
        },
        "Width": "Full",
        "Advanced": true,
        "Order": 3,
        "VisibleWhen": null,
        "Options": null,
        "InputContractId": null,
        "VisibleWhenAll": null,
        "VisualOverlayOptions": null,
        "DirectoryPickerOptions": null,
        "FilePickerOptions": null,
        "RoiPickerOptions": null,
        "YoloPickerOptions": null,
        "WindowsCapabilityPickerOptions": null,
        "ScreenPointPickerOptions": null,
        "AllowsDirectValue": null,
        "MonitorDeviceNameFieldId": null
      }
    }
  ],
  "schema": [
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs",
      "name": "inputs",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "inputs.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "is_enabled",
      "name": "is_enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "settings",
      "name": "settings",
      "type": "YOLODetectionStepSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.class_name",
      "name": "class_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.confidence_threshold",
      "name": "confidence_threshold",
      "type": "Single",
      "options": [],
      "defaultValue": 0.5
    },
    {
      "id": "settings.dynamic_roi_source",
      "name": "dynamic_roi_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.dynamic_roi_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.dynamic_roi_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.enable_roi",
      "name": "enable_roi",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "settings.image_source",
      "name": "image_source",
      "type": "ResultBinding",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.items",
      "name": "items",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_id",
      "name": "property_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.property_path",
      "name": "property_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_step_id",
      "name": "source_step_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.members",
      "name": "members",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.provider_id",
      "name": "provider_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.schema_id",
      "name": "schema_id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.image_source.source_id",
      "name": "source_id",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.image_source.value_path",
      "name": "value_path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "settings.model",
      "name": "model",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "settings.roi",
      "name": "roi",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.Empty",
      "name": "Empty",
      "type": "PixelRegion",
      "options": [],
      "defaultValue": {
        "x": 0,
        "y": 0,
        "width": 0,
        "height": 0
      }
    },
    {
      "id": "settings.roi.height",
      "name": "height",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.width",
      "name": "width",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.x",
      "name": "x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "settings.roi.y",
      "name": "y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    }
  ],
  "inputs": [
    {
      "Key": "image",
      "Required": true,
      "MissingValuePolicy": "FailStep",
      "CollectionConsumption": "NotApplicable",
      "AcceptedShapes": [
        {
          "ValueKind": "Image",
          "Cardinalities": [
            "Single",
            "OptionalSingle"
          ]
        }
      ],
      "AllowedProviderIds": [
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    },
    {
      "Key": "dynamicRoi",
      "Required": false,
      "MissingValuePolicy": "SkipStep",
      "CollectionConsumption": "FirstValue",
      "AcceptedShapes": [
        {
          "ValueKind": "Rectangle",
          "Cardinalities": [
            "Single",
            "OptionalSingle",
            "Collection"
          ]
        }
      ],
      "AllowedProviderIds": [
        "job_variable",
        "step_result"
      ],
      "LegacyAllowedProviderIds": [],
      "AllowsDirectValue": false,
      "LegacyAcceptedShapes": []
    }
  ],
  "result": {
    "TypeName": "YOLODetectionResult",
    "DisplayName": "YOLODetectionResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "yolo_detection",
  "settings": {
    "model": "",
    "confidence_threshold": 0.5,
    "class_name": "",
    "roi": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "enable_roi": false,
    "image_source": {
      "provider_id": "",
      "source_id": ""
    },
    "dynamic_roi_source": {
      "provider_id": "",
      "source_id": ""
    }
  },
  "id": "84d7921e-2d7a-d7f3-ad05-8f65a32352c8",
  "inputs": {},
  "is_enabled": true
}
```

## Automationen: Datei- oder Ordnerereignis

ID: file_system_event
Website: /doku/automationen/file_system_event/

Abbildung: [Ordnerüberwachung mit Beispieldateipfad und Filter für Textdateien. Der Beispielpfad muss vor Verwendung angepasst werden.](/automation-ordner.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Ereignis: Wählt die Art der Änderung aus, auf die der Trigger reagiert.
3. Dateifilter: Schränkt die überwachten Namen ein, beispielsweise auf *.txt.
4. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
5. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
6. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Sicherungsbeispiel: Created und *.txt im Rechnungsordner starten den Rückfrage-Job.

### field.directory_path

Vorhandener beobachteter Ordner des Datei-Triggers. Die App benötigt Zugriff auf ihn; ein nicht vorhandener Ordner ist keine gültige Automation.

### field.event_kind

Beobachtetes Fenster-, Datei- oder Systemereignis. Wähle nur die Optionen dieses Trigger-Typs.

### field.event_kind.option.Changed

Beobachteter Eintrag wurde geändert.

### field.event_kind.option.Created

Datei-/Ordnereintrag wurde erstellt.

### field.event_kind.option.Deleted

Beobachteter Eintrag wurde entfernt.

### field.event_kind.option.Renamed

Beobachteter Eintrag wurde umbenannt.

### field.filter

Optionales Dateimuster wie *.txt. Beim Ordner-Trigger begrenzt es die beobachteten Einträge; bei Dateiaktionen gilt es nur für die dafür angebotene Aktion.

### field.include_subdirectories

Beobachtet auch Unterordner unterhalb des angegebenen Pfads. Eine größere Baumstruktur kann mehr Ereignisse erzeugen.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.wait_until_ready

Wartet bei unterstützten Datei-Ereignissen auf Verwendbarkeit der Datei, bevor der Zielablauf gestartet wird. Es ersetzt keine Zugriffsrechte.

### purpose

Beobachtet einen vorhandenen Ordner mit Dateimuster und optionalen Unterordnern. Created, Changed, Deleted oder Renamed bestimmen die Ereignisart. Dateisystemereignisse können mehrfach auftreten; Readiness und RunPolicy begrenzen Starts, ersetzen aber keine fachliche Deduplizierung.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "file_system_event",
  "name": "Datei- oder Ordnerereignis",
  "fields": [
    {
      "id": "directory_path",
      "name": "directory_path",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "event_kind",
      "name": "event_kind",
      "type": "FileSystemAutomationEventKind",
      "options": [
        "Created",
        "Changed",
        "Deleted",
        "Renamed"
      ],
      "defaultValue": "Created"
    },
    {
      "id": "filter",
      "name": "filter",
      "type": "String",
      "options": [],
      "defaultValue": "*.*"
    },
    {
      "id": "include_subdirectories",
      "name": "include_subdirectories",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "FileSystemEvent"
    },
    {
      "id": "wait_until_ready",
      "name": "wait_until_ready",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "file_system_event",
  "Kind": "FileSystemEvent",
  "event_kind": "Created",
  "directory_path": "",
  "filter": "*.*",
  "include_subdirectories": false,
  "wait_until_ready": true,
  "kind": "FileSystemEvent"
}
```

## Automationen: Hotkey

ID: hotkey
Website: /doku/automationen/hotkey/

Abbildung: [Strg+Alt+U als Auslöser für den Job Arbeitsunterlagen vorbereiten.](/automation-hotkey.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Hotkey: Die angezeigte Tastenkombination löst die Automation aus.
3. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
4. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
5. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Unterlagenbeispiel: Strg+Alt+U startet den ausgewählten Job.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.modifiers

Bitmaske der Modifikatortasten: None=0, Alt=1, Control=2, Shift=4, Windows=8; kombinierte Werte addieren, etwa 3 für Strg+Alt.

### field.modifiers.option.Alt

Alt-Modifikator; numerische Bitmaske 1.

### field.modifiers.option.Control

Strg-Modifikator; numerische Bitmaske 2.

### field.modifiers.option.None

Keine Modifikatortaste; numerische Bitmaske 0.

### field.modifiers.option.Shift

Umschalt-Modifikator; numerische Bitmaske 4.

### field.modifiers.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### 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.

### 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.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "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
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "hotkey",
  "Kind": "Hotkey",
  "modifiers": 0,
  "virtual_key_code": 0,
  "debounce": "00:00:00",
  "delay_after_event": "00:00:00",
  "kind": "Hotkey"
}
```

## Automationen: Intervall

ID: interval
Website: /doku/automationen/interval/

Abbildung: [Detailansicht: Intervall. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-interval.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Intervall: Abstand zwischen zwei geplanten Ausführungen; Zahl und Einheit gehören zusammen.
3. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
4. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
5. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### field.interval

Positiver Wiederholungsabstand als TimeSpan-Text, zum Beispiel 00:15:00 für fünfzehn Minuten.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.start_immediately

Startet die Intervall-Automation beim Aktivieren unmittelbar, bevor das erste Intervall abgewartet wird.

### purpose

Startet das Ziel nach einem positiven Wiederholungsintervall. start_immediately entscheidet über den ersten unmittelbaren Start beim Aktivieren. Prüfe bereits laufende Ziele und Cooldown, wenn ein Lauf länger dauert als sein Intervall.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "interval",
  "name": "Intervall",
  "fields": [
    {
      "id": "interval",
      "name": "interval",
      "type": "TimeSpan",
      "options": [],
      "defaultValue": "00:15:00"
    },
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "Interval"
    },
    {
      "id": "start_immediately",
      "name": "start_immediately",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "interval",
  "Kind": "Interval",
  "interval": "00:15:00",
  "start_immediately": true,
  "kind": "Interval"
}
```

## Automationen: Einmalig

ID: once_at
Website: /doku/automationen/once_at/

Abbildung: [Detailansicht: Einmalig. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-once-at.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Ausführung: Datum und Uhrzeit des einmaligen Starts.
3. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
4. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
5. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.run_at

Zeitpunkt der einmaligen Ausführung mit Zeitzonenoffset, etwa 2030-01-01T08:00:00+01:00. Er muss für die Einrichtung in der Zukunft liegen.

### purpose

Startet das Ziel einmal zu run_at. Gib einen zukünftigen Zeitpunkt mit eindeutigem Zeitzonenoffset an. Nach dem Termin ist dies kein täglich wiederkehrender Zeitplan.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "once_at",
  "name": "Einmalig",
  "fields": [
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "OnceAt"
    },
    {
      "id": "run_at",
      "name": "run_at",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "once_at",
  "Kind": "OnceAt",
  "run_at": "2030-01-01T08:00:00+00:00",
  "kind": "OnceAt"
}
```

## Automationen: Prozess beendet

ID: process_exited
Website: /doku/automationen/process_exited/

Abbildung: [Detailansicht: Prozess beendet. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-process-exited.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Prozessname: Name des Prozesses, dessen Beenden beobachtet wird.
3. Fenstertitel enthält (optional): Grenzt den beobachteten Prozess auf einen passenden Fenstertitel ein.
4. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
5. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
6. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### field.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### purpose

Beobachtet das Ende passender Prozesse. Die Automation startet ihre eigene Zielaktion und garantiert nicht, dass ein zuvor beendetes Programm noch für Eingaben verfügbar ist.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "process_exited",
  "name": "Prozess beendet",
  "fields": [
    {
      "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": "ProcessExited"
    },
    {
      "id": "process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "process_exited",
  "Kind": "ProcessExited",
  "process_name": "",
  "window_title_contains": "",
  "delay_after_event": "00:00:00",
  "kind": "ProcessExited"
}
```

## Automationen: Prozess gestartet

ID: process_started
Website: /doku/automationen/process_started/

Abbildung: [Detailansicht: Prozess gestartet. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-process-started.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Prozessname: Name des Prozesses, dessen Start beobachtet wird.
3. Fenstertitel enthält (optional): Grenzt den beobachteten Prozess auf einen passenden Fenstertitel ein.
4. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
5. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
6. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### field.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### purpose

Beobachtet neu erscheinende passende Prozesse. Prozessname und optionaler Titelteil grenzen das Ereignis ein. Ein bereits vor Aktivierung laufender Prozess ist nicht automatisch ein neu beobachteter Start.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "process_started",
  "name": "Prozess gestartet",
  "fields": [
    {
      "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": "ProcessStarted"
    },
    {
      "id": "process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "process_started",
  "Kind": "ProcessStarted",
  "process_name": "",
  "window_title_contains": "",
  "delay_after_event": "00:00:00",
  "kind": "ProcessStarted"
}
```

## Automationen: Zeitplan

ID: schedule
Website: /doku/automationen/schedule/

Abbildung: [Zeitplan und Ausführungsregeln einer Automation.](/automationen.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Uhrzeit und Tage: Legt die Uhrzeit und Wochentage der wiederkehrenden Ausführung fest.
3. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
4. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
5. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Arbeitsplatzbeispiel: Schedule an Werktagen um 08:30 startet den Arbeitsplatz-Job.

### field.days

Menge erlaubter Wochentage. Eine leere Menge ist kein gültiger Zeitplan; JSON verwendet DayOfWeek-Namen im Automation-Serializer.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.time_of_day

Uhrzeit des Zeitplans als TimeOnly-Text, zum Beispiel 08:30:00. Sie wird zusammen mit days ausgewertet.

### purpose

Startet das Ziel an ausgewählten Wochentagen zu time_of_day. Mindestens einen Tag wählen und die lokale Uhrzeit auf dem Zielrechner prüfen. Das tägliche Aktivitätsfenster der RunPolicy ist eine zusätzliche Einschränkung.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "schedule",
  "name": "Zeitplan",
  "fields": [
    {
      "id": "days",
      "name": "days",
      "type": "HashSet`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "Schedule"
    },
    {
      "id": "time_of_day",
      "name": "time_of_day",
      "type": "TimeOnly",
      "options": [],
      "defaultValue": "08:00:00"
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "schedule",
  "Kind": "Schedule",
  "time_of_day": "08:00:00",
  "days": [
    1,
    2,
    3,
    4,
    5
  ],
  "kind": "Schedule"
}
```

## Automationen: Windows-Systemereignis

ID: system_event
Website: /doku/automationen/system_event/

Abbildung: [Detailansicht: Windows-Systemereignis. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-system-event.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Systemereignis: Das ausgewählte Windows-Ereignis startet die Automation.
3. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
4. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
5. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### field.event_kind

Beobachtetes Fenster-, Datei- oder Systemereignis. Wähle nur die Optionen dieses Trigger-Typs.

### field.event_kind.option.Resume

Fortsetzen nach einem Energiesparzustand.

### field.event_kind.option.SessionLocked

Windows-Sitzung wurde gesperrt.

### field.event_kind.option.SessionUnlocked

Windows-Sitzung wurde entsperrt.

### field.event_kind.option.Suspend

Wechsel in den Energiespar-/Standbyzustand.

### field.event_kind.option.SystemShutdown

Herunterfahren wird beobachtet; verfügbare Ausführungszeit kann begrenzt sein.

### field.event_kind.option.UserLogoff

Abmeldung des Benutzers wird beobachtet.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.

### purpose

Beobachtet unterstützte Sitzung-/Systemereignisse wie Sperren, Entsperren, Standby und Fortsetzen. Beim Herunterfahren/Abmelden kann die verbleibende Zeit kurz sein; verwende dafür kurze, bereits getestete Zielabläufe.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system_event",
  "name": "Windows-Systemereignis",
  "fields": [
    {
      "id": "event_kind",
      "name": "event_kind",
      "type": "SystemAutomationEventKind",
      "options": [
        "SessionLocked",
        "SessionUnlocked",
        "UserLogoff",
        "SystemShutdown",
        "Suspend",
        "Resume"
      ],
      "defaultValue": "SessionLocked"
    },
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "SystemEvent"
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "system_event",
  "Kind": "SystemEvent",
  "event_kind": "SessionLocked",
  "kind": "SystemEvent"
}
```

## Automationen: Webhook

ID: webhook
Website: /doku/automationen/webhook/

Abbildung: [Detailansicht: Webhook. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-webhook.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Erreichbarkeit: Bestimmt, ob der HTTP-Auslöser lokal oder im Netzwerk erreichbar ist.
3. Port: Port des lokalen HTTP-Listeners.
4. Webhook-URL: Zieladresse des authentifizierten POST-Aufrufs; hier mit Beispieldaten.
5. Webhook-Secret: Authentifizierung des Aufrufs; der abgebildete Wert ist ein erfundenes Beispiel.
6. PowerShell-Aufruf: Kopierbares Aufrufmuster mit POST, Authentifizierung und JSON-Body.
7. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### field.hook_id

Stabile GUID des Webhook-Endpunkts /api/v1/webhooks/<hook_id>. Sie ist die Routing-ID und nicht der geheime Zugangsschlüssel.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.network_mode

Offline bindet lokal, Lan erlaubt lokale Netzwerkzugriffe, Online benötigt eine konfigurierte HTTPS-Basisadresse. Eine Online-Einstellung richtet keinen Tunnel automatisch ein.

### field.network_mode.option.Lan

Webhook-Listener für das lokale Netzwerk binden; Zugriff weiterhin mit Secret authentifizieren.

### field.network_mode.option.Offline

Webhook-Listener nur lokal verwenden.

### field.network_mode.option.Online

Externen Zugriff über eine separat eingerichtete HTTPS-Adresse konfigurieren.

### field.online_base_url

Öffentliche HTTPS-Basisadresse ohne Query und Fragment für Online-Webhooks. Bereitstellung/Weiterleitung muss separat eingerichtet sein.

### field.port

Lokaler Listener-Port von 1024 bis 65535; Standard 17843. Er darf nicht bereits von einem anderen Dienst belegt sein.

### field.secret

Webhook-Zugangsschlüssel mit mindestens 24 Zeichen. Beim Aufruf X-Webhook-Secret oder Authorization: Bearer verwenden; kein echtes Secret in öffentlich geteilte Beispieldateien schreiben.

### purpose

Startet die konfigurierte Aktion über POST /api/v1/webhooks/<hook_id>. Der Aufruf muss X-Webhook-Secret oder Authorization: Bearer mit dem gespeicherten Secret senden. HTTP 202 bestätigt eine angenommene Auslösung, nicht den erfolgreichen Abschluss des Jobs; diesen im Verlauf prüfen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "webhook",
  "name": "Webhook",
  "fields": [
    {
      "id": "hook_id",
      "name": "hook_id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "Webhook"
    },
    {
      "id": "network_mode",
      "name": "network_mode",
      "type": "WebhookNetworkMode",
      "options": [
        "Offline",
        "Lan",
        "Online"
      ],
      "defaultValue": "Offline"
    },
    {
      "id": "online_base_url",
      "name": "online_base_url",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "port",
      "name": "port",
      "type": "Int32",
      "options": [],
      "defaultValue": 17843
    },
    {
      "id": "secret",
      "name": "secret",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "webhook",
  "Kind": "Webhook",
  "hook_id": "d4fa91c4-b683-2c23-b89c-7ab50f8b606c",
  "network_mode": "Offline",
  "port": 17843,
  "secret": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
  "online_base_url": "",
  "kind": "Webhook"
}
```

## Automationen: Fensterereignis

ID: window_event
Website: /doku/automationen/window_event/

Abbildung: [Detailansicht: Fensterereignis. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-window-event.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Ereignis: Wählt die zu beobachtende Fensteränderung.
3. Prozessname (optional): Beschränkt die Beobachtung auf den angegebenen Prozess.
4. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
5. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
6. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### field.delay_after_event

Verzögerung zwischen Ereignisbeobachtung und Startentscheidung als TimeSpan-Text, zum Beispiel 00:00:02.

### field.event_kind

Beobachtetes Fenster-, Datei- oder Systemereignis. Wähle nur die Optionen dieses Trigger-Typs.

### field.event_kind.option.Closed

Passendes Fenster wurde geschlossen.

### field.event_kind.option.Focused

Passendes Fenster wurde in den Vordergrund gewechselt.

### field.event_kind.option.Opened

Passendes Fenster wurde geöffnet.

### field.event_kind.option.TitleChanged

Titel des passenden Fensters wurde geändert.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.process_name

Name des gesuchten Prozesses, zum Beispiel notepad. Ein Name kann mehrere Instanzen treffen; eine konkrete Prozessreferenz grenzt gezielt ein.

### field.window_title_contains

Optionaler Teil des Fenstertitels zum Eingrenzen mehrerer Fenster. Ein leerer Text setzt diesen Filter nicht.

### purpose

Beobachtet Öffnen, Schließen, Fokuswechsel oder Titeländerungen passender Fenster. Ein Titelteil und Prozessname grenzen die Fenster ein; mehrere Ereignisse können kurz hintereinander auftreten.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window_event",
  "name": "Fensterereignis",
  "fields": [
    {
      "id": "delay_after_event",
      "name": "delay_after_event",
      "type": "TimeSpan",
      "options": [],
      "defaultValue": "00:00:00"
    },
    {
      "id": "event_kind",
      "name": "event_kind",
      "type": "WindowAutomationEventKind",
      "options": [
        "Opened",
        "Closed",
        "Focused",
        "TitleChanged"
      ],
      "defaultValue": "Opened"
    },
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "WindowEvent"
    },
    {
      "id": "process_name",
      "name": "process_name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "window_title_contains",
      "name": "window_title_contains",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "window_event",
  "Kind": "WindowEvent",
  "event_kind": "Opened",
  "process_name": "",
  "window_title_contains": "",
  "delay_after_event": "00:00:00",
  "kind": "WindowEvent"
}
```

## Automationen: Windows-Ereignis

ID: windows_event
Website: /doku/automationen/windows_event/

Abbildung: [Detailansicht: Windows-Ereignis. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-auto-windows-event.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Kategorie: Gruppiert die verfügbaren Windows-Ereignisse.
3. Windows-Funktion: Wählt das konkrete Ereignis aus der Kategorie.
4. Entprellung (Sekunden): Fasst schnell wiederholte Ereignisse innerhalb der eingestellten Zeit zusammen.
5. Verzögerung (Sekunden): Wartezeit zwischen dem beobachteten Ereignis und dem Start.
6. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### 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.event_type

Stabile Kennung eines unterstützten Windows-Ereignisses, zum Beispiel network.availability.changed. Reine Abfrage-/Einstellungsfunktionen sind keine Ereignistrigger.

### field.filters

Benannte Filterwerte der Windows-Ereignisfunktion. Erforderliche Parameter des gewählten Ereignisses müssen vorhanden sein.

### 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.kind.option.FileSystemEvent

Start bei einem passenden Datei-/Ordnerereignis.

### field.kind.option.Hotkey

Start über Tastenkombination.

### field.kind.option.Interval

Start in einem positiven Wiederholungsintervall.

### field.kind.option.OnceAt

Einmaliger Start zu einem zukünftigen Zeitpunkt.

### 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.Schedule

Start zu einer Uhrzeit an ausgewählten Wochentagen.

### field.kind.option.SystemEvent

Start bei einem unterstützten Sitzungs-/Energie-/Systemereignis.

### 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.

### purpose

Wähle eine Funktion mit SupportsEvents aus dem Windows-Katalog und ergänze deren erforderliche Filter. Die Funktion bestimmt die tatsächliche Ereignisquelle. Debounce und Startverzögerung sind getrennt von Cooldown und Verhalten bei laufendem Ziel.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_event",
  "name": "Windows-Ereignis",
  "fields": [
    {
      "id": "debounce",
      "name": "debounce",
      "type": "TimeSpan",
      "options": [],
      "defaultValue": "00:00:01"
    },
    {
      "id": "delay_after_event",
      "name": "delay_after_event",
      "type": "TimeSpan",
      "options": [],
      "defaultValue": "00:00:00"
    },
    {
      "id": "event_type",
      "name": "event_type",
      "type": "String",
      "options": [],
      "defaultValue": "network.availability.changed"
    },
    {
      "id": "filters",
      "name": "filters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "kind",
      "name": "kind",
      "type": "AutomationTriggerKind",
      "options": [
        "Hotkey",
        "OnceAt",
        "Schedule",
        "Interval",
        "ProcessStarted",
        "ProcessExited",
        "WindowEvent",
        "FileSystemEvent",
        "SystemEvent",
        "WindowsEvent",
        "Webhook"
      ],
      "defaultValue": "WindowsEvent"
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "$type": "windows_event",
  "Kind": "WindowsEvent",
  "event_type": "network.availability.changed",
  "filters": {},
  "debounce": "00:00:01",
  "delay_after_event": "00:00:00",
  "kind": "WindowsEvent"
}
```

## Automationen: AutomationAction

ID: AutomationAction
Website: /doku/automationen/AutomationAction/

### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### field.action_type

Job oder Makro bestimmt die Art des Ziels. Fülle entsprechend job_id oder makro_id aus.

### field.action_type.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.action_type.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.job_id

GUID des auszuführenden Jobs. Ein Anzeigename alleine reicht für die Zuordnung nicht aus.

### field.makro_id

GUID des auszuführenden Makros. Beim Duplizieren eines Makros die Referenzen auf dessen neue ID anpassen.

### field.name

Anzeigename für Auswahl und Verlauf. Beziehungen verwenden die stabile ID, nicht diesen frei änderbaren Namen.

### purpose

Ordnet den Trigger einem bestehenden Job oder Makro zu. action_type bestimmt, welche GUID verwendet wird. Ein gespeicherter Anzeigename dient der Anzeige und ersetzt die Ziel-ID nicht.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "AutomationAction",
  "name": "AutomationAction",
  "fields": [
    {
      "id": "action_type",
      "name": "action_type",
      "type": "AutomationActionTarget",
      "options": [
        "Job",
        "Makro"
      ],
      "defaultValue": "Job"
    },
    {
      "id": "job_id",
      "name": "job_id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "makro_id",
      "name": "makro_id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "name",
      "name": "name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "name": "",
  "job_id": null,
  "makro_id": null,
  "action_type": "Job"
}
```

## Automationen: AutomationRunPolicy

ID: AutomationRunPolicy
Website: /doku/automationen/AutomationRunPolicy/

Abbildung: [Zeitplan und Ausführungsregeln einer Automation.](/automationen.detail.png)

1. Trigger-Typ: Hier wählst du, welches Ereignis die Automation startet.
2. Uhrzeit und Tage: Legt die Uhrzeit und Wochentage der wiederkehrenden Ausführung fest.
3. Job oder Makro: Hier steht das Ziel, das bei einer passenden Auslösung gestartet wird.
4. Wenn bereits aktiv: Bestimmt die Startentscheidung, falls dieses Ziel bereits läuft.
5. Cooldown: Mindestabstand zwischen angenommenen Starts; die Einheit ist Sekunden.
### 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.

### example

Lege eine deaktivierte Automation an, wähle den beschriebenen Trigger beziehungsweise die Ziel-/Startregel und teste den Zieljob zuerst manuell. Die Dateianleitung zeigt die vollständige Hülle mit trigger, action und run_policy.

### field.already_running_behavior

Regel bei bereits laufendem Ziel: parallel starten, stoppen, ignorieren oder neu starten. Ihre Entscheidung wird im Automationsverlauf sichtbar.

### field.already_running_behavior.option.Ignore

Das neue Ereignis ignorieren, wenn das Ziel bereits läuft.

### field.already_running_behavior.option.Restart

Laufendes Ziel stoppen und erneut starten.

### field.already_running_behavior.option.StartParallel

Trotz bereits laufendem Ziel eine weitere Ausführung anfordern; parallele Wirkungen bewusst berücksichtigen.

### field.already_running_behavior.option.Stop

Bereits laufendes Ziel stoppen, ohne den neuen Lauf wie bei Restart erneut anzufordern.

### field.cooldown

Mindestpause zwischen akzeptierten Starts als TimeSpan. Ein während der Sperrfrist beobachtetes Ereignis ist kein Beweis für einen gestarteten Job.

### field.enabled_from

Beginn des aktiven täglichen Uhrzeitfensters. Gemeinsam mit enabled_until setzen oder beide leer lassen.

### field.enabled_until

Ende des aktiven täglichen Uhrzeitfensters. Der Partner enabled_from muss ebenfalls gesetzt sein.

### purpose

Entscheidet, ob ein beobachtetes Ereignis ein Ziel starten darf: aktives Uhrzeitfenster, Cooldown und Verhalten bei laufendem Ziel werden gemeinsam berücksichtigt. Die Entscheidung und beteiligte Instanzen sind im Automationsverlauf nachvollziehbar.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "AutomationRunPolicy",
  "name": "AutomationRunPolicy",
  "fields": [
    {
      "id": "already_running_behavior",
      "name": "already_running_behavior",
      "type": "AutomationAlreadyRunningBehavior",
      "options": [
        "StartParallel",
        "Stop",
        "Ignore",
        "Restart"
      ],
      "defaultValue": "Ignore"
    },
    {
      "id": "cooldown",
      "name": "cooldown",
      "type": "TimeSpan",
      "options": [],
      "defaultValue": "00:00:00"
    },
    {
      "id": "enabled_from",
      "name": "enabled_from",
      "type": "TimeOnly",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "enabled_until",
      "name": "enabled_until",
      "type": "TimeOnly",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "already_running_behavior": "Ignore",
  "cooldown": "00:00:00",
  "enabled_from": null,
  "enabled_until": null
}
```

## Makros: Tastenkombination

ID: key_combination
Website: /doku/makros/key_combination/

Abbildung: [Gruppierte Maus- und Tastaturbefehle mit ausgewählter Tastenkombination.](/makro-editor.detail.png)

1. Key: Taste bzw. Tastenkombination für diesen Befehl.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.durationUs

Haltedauer beziehungsweise zusätzliche Dauer dieses Makrobefehls in Mikrosekunden. Sie ist nicht die Millisekunden-Dauer des timeout-Befehls.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.keys

Geordnete Tastenkennungen einer Tastenkombination. Sie werden gedrückt und in umgekehrter Reihenfolge freigegeben; doppelte oder ungültige Kennungen vermeiden.

### purpose

Drückt eine geordnete Tastenkombination, hält sie für durationUs und gibt die selbst gedrückten Tasten in umgekehrter Reihenfolge frei. Verwende keys für Shortcuts wie Strg+A statt den Text „Strg+A“ als Texteingabe zu schreiben.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "key_combination",
  "name": "Tastenkombination",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "durationUs",
      "name": "durationUs",
      "type": "Int64",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "keys",
      "name": "keys",
      "type": "List`1",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "key_combination",
  "keys": [],
  "durationUs": 0,
  "id": "13effec4-5e09-0872-eac1-b63a4eb7e8e5"
}
```

## Makros: Taste drücken

ID: key_down
Website: /doku/makros/key_down/

Abbildung: [Detailansicht: Taste drücken. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-macro-key-down.detail.png)

1. Key: Taste bzw. Tastenkombination für diesen Befehl.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.key

Windows-Tastenkennung des Makrobefehls, zum Beispiel A oder CONTROL. Der Executor muss die Kennung in einen Virtual-Key-Code übersetzen können.

### purpose

Drückt eine einzelne Taste und hält sie bis zum passenden key_up. Füge die Freigabe derselben Taste ein; bei Abbruch gibt der Executor seine noch gehaltenen Tasten beim Aufräumen frei.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "key_down",
  "name": "Taste drücken",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "key",
      "name": "key",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "key_down",
  "key": "",
  "id": "aef67dd6-b7dd-b8b8-aedc-a7352bb0dd9d"
}
```

## Makros: Taste loslassen

ID: key_up
Website: /doku/makros/key_up/

Abbildung: [Detailansicht: Taste loslassen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-macro-key-up.detail.png)

1. Key: Taste bzw. Tastenkombination für diesen Befehl.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.key

Windows-Tastenkennung des Makrobefehls, zum Beispiel A oder CONTROL. Der Executor muss die Kennung in einen Virtual-Key-Code übersetzen können.

### purpose

Gibt die benannte Taste frei. Verwende dieselbe Kennung wie beim vorherigen key_down.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "key_up",
  "name": "Taste loslassen",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "key",
      "name": "key",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "key_up",
  "key": "",
  "id": "e471f899-41c4-c89c-4e3b-8d51c98356c1"
}
```

## Makros: Maustaste drücken

ID: mouse_down
Website: /doku/makros/mouse_down/

Abbildung: [Detailansicht: Maustaste drücken. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-macro-mouse-down.detail.png)

1. Button: Wählt die Maustaste, die gedrückt oder losgelassen wird.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.button

Maustaste als akzeptierter Name, zum Beispiel left, right oder middle. Down/Up-Paare müssen dieselbe Taste verwenden.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### purpose

Drückt die benannte Maustaste. Für einen Klick ein passendes mouse_up ergänzen; für Ziehen können dazwischen Bewegungsbefehle stehen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "mouse_down",
  "name": "Maustaste drücken",
  "fields": [
    {
      "id": "button",
      "name": "button",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "mouse_down",
  "button": "",
  "id": "57b76900-3086-9cc2-d4ab-dcc175ad9b46"
}
```

## Makros: Maus absolut bewegen

ID: mouse_move_absolute
Website: /doku/makros/mouse_move_absolute/

Abbildung: [Detailansicht: Maus absolut bewegen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-macro-mouse-move-absolute.detail.png)

1. X: Horizontale Zielposition des Mauszeigers in Pixeln.
2. Y: Vertikale Zielposition des Mauszeigers in Pixeln.
3. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.x

Horizontale Pixelkoordinate. Bei Bildschirmwerten den Monitorversatz beziehungsweise bei Makros den virtuellen Desktop berücksichtigen.

### field.y

Vertikale Pixelkoordinate. Der Ursprung liegt üblicherweise links oben; Bild- und Desktopkoordinaten dürfen nicht ungeprüft vermischt werden.

### purpose

Bewegt den Mauszeiger zu x/y in Pixeln des virtuellen Desktops. Monitoranordnung, Auflösung und Skalierung müssen zum aufgezeichneten Ziel passen; negative Koordinaten sind bei zusätzlichen Monitoren möglich.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "mouse_move_absolute",
  "name": "Maus absolut bewegen",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "x",
      "name": "x",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "y",
      "name": "y",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "mouse_move_absolute",
  "x": 0,
  "y": 0,
  "id": "743a6baa-76dc-d235-0599-ad83c3203476"
}
```

## Makros: Maus relativ bewegen

ID: mouse_move_relative
Website: /doku/makros/mouse_move_relative/

Abbildung: [Detailansicht: Maus relativ bewegen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-macro-mouse-move-relative.detail.png)

1. DeltaX: Horizontaler Versatz: Bei Mausbewegungen in Pixeln, beim Mausrad als Scroll-Delta.
2. DeltaY: Vertikaler Versatz: Bei Mausbewegungen in Pixeln, beim Mausrad als Scroll-Delta.
3. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.deltaX

Relative horizontale Mausbewegung beziehungsweise horizontales Mausrad-Delta. Die Bedeutung hängt vom Befehlstyp ab.

### field.deltaY

Relative vertikale Mausbewegung beziehungsweise vertikales Mausrad-Delta. Positive/negative Werte bestimmen die Richtung.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### purpose

Bewegt den Mauszeiger um deltaX/deltaY relativ zur aktuellen Position. Die Endposition hängt deshalb vom Ausgangspunkt und von der Eingabeverarbeitung des Zielprogramms ab.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "mouse_move_relative",
  "name": "Maus relativ bewegen",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "deltaX",
      "name": "deltaX",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "deltaY",
      "name": "deltaY",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "mouse_move_relative",
  "deltaX": 0,
  "deltaY": 0,
  "id": "318c6a13-2d74-5343-dfaf-cf44e5cc1875"
}
```

## Makros: Maustaste loslassen

ID: mouse_up
Website: /doku/makros/mouse_up/

Abbildung: [Detailansicht: Maustaste loslassen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-macro-mouse-up.detail.png)

1. Button: Wählt die Maustaste, die gedrückt oder losgelassen wird.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.button

Maustaste als akzeptierter Name, zum Beispiel left, right oder middle. Down/Up-Paare müssen dieselbe Taste verwenden.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### purpose

Gibt die benannte Maustaste frei. Der Befehl beendet einen Klick beziehungsweise eine gehaltene Ziehaktion.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "mouse_up",
  "name": "Maustaste loslassen",
  "fields": [
    {
      "id": "button",
      "name": "button",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "mouse_up",
  "button": "",
  "id": "7f76f50e-db68-58c0-70e8-e97158e6b0a1"
}
```

## Makros: Mausrad bewegen

ID: mouse_wheel
Website: /doku/makros/mouse_wheel/

Abbildung: [Detailansicht: Mausrad bewegen. Markierte Beschriftungen zeigen die Einstellungen im Editor. Die Abbildung zeigt eine Beispielkonfiguration, keine ausgeführte Aktion.](/ref-macro-mouse-wheel.detail.png)

1. DeltaX: Horizontaler Versatz: Bei Mausbewegungen in Pixeln, beim Mausrad als Scroll-Delta.
2. DeltaY: Vertikaler Versatz: Bei Mausbewegungen in Pixeln, beim Mausrad als Scroll-Delta.
3. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Füge diesen Befehl im Makro-Editor in einen Testablauf ein. Down-Befehle durch passende Up-Befehle abschließen; die JSON-Vorlage darunter zeigt type, id und die konkreten Wertefelder dieses Befehls.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.deltaX

Relative horizontale Mausbewegung beziehungsweise horizontales Mausrad-Delta. Die Bedeutung hängt vom Befehlstyp ab.

### field.deltaY

Relative vertikale Mausbewegung beziehungsweise vertikales Mausrad-Delta. Positive/negative Werte bestimmen die Richtung.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### purpose

Sendet horizontale/vertikale Mausrad-Deltas. Das fokussierte beziehungsweise unter dem Zeiger befindliche Programm bestimmt deren Wirkung.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "mouse_wheel",
  "name": "Mausrad bewegen",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "deltaX",
      "name": "deltaX",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "deltaY",
      "name": "deltaY",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "mouse_wheel",
  "deltaX": 0,
  "deltaY": 0,
  "id": "3015398d-f01d-5b06-9899-4110bf157815"
}
```

## Makros: Text eingeben

ID: text_input
Website: /doku/makros/text_input/

Abbildung: [Der Textbefehl trägt die Beispielnummer RE-2026-042 ein; die Verzögerung davor wird separat eingestellt.](/makro-text.detail.png)

1. Text: Dieser Text wird in die aktive Anwendung eingegeben.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Das Makrobeispiel kombiniert text_input mit „Notiz aus dem Beispielmakro“ und anschließend timeout mit duration=200. Vor Ausführung einen leeren Editor fokussieren.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.durationUs

Haltedauer beziehungsweise zusätzliche Dauer dieses Makrobefehls in Mikrosekunden. Sie ist nicht die Millisekunden-Dauer des timeout-Befehls.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.text

Direkt angezeigter beziehungsweise eingegebener Text. Ein Makro schreibt ihn in das aktive Fenster; die Desktop-Anzeige stellt ihn nur dar.

### purpose

Sendet den angegebenen Unicode-Text an das aktive Eingabeziel. Dies ist keine OCR und keine garantierte Zwischenablagenoperation. Fokussiere vorher das gewünschte Textfeld.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "text_input",
  "name": "Text eingeben",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "durationUs",
      "name": "durationUs",
      "type": "Int64",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "text",
      "name": "text",
      "type": "String",
      "options": [],
      "defaultValue": ""
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "text_input",
  "text": "",
  "durationUs": 0,
  "id": "8175bccd-480d-2892-ec75-d89f4337f976"
}
```

## Makros: Wartezeit

ID: timeout
Website: /doku/makros/timeout/

Abbildung: [Eine Wartezeit von 500 ms innerhalb der Eingabegruppe, zusätzlich zur Verzögerung vor dem Befehl.](/makro-wartezeit.detail.png)

1. Dauer: Dauer der zusätzlichen Pause. Sie ist unabhängig von der Verzögerung davor.
2. Verzögerung davor: Wartezeit seit dem vorherigen Befehl. Den Zahlenwert und die Einheit separat einstellen.
### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Das Makrobeispiel kombiniert text_input mit „Notiz aus dem Beispielmakro“ und anschließend timeout mit duration=200. Vor Ausführung einen leeren Editor fokussieren.

### field.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.duration

Dauer des Makro-timeout in Millisekunden. 200 bedeutet 0,2 Sekunden; nicht mit durationUs verwechseln.

### field.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### purpose

Wartet die in duration gespeicherten Millisekunden auf der Makro-Zeitachse. durationUs und delayBeforeUs anderer Befehle verwenden dagegen Mikrosekunden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "timeout",
  "name": "Wartezeit",
  "fields": [
    {
      "id": "delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "duration",
      "name": "duration",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "type": "timeout",
  "duration": 0,
  "id": "f8468467-aabe-4960-2611-1a0bcd68497c"
}
```

## Makros: Aufnahme und Gruppen

ID: recording
Website: /doku/makros/recording/

### errors

Ungültige Tasten-/Maustastenkennungen, doppelte IDs, fehlerhafte Gruppenreferenzen und negative/ungültige Zeitwerte vor Ausführung korrigieren. Eingaben wirken auf das aktive Fenster. Bei absoluten Bewegungen die Aufnahmeumgebung prüfen; ein Abbruch gibt die vom Executor gehaltenen Tasten/Maustasten frei, rekonstruiert aber keine bereits eingegebenen Texte.

### example

Das Makrobeispiel kombiniert text_input mit „Notiz aus dem Beispielmakro“ und anschließend timeout mit duration=200. Vor Ausführung einen leeren Editor fokussieren.

### field.commands

Geordnete Makrobefehle mit type und eindeutiger id. Die Reihenfolge ist die Ausführungsreihenfolge; UI-Gruppierung ersetzt diese Liste nicht.

### field.commands.delayBeforeUs

Wartezeit vor diesem Makrobefehl in Mikrosekunden; 1000 µs sind 1 ms. null kennzeichnet ältere oder manuell angelegte Befehle ohne aufgezeichnete Vorverzögerung.

### field.commands.groupId

Optionale Referenz auf groups[].id. Gruppen ordnen zusammengehörige aufgezeichnete Befehle, ändern aber nicht ihre Reihenfolge in commands. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.commands.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.formatVersion

Versionsnummer des gespeicherten Formats. Aktuell Job=4, Makro=3, Automation=1. Eine Änderung ist keine Methode, eine inkompatible Datei zu reparieren.

### field.groups

Gruppenmetadaten eines Makros. Jeder referenzierte groupId muss auf eine gültige Gruppe zeigen. Jede Gruppe muss Befehle enthalten; Befehle derselben Gruppe müssen einen zusammenhängenden Block bilden.

### field.groups.automatic

Markiert eine automatisch bei der Aufnahme erzeugte Gruppe; Titel und Befehlszuordnung bleiben Metadaten des Makros.

### field.groups.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.groups.title

Sichtbare Überschrift der Auswahl beziehungsweise Gruppentitel. Sie ist keine technische Identität.

### field.id

Stabile Identität dieses Eintrags. In einem Job müssen Step-IDs eindeutig sein; beim Kopieren eines eigenständigen Jobs/Makros eine neue Objekt-GUID erzeugen und interne Referenzen gezielt anpassen.

### field.name

Anzeigename für Auswahl und Verlauf. Beziehungen verwenden die stabile ID, nicht diesen frei änderbaren Namen.

### field.recordedEnvironment

Optionaler Snapshot der Aufnahmeumgebung. Er hilft, Abweichungen der Bildschirmgeometrie bei absoluten Makros zu erkennen.

### field.recordedEnvironment.recordedAtUtc

UTC-Zeitpunkt der Aufnahme. Er ist Metadatum und keine Befehlsverzögerung.

### field.recordedEnvironment.startCursorX

Optionale horizontale Startposition des Mauszeigers bei der Aufnahme in Desktop-Pixeln.

### field.recordedEnvironment.startCursorY

Optionale vertikale Startposition des Mauszeigers bei der Aufnahme in Desktop-Pixeln.

### field.recordedEnvironment.virtualDesktopHeight

Gesamthöhe der aufgezeichneten Desktop-Anordnung in Pixeln.

### field.recordedEnvironment.virtualDesktopWidth

Gesamtbreite der aufgezeichneten Desktop-Anordnung in Pixeln. Abweichende Anordnungen können absolute Mauspositionen verändern.

### field.recordedEnvironment.virtualDesktopX

Linke Kante des gesamten virtuellen Desktops bei Aufnahme; sie kann bei Monitoren links vom Hauptmonitor negativ sein.

### field.recordedEnvironment.virtualDesktopY

Obere Kante des virtuellen Desktops bei Aufnahme; sie kann bei Monitoren oberhalb des Hauptmonitors negativ sein.

### field.recordingSettings

Optionen für neue Makroaufnahmen. Änderungen an diesen Optionen wandeln vorhandene commands nicht automatisch in andere Bewegungstypen um.

### field.recordingSettings.automaticMovementGroups

Erzeugt bei der Aufnahme Gruppen für zusammengehörige Bewegungen. Befehlszeiten und Reihenfolge bleiben ausdrücklich gespeichert.

### field.recordingSettings.combineKeyboardInputs

Fasst geeignete aufgezeichnete Tastatureingaben zusammen, etwa zu Text-/Kombinationsbefehlen.

### field.recordingSettings.minimumDistancePixels

Kleinste räumliche Distanz zwischen aufgezeichneten Bewegungsproben in Pixeln.

### field.recordingSettings.minimumIntervalUs

Kleinster zeitlicher Abstand aufgezeichneter Bewegungsproben in Mikrosekunden. Er beeinflusst Datenmenge und zeitliche Genauigkeit.

### field.recordingSettings.mode

Aufnahmemodus: 0=ClicksOnly, 1=ScreenAccurateAbsolute, 2=MotionFaithfulRelative. Im Makro-JSON wird dieser Enum als Zahl gespeichert; die Optionen ändern nur zukünftige Aufnahmen.

### field.recordingSettings.mode.option.ClicksOnly

Aufnahmemodus 0: Klick-/Tastenaktionen statt einer vollständigen Bewegungsspur aufzeichnen.

### field.recordingSettings.mode.option.MotionFaithfulRelative

Aufnahmemodus 2: relative Mausbewegungen aufzeichnen.

### field.recordingSettings.mode.option.ScreenAccurateAbsolute

Aufnahmemodus 1: Bildschirmpositionen als absolute Pixelkoordinaten aufzeichnen.

### field.recordingSettings.recordKeyboard

Zeichnet Tastatureingaben für neue Makroaufnahmen auf. Vorhandene Tastenbefehle werden dadurch nicht entfernt.

### field.recordingSettings.recordMouseButtons

Zeichnet Maustasten für neue Aufnahmen auf; reine Bewegungsaufzeichnung ist davon getrennt.

### field.recordingSettings.recordingHotkeyModifiers

Bitmaske der Aufnahme-Hotkey-Modifikatoren: Alt=1, Control=2, Shift=4, Windows=8, None=0.

### field.recordingSettings.recordingHotkeyModifiers.option.Alt

Alt-Modifikator; numerische Bitmaske 1.

### field.recordingSettings.recordingHotkeyModifiers.option.Control

Strg-Modifikator; numerische Bitmaske 2.

### field.recordingSettings.recordingHotkeyModifiers.option.None

Keine Modifikatortaste; numerische Bitmaske 0.

### field.recordingSettings.recordingHotkeyModifiers.option.Shift

Umschalt-Modifikator; numerische Bitmaske 4.

### field.recordingSettings.recordingHotkeyModifiers.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### field.recordingSettings.recordingHotkeyVirtualKey

Virtual-Key-Code der Aufnahme-Taste; Standard 120 entspricht F9. Prüfe Konflikte mit anderen Hotkeys.

### field.recordingSettings.removeStopGesture

Entfernt die konfigurierte Stop-Geste aus der Aufnahme, damit sie später nicht als gewünschte Eingabe wiederholt wird.

### purpose

Ein Makro speichert geordnete Befehle, optionale Gruppen, Aufnahmeoptionen und gegebenenfalls die Aufnahmeumgebung. Gruppen sind Bearbeitungsmetadaten; die Ausführung folgt commands. Der Executor führt Makros exklusiv über seinen Ausführungsgate aus und gibt selbst gehaltene Eingaben auch bei Abbruch frei.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "recording",
  "name": "Aufnahme und Gruppen",
  "fields": [
    {
      "id": "commands",
      "name": "commands",
      "type": "ObservableCollection`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "commands.delayBeforeUs",
      "name": "delayBeforeUs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "commands.groupId",
      "name": "groupId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "commands.id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "formatVersion",
      "name": "formatVersion",
      "type": "Int32",
      "options": [],
      "defaultValue": 3
    },
    {
      "id": "groups",
      "name": "groups",
      "type": "ObservableCollection`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groups.id",
      "name": "id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groups.automatic",
      "name": "automatic",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "groups.title",
      "name": "title",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "id",
      "name": "id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "name",
      "name": "name",
      "type": "String",
      "options": [],
      "defaultValue": ""
    },
    {
      "id": "recordedEnvironment",
      "name": "recordedEnvironment",
      "type": "MakroRecordedEnvironment",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordedEnvironment.recordedAtUtc",
      "name": "recordedAtUtc",
      "type": "DateTime",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordedEnvironment.startCursorX",
      "name": "startCursorX",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordedEnvironment.startCursorY",
      "name": "startCursorY",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordedEnvironment.virtualDesktopHeight",
      "name": "virtualDesktopHeight",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordedEnvironment.virtualDesktopWidth",
      "name": "virtualDesktopWidth",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordedEnvironment.virtualDesktopX",
      "name": "virtualDesktopX",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordedEnvironment.virtualDesktopY",
      "name": "virtualDesktopY",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordingSettings",
      "name": "recordingSettings",
      "type": "MakroRecordingSettings",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "recordingSettings.automaticMovementGroups",
      "name": "automaticMovementGroups",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "recordingSettings.combineKeyboardInputs",
      "name": "combineKeyboardInputs",
      "type": "Boolean",
      "options": [],
      "defaultValue": false
    },
    {
      "id": "recordingSettings.minimumDistancePixels",
      "name": "minimumDistancePixels",
      "type": "Int32",
      "options": [],
      "defaultValue": 0
    },
    {
      "id": "recordingSettings.minimumIntervalUs",
      "name": "minimumIntervalUs",
      "type": "Int32",
      "options": [],
      "defaultValue": 1000
    },
    {
      "id": "recordingSettings.mode",
      "name": "mode",
      "type": "MakroRecordingMode",
      "options": [
        "ClicksOnly",
        "ScreenAccurateAbsolute",
        "MotionFaithfulRelative"
      ],
      "defaultValue": "ScreenAccurateAbsolute"
    },
    {
      "id": "recordingSettings.recordingHotkeyModifiers",
      "name": "recordingHotkeyModifiers",
      "type": "KeyModifiers",
      "options": [
        "None",
        "Alt",
        "Control",
        "Shift",
        "Windows"
      ],
      "defaultValue": "None"
    },
    {
      "id": "recordingSettings.recordingHotkeyVirtualKey",
      "name": "recordingHotkeyVirtualKey",
      "type": "UInt32",
      "options": [],
      "defaultValue": 120
    },
    {
      "id": "recordingSettings.recordKeyboard",
      "name": "recordKeyboard",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "recordingSettings.recordMouseButtons",
      "name": "recordMouseButtons",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    },
    {
      "id": "recordingSettings.removeStopGesture",
      "name": "removeStopGesture",
      "type": "Boolean",
      "options": [],
      "defaultValue": true
    }
  ]
}
```

### Strukturelle Serializer-Vorlage
```json
{
  "formatVersion": 3,
  "id": "95725efa-50bf-07cb-abf1-4f87f86b2103",
  "name": "Mein Makro",
  "commands": [],
  "groups": [],
  "recordingSettings": {
    "mode": 1,
    "minimumIntervalUs": 1000,
    "minimumDistancePixels": 0,
    "recordKeyboard": true,
    "combineKeyboardInputs": false,
    "recordMouseButtons": true,
    "removeStopGesture": true,
    "automaticMovementGroups": true,
    "recordingHotkeyModifiers": 0,
    "recordingHotkeyVirtualKey": 120
  },
  "recordedEnvironment": null
}
```

## Logs: LogEvent

ID: LogEvent
Website: /doku/logs/LogEvent/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### field.Area

Textuelle Kontext-/Bereichsangabe. Für fachliche Filter zusätzlich die typisierte Category verwenden.

### field.BranchDecision

Strukturierte Entscheidung eines Bedingungsblocks mit Aktivität, Grund und Operatoren ohne rohe Vergleichswerte.

### field.BranchDecision.BranchActive

Ob der betreffende Zweig bei dieser Entscheidung gewählt wurde.

### field.BranchDecision.Conditions

Ausgewertete Bedingungen mit Position, Zustand und Operator; bewusst ohne sensible Rohvergleichswerte.

### field.BranchDecision.Conditions.Operator

Operator der ausgewerteten Bedingung, ohne deren rohen Vergleichsinhalt.

### field.BranchDecision.Conditions.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.BranchDecision.Conditions.State

Zustand einer Bedingung/Beobachtung. Fehlende Belege nicht als false oder erfolgreich umdeuten.

### field.BranchDecision.MatchMode

Verknüpfung der Bedingungsliste, soweit diese Entscheidung einen Vergleich besitzt.

### field.BranchDecision.ParentActive

Ob der übergeordnete Block bei dieser Entscheidung aktiv war.

### field.BranchDecision.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.Category

Typisierter Fachbereich, zum Beispiel FileAccess, Capture oder Script. Daraus wird keine Ausführung anhand des Nachrichtentexts abgeleitet.

### field.Category.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Category.option.Capture

Bildschirm-/Kameraaufnahme.

### field.Category.option.Detection

Bild-/Text-/Punkterkennung und Auswertung.

### field.Category.option.Execution

Ausführung und Ablaufsteuerung.

### field.Category.option.FileAccess

Datei-/Ordnerzugriffe und ihre Diagnose.

### field.Category.option.General

Allgemeiner Log-Fachbereich ohne spezielleren Ausführungsbereich.

### field.Category.option.Process

Programmstart, Suche, Fokus und Beenden.

### field.Category.option.Script

Skriptausführung und zugehörige Hintergrundarbeit.

### field.Category.option.Video

Videoaufnahme und Finalisierung.

### field.Category.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### field.Code

Stabiler Ereignistoken wie step.completed. Für Auswertungen diesen Token verwenden statt übersetzte Nachrichtentexte zu parsen.

### field.Context

Korrelationsobjekt mit Lauf-, Step-, Trigger- und gegebenenfalls Elternlauf-Identitäten.

### field.Context.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.Context.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.Context.ParentRunId

Übergeordneter Lauf eines Unterjobs. Ermöglicht die Navigation von besitzender Arbeit zu Kindläufen.

### field.Context.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.Context.StepExecutionId

Identität einer tatsächlichen Step-Ausführung. Start und terminales Ereignis teilen sie; eine Wiederholung erhält eine neue Identität.

### field.Context.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.Context.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### field.Details

Optionale bereinigte Zusatzdiagnose. Eingabewerte, Skriptargumente und Secrets werden nicht vollständig hineinkopiert.

### field.DiagnosticCode

Stabiler Diagnosecode für bekannte Fehler-/Speicherfälle, soweit vorhanden.

### field.DurationMs

Gemessene Dauer in Millisekunden. Ein fehlender Wert ist keine Dauer von null.

### field.FlowEffect

Strukturierter Einfluss auf den Ablauf, etwa beendete Hauptphase oder nächster Durchlauf.

### field.FlowEffect.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.Iteration

Nummer des Hauptdurchlaufs, soweit das Ereignis einem Durchlauf zugeordnet ist.

### field.Level

Schweregrad Debug, Information, Warning oder Error. Eine Warning ist nicht automatisch ein abgebrochener Lauf.

### field.Level.option.Debug

Technische Detailbeobachtung.

### field.Level.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### field.Level.option.Information

Normale Lebenszyklus-/Aktionsinformation.

### field.Level.option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### field.Message

Lesbare, bereinigte Nachricht. Sie ist eine Anzeige und keine stabile Programmierschnittstelle.

### field.Parameters

Explizit erlaubte, bereinigte Diagnosewerte. Keine vollständige Kopie der Step-settings oder frei verfügbarer Eingabeinhalte.

### field.Paths

Explizit erlaubte strukturierte Aktionspfade. Werden getrennt von beliebigen Eingabetexten erfasst und bei Export erneut bereinigt.

### field.Paths.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Paths.Value

Wert eines strukturierten erlaubten Pfad-/Diagnoseeintrags, entsprechend seinem umgebenden Typ.

### field.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.ProblemId

Gemeinsame Problemidentität für mehrere Diagnosen desselben Vorfalls; dadurch werden Probleme nicht anhand ihrer Textzeilen doppelt gezählt.

### field.RelatedInstanceIds

Instanzen, die an einer Automationsentscheidung beteiligt waren, zum Beispiel bereits laufende Ziele bei Restart/Ignore.

### field.SchemaVersion

Version des strukturierten Logformats; der aktuelle Repository-Vertrag ist Schema 2.

### field.Sequence

Repositoryweit aufsteigende Ereignissequenz für Reihenfolge und Seitencursor, unabhängig von gleichzeitigen Zeitstempeln.

### field.Source

Ursprungsart Job, Automation, Application oder Makro.

### field.Source.option.Application

Ereignis stammt aus der Anwendung selbst.

### field.Source.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Source.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.Source.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.SourceId

Stabile ID des ursprünglichen Jobs/Makros/der Automation; sie ist nicht die Identität eines einzelnen Laufs.

### field.SourceName

Zum Ereigniszeitpunkt gespeicherter Anzeigename der Quelle.

### field.Timestamp

Zeitpunkt des Ereignisses mit Zeitzonenoffset. Für Vergleiche UTC verwenden.

### field.Trigger

Snapshot der auslösenden Ereignisart und Zielzuordnung, soweit vorhanden.

### field.Trigger.EventKind

Konkrete Ereignisart des Trigger-Snapshots.

### field.Trigger.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Trigger.TargetId

Stabile ID des von der Automation angesprochenen Jobs/Makros.

### field.Trigger.TargetKind

Art des Automationsziels: Job oder Makro.

### field.Trigger.TargetName

Gespeicherter Anzeigename des Ziels zum Zeitpunkt der Beobachtung.

### field.Trigger.WatchedDirectory

Explizit erlaubter beobachteter Ordnerpfad für eine Datei-Automation.

### purpose

Ein einzelnes strukturiertes Ereignis des Schema-2-Verlaufs. Nutze Code, Context und Sequence für maschinelle Auswertungen; Message und Details sind bereinigte Anzeigen. Einzelereignisse und aggregierte StepSummaries ergänzen sich.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogEvent",
  "name": "LogEvent",
  "options": [],
  "fields": [
    {
      "id": "Area",
      "name": "Area",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision",
      "name": "BranchDecision",
      "type": "LogBranchDecision",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.BranchActive",
      "name": "BranchActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.Conditions",
      "name": "Conditions",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.Conditions.Operator",
      "name": "Operator",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.Conditions.Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.Conditions.State",
      "name": "State",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.MatchMode",
      "name": "MatchMode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.ParentActive",
      "name": "ParentActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BranchDecision.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Category",
      "name": "Category",
      "type": "LogArea",
      "options": [
        "General",
        "Execution",
        "Automation",
        "FileAccess",
        "Capture",
        "Detection",
        "Process",
        "Script",
        "Video",
        "Windows"
      ],
      "defaultValue": null
    },
    {
      "id": "Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context",
      "name": "Context",
      "type": "LogContext",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.ParentRunId",
      "name": "ParentRunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.StepExecutionId",
      "name": "StepExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Details",
      "name": "Details",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "DiagnosticCode",
      "name": "DiagnosticCode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "DurationMs",
      "name": "DurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "FlowEffect",
      "name": "FlowEffect",
      "type": "LogFlowEffect",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "FlowEffect.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Id",
      "name": "Id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Iteration",
      "name": "Iteration",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Level",
      "name": "Level",
      "type": "ExecutionLogLevel",
      "options": [
        "Debug",
        "Information",
        "Warning",
        "Error"
      ],
      "defaultValue": null
    },
    {
      "id": "Message",
      "name": "Message",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Parameters",
      "name": "Parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Paths",
      "name": "Paths",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Paths.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Paths.Value",
      "name": "Value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "ProblemId",
      "name": "ProblemId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "RelatedInstanceIds",
      "name": "RelatedInstanceIds",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "SchemaVersion",
      "name": "SchemaVersion",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Sequence",
      "name": "Sequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Source",
      "name": "Source",
      "type": "LogSource",
      "options": [
        "Job",
        "Automation",
        "Application",
        "Makro"
      ],
      "defaultValue": null
    },
    {
      "id": "SourceId",
      "name": "SourceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "SourceName",
      "name": "SourceName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Timestamp",
      "name": "Timestamp",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger",
      "name": "Trigger",
      "type": "LogTriggerSnapshot",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.EventKind",
      "name": "EventKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.TargetId",
      "name": "TargetId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.TargetKind",
      "name": "TargetKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.TargetName",
      "name": "TargetName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.WatchedDirectory",
      "name": "WatchedDirectory",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogContext

ID: LogContext
Website: /doku/logs/LogContext/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### field.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.ParentRunId

Übergeordneter Lauf eines Unterjobs. Ermöglicht die Navigation von besitzender Arbeit zu Kindläufen.

### field.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.StepExecutionId

Identität einer tatsächlichen Step-Ausführung. Start und terminales Ereignis teilen sie; eine Wiederholung erhält eine neue Identität.

### field.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### purpose

Korrelationsobjekt zur Verknüpfung eines Ereignisses mit Run, Instanz, Trigger, Automation, Step-Ausführung und Elternlauf. Fehlende optionale IDs sind bei nicht zugeordneten Anwendungsmeldungen zulässig.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogContext",
  "name": "LogContext",
  "options": [],
  "fields": [
    {
      "id": "AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "ParentRunId",
      "name": "ParentRunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepExecutionId",
      "name": "StepExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogRun

ID: LogRun
Website: /doku/logs/LogRun/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### field.CatalogSequence

Checkpoint der Lauf-Liste zur stabilen Seitennavigation; nicht mit der Sequenz jedes Einzelereignisses verwechseln.

### field.CompletedIterations

Anzahl abgeschlossener Hauptdurchläufe dieses Laufs.

### field.CompletionReason

Grund des Laufabschlusses; im Zusammenhang mit Outcome auswerten.

### field.Context

Korrelationsobjekt mit Lauf-, Step-, Trigger- und gegebenenfalls Elternlauf-Identitäten.

### field.Context.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.Context.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.Context.ParentRunId

Übergeordneter Lauf eines Unterjobs. Ermöglicht die Navigation von besitzender Arbeit zu Kindläufen.

### field.Context.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.Context.StepExecutionId

Identität einer tatsächlichen Step-Ausführung. Start und terminales Ereignis teilen sie; eine Wiederholung erhält eine neue Identität.

### field.Context.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.Context.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### field.DurationMs

Gemessene Dauer in Millisekunden. Ein fehlender Wert ist keine Dauer von null.

### field.EndedAt

Gespeicherter Endzeitpunkt, falls ein Abschluss belegt ist. Bei nach Neustart unterbrochenen Läufen wird kein Enddatum erfunden.

### field.ErrorCount

Erfasste Fehleranzahl des Laufs nach gemeinsamen Problemregeln; nicht einfach alle Nachrichtenzeilen zählen.

### field.ExecutionNumber

Fortlaufender Ausführungszähler der Quelle. Er bleibt nach Aufbewahrungsbereinigung von Ereignissen erhalten.

### field.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.IsComplete

Ob die aufbewahrten Daten als vollständig gelten. false verlangt, Grenzen der Diagnose ausdrücklich zu berücksichtigen.

### field.IterationDurationMs

Gesamtdauer abgeschlossener Hauptdurchläufe in Millisekunden.

### field.LostEntries

Bekannte Anzahl verlorener beziehungsweise abgelehnter Logeinträge. 0 beweist keine Rekonstruktion nie erfasster Vorgänge.

### field.Name

Im Lauf-Snapshot gespeicherter Quellenname; spätere Umbenennung ändert alte Ereignisse nicht.

### field.Origin

Startursprung des Laufs, zum Beispiel manuell, Automation oder Unterjob.

### field.OriginId

Identität des Startursprungs, falls vorhanden.

### field.OriginName

Zum Start gespeicherter Anzeigename des Ursprungs.

### field.Outcome

Lebenszyklus und Qualität des Laufs. Successful, WithWarnings und WithErrors unterscheiden Abschluss von Problemfreiheit.

### field.Outcome.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### field.Outcome.option.Interrupted

Lauf hatte beim Neustart keinen belegten Abschluss und gilt als unterbrochen/unvollständig.

### field.Outcome.option.Paused

Lauf ist pausiert; das ist kein erfolgreicher Abschluss.

### field.Outcome.option.Running

Lauf ist noch aktiv und hat keinen belegten Abschluss.

### field.Outcome.option.Stopped

Lauf wurde ausdrücklich gestoppt/abgebrochen.

### field.Outcome.option.Successful

Lauf erfolgreich beendet, ohne die Qualität als Warnung/Fehler einzustufen.

### field.Outcome.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### field.Outcome.option.WithErrors

Lauf abgeschlossen, aber Fehler beeinträchtigen seine Qualität; nicht als problemfrei auswerten.

### field.Outcome.option.WithWarnings

Lauf beendet, dabei wurden Warnungen erfasst.

### field.PrimaryProblemId

Hauptproblem des Laufs zur direkten Problemnavigation.

### field.SchemaVersion

Version des strukturierten Logformats; der aktuelle Repository-Vertrag ist Schema 2.

### field.Source

Ursprungsart Job, Automation, Application oder Makro.

### field.Source.option.Application

Ereignis stammt aus der Anwendung selbst.

### field.Source.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Source.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.Source.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.SourceId

Stabile ID des ursprünglichen Jobs/Makros/der Automation; sie ist nicht die Identität eines einzelnen Laufs.

### field.StartedAt

Gespeicherter Startzeitpunkt des Laufs mit Offset.

### field.StepSummaries

Aggregierte erfolgreiche/übersprungene Wiederholungen der Hauptphase; Problemereignisse bleiben einzeln nachvollziehbar.

### field.StepSummaries.Code

Stabiler Ereignistoken wie step.completed. Für Auswertungen diesen Token verwenden statt übersetzte Nachrichtentexte zu parsen.

### field.StepSummaries.Count

Anzahl der in dieser Zusammenfassung enthaltenen Beobachtungen.

### field.StepSummaries.IterationCoverageComplete

Ob die Zuordnung aller zusammengefassten Durchläufe vollständig belegt ist.

### field.StepSummaries.Iterations

Zusammengefasste Durchlaufbereiche dieser Beobachtung; anhand First und Last lesen.

### field.StepSummaries.Iterations.First

Erster Durchlauf eines zusammengefassten Bereichs.

### field.StepSummaries.Iterations.Last

Letzter Durchlauf eines zusammengefassten Bereichs, einschließlich dieser Grenze.

### field.StepSummaries.LastEvent

Letzte bereinigte Beobachtung der Zusammenfassung. Sie ist nicht automatisch ein zusätzliches individuelles Ereignis im JSONL-Strom.

### field.StepSummaries.LastEvent.Area

Textuelle Kontext-/Bereichsangabe. Für fachliche Filter zusätzlich die typisierte Category verwenden.

### field.StepSummaries.LastEvent.BranchDecision

Strukturierte Entscheidung eines Bedingungsblocks mit Aktivität, Grund und Operatoren ohne rohe Vergleichswerte.

### field.StepSummaries.LastEvent.BranchDecision.BranchActive

Ob der betreffende Zweig bei dieser Entscheidung gewählt wurde.

### field.StepSummaries.LastEvent.BranchDecision.Conditions

Ausgewertete Bedingungen mit Position, Zustand und Operator; bewusst ohne sensible Rohvergleichswerte.

### field.StepSummaries.LastEvent.BranchDecision.Conditions.Operator

Operator der ausgewerteten Bedingung, ohne deren rohen Vergleichsinhalt.

### field.StepSummaries.LastEvent.BranchDecision.Conditions.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.StepSummaries.LastEvent.BranchDecision.Conditions.State

Zustand einer Bedingung/Beobachtung. Fehlende Belege nicht als false oder erfolgreich umdeuten.

### field.StepSummaries.LastEvent.BranchDecision.MatchMode

Verknüpfung der Bedingungsliste, soweit diese Entscheidung einen Vergleich besitzt.

### field.StepSummaries.LastEvent.BranchDecision.ParentActive

Ob der übergeordnete Block bei dieser Entscheidung aktiv war.

### field.StepSummaries.LastEvent.BranchDecision.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.StepSummaries.LastEvent.Category

Typisierter Fachbereich, zum Beispiel FileAccess, Capture oder Script. Daraus wird keine Ausführung anhand des Nachrichtentexts abgeleitet.

### field.StepSummaries.LastEvent.Category.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.StepSummaries.LastEvent.Category.option.Capture

Bildschirm-/Kameraaufnahme.

### field.StepSummaries.LastEvent.Category.option.Detection

Bild-/Text-/Punkterkennung und Auswertung.

### field.StepSummaries.LastEvent.Category.option.Execution

Ausführung und Ablaufsteuerung.

### field.StepSummaries.LastEvent.Category.option.FileAccess

Datei-/Ordnerzugriffe und ihre Diagnose.

### field.StepSummaries.LastEvent.Category.option.General

Allgemeiner Log-Fachbereich ohne spezielleren Ausführungsbereich.

### field.StepSummaries.LastEvent.Category.option.Process

Programmstart, Suche, Fokus und Beenden.

### field.StepSummaries.LastEvent.Category.option.Script

Skriptausführung und zugehörige Hintergrundarbeit.

### field.StepSummaries.LastEvent.Category.option.Video

Videoaufnahme und Finalisierung.

### field.StepSummaries.LastEvent.Category.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### field.StepSummaries.LastEvent.Code

Stabiler Ereignistoken wie step.completed. Für Auswertungen diesen Token verwenden statt übersetzte Nachrichtentexte zu parsen.

### field.StepSummaries.LastEvent.Context

Korrelationsobjekt mit Lauf-, Step-, Trigger- und gegebenenfalls Elternlauf-Identitäten.

### field.StepSummaries.LastEvent.Context.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.StepSummaries.LastEvent.Context.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.StepSummaries.LastEvent.Context.ParentRunId

Übergeordneter Lauf eines Unterjobs. Ermöglicht die Navigation von besitzender Arbeit zu Kindläufen.

### field.StepSummaries.LastEvent.Context.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.StepSummaries.LastEvent.Context.StepExecutionId

Identität einer tatsächlichen Step-Ausführung. Start und terminales Ereignis teilen sie; eine Wiederholung erhält eine neue Identität.

### field.StepSummaries.LastEvent.Context.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.StepSummaries.LastEvent.Context.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### field.StepSummaries.LastEvent.Details

Optionale bereinigte Zusatzdiagnose. Eingabewerte, Skriptargumente und Secrets werden nicht vollständig hineinkopiert.

### field.StepSummaries.LastEvent.DiagnosticCode

Stabiler Diagnosecode für bekannte Fehler-/Speicherfälle, soweit vorhanden.

### field.StepSummaries.LastEvent.DurationMs

Gemessene Dauer in Millisekunden. Ein fehlender Wert ist keine Dauer von null.

### field.StepSummaries.LastEvent.FlowEffect

Strukturierter Einfluss auf den Ablauf, etwa beendete Hauptphase oder nächster Durchlauf.

### field.StepSummaries.LastEvent.FlowEffect.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.StepSummaries.LastEvent.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.StepSummaries.LastEvent.Iteration

Nummer des Hauptdurchlaufs, soweit das Ereignis einem Durchlauf zugeordnet ist.

### field.StepSummaries.LastEvent.Level

Schweregrad Debug, Information, Warning oder Error. Eine Warning ist nicht automatisch ein abgebrochener Lauf.

### field.StepSummaries.LastEvent.Level.option.Debug

Technische Detailbeobachtung.

### field.StepSummaries.LastEvent.Level.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### field.StepSummaries.LastEvent.Level.option.Information

Normale Lebenszyklus-/Aktionsinformation.

### field.StepSummaries.LastEvent.Level.option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### field.StepSummaries.LastEvent.Message

Lesbare, bereinigte Nachricht. Sie ist eine Anzeige und keine stabile Programmierschnittstelle.

### field.StepSummaries.LastEvent.Parameters

Explizit erlaubte, bereinigte Diagnosewerte. Keine vollständige Kopie der Step-settings oder frei verfügbarer Eingabeinhalte.

### field.StepSummaries.LastEvent.Paths

Explizit erlaubte strukturierte Aktionspfade. Werden getrennt von beliebigen Eingabetexten erfasst und bei Export erneut bereinigt.

### field.StepSummaries.LastEvent.Paths.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.StepSummaries.LastEvent.Paths.Value

Wert eines strukturierten erlaubten Pfad-/Diagnoseeintrags, entsprechend seinem umgebenden Typ.

### field.StepSummaries.LastEvent.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.StepSummaries.LastEvent.ProblemId

Gemeinsame Problemidentität für mehrere Diagnosen desselben Vorfalls; dadurch werden Probleme nicht anhand ihrer Textzeilen doppelt gezählt.

### field.StepSummaries.LastEvent.RelatedInstanceIds

Instanzen, die an einer Automationsentscheidung beteiligt waren, zum Beispiel bereits laufende Ziele bei Restart/Ignore.

### field.StepSummaries.LastEvent.SchemaVersion

Version des strukturierten Logformats; der aktuelle Repository-Vertrag ist Schema 2.

### field.StepSummaries.LastEvent.Sequence

Repositoryweit aufsteigende Ereignissequenz für Reihenfolge und Seitencursor, unabhängig von gleichzeitigen Zeitstempeln.

### field.StepSummaries.LastEvent.Source

Ursprungsart Job, Automation, Application oder Makro.

### field.StepSummaries.LastEvent.Source.option.Application

Ereignis stammt aus der Anwendung selbst.

### field.StepSummaries.LastEvent.Source.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.StepSummaries.LastEvent.Source.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.StepSummaries.LastEvent.Source.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.StepSummaries.LastEvent.SourceId

Stabile ID des ursprünglichen Jobs/Makros/der Automation; sie ist nicht die Identität eines einzelnen Laufs.

### field.StepSummaries.LastEvent.SourceName

Zum Ereigniszeitpunkt gespeicherter Anzeigename der Quelle.

### field.StepSummaries.LastEvent.Timestamp

Zeitpunkt des Ereignisses mit Zeitzonenoffset. Für Vergleiche UTC verwenden.

### field.StepSummaries.LastEvent.Trigger

Snapshot der auslösenden Ereignisart und Zielzuordnung, soweit vorhanden.

### field.StepSummaries.LastEvent.Trigger.EventKind

Konkrete Ereignisart des Trigger-Snapshots.

### field.StepSummaries.LastEvent.Trigger.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.StepSummaries.LastEvent.Trigger.TargetId

Stabile ID des von der Automation angesprochenen Jobs/Makros.

### field.StepSummaries.LastEvent.Trigger.TargetKind

Art des Automationsziels: Job oder Makro.

### field.StepSummaries.LastEvent.Trigger.TargetName

Gespeicherter Anzeigename des Ziels zum Zeitpunkt der Beobachtung.

### field.StepSummaries.LastEvent.Trigger.WatchedDirectory

Explizit erlaubter beobachteter Ordnerpfad für eine Datei-Automation.

### field.StepSummaries.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.StepSummaries.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.StepSummaries.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.StepSummaries.TotalDurationMs

Summe der gemessenen Dauer der zusammengefassten Beobachtungen in Millisekunden.

### field.Steps

Unveränderlicher Step-Snapshot mit ID, Typ, Position, Phase und Aktivierung. Enthält keine vollständigen settings oder Eingabewerte.

### field.Steps.Enabled

Ob der Step im Lauf-Snapshot aktiviert war. Disabled ist von einem aktivierten, aber nicht erreichten Step zu unterscheiden.

### field.Steps.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.Steps.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Steps.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.Steps.TypeId

Kanonische Step-Typ-ID, zum Beispiel file_system_operation, unabhängig vom sichtbaren Label.

### field.Trigger

Snapshot der auslösenden Ereignisart und Zielzuordnung, soweit vorhanden.

### field.Trigger.EventKind

Konkrete Ereignisart des Trigger-Snapshots.

### field.Trigger.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Trigger.TargetId

Stabile ID des von der Automation angesprochenen Jobs/Makros.

### field.Trigger.TargetKind

Art des Automationsziels: Job oder Makro.

### field.Trigger.TargetName

Gespeicherter Anzeigename des Ziels zum Zeitpunkt der Beobachtung.

### field.Trigger.WatchedDirectory

Explizit erlaubter beobachteter Ordnerpfad für eine Datei-Automation.

### field.WarningCount

Erfasste Warnungsanzahl des Laufs.

### purpose

Unveränderliche Quellen-/Step-Snapshots und fortgeschriebene Lebenszyklus-/Qualitätsdaten eines Laufs. Der Status ist nicht allein aus einer Startanforderung oder Nachricht abzuleiten. IsComplete und LostEntries zeigen bekannte Grenzen der Belege.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogRun",
  "name": "LogRun",
  "options": [],
  "fields": [
    {
      "id": "CatalogSequence",
      "name": "CatalogSequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "CompletedIterations",
      "name": "CompletedIterations",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "CompletionReason",
      "name": "CompletionReason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context",
      "name": "Context",
      "type": "LogContext",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.ParentRunId",
      "name": "ParentRunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.StepExecutionId",
      "name": "StepExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Context.TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "DurationMs",
      "name": "DurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "EndedAt",
      "name": "EndedAt",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "ErrorCount",
      "name": "ErrorCount",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "ExecutionNumber",
      "name": "ExecutionNumber",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Id",
      "name": "Id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "IsComplete",
      "name": "IsComplete",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "IterationDurationMs",
      "name": "IterationDurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "LostEntries",
      "name": "LostEntries",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Name",
      "name": "Name",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Origin",
      "name": "Origin",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "OriginId",
      "name": "OriginId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "OriginName",
      "name": "OriginName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Outcome",
      "name": "Outcome",
      "type": "LogOutcome",
      "options": [
        "Running",
        "Paused",
        "Successful",
        "WithWarnings",
        "WithErrors",
        "Failed",
        "Stopped",
        "Interrupted",
        "Unknown"
      ],
      "defaultValue": null
    },
    {
      "id": "PrimaryProblemId",
      "name": "PrimaryProblemId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "SchemaVersion",
      "name": "SchemaVersion",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Source",
      "name": "Source",
      "type": "LogSource",
      "options": [
        "Job",
        "Automation",
        "Application",
        "Makro"
      ],
      "defaultValue": null
    },
    {
      "id": "SourceId",
      "name": "SourceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StartedAt",
      "name": "StartedAt",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Steps",
      "name": "Steps",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Steps.Enabled",
      "name": "Enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Steps.Id",
      "name": "Id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Steps.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Steps.Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Steps.TypeId",
      "name": "TypeId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries",
      "name": "StepSummaries",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.Count",
      "name": "Count",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.IterationCoverageComplete",
      "name": "IterationCoverageComplete",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.Iterations",
      "name": "Iterations",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.Iterations.First",
      "name": "First",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.Iterations.Last",
      "name": "Last",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent",
      "name": "LastEvent",
      "type": "LogEvent",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Area",
      "name": "Area",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision",
      "name": "BranchDecision",
      "type": "LogBranchDecision",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.BranchActive",
      "name": "BranchActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.Conditions",
      "name": "Conditions",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.Conditions.Operator",
      "name": "Operator",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.Conditions.Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.Conditions.State",
      "name": "State",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.MatchMode",
      "name": "MatchMode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.ParentActive",
      "name": "ParentActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.BranchDecision.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Category",
      "name": "Category",
      "type": "LogArea",
      "options": [
        "General",
        "Execution",
        "Automation",
        "FileAccess",
        "Capture",
        "Detection",
        "Process",
        "Script",
        "Video",
        "Windows"
      ],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context",
      "name": "Context",
      "type": "LogContext",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context.AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context.InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context.ParentRunId",
      "name": "ParentRunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context.RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context.StepExecutionId",
      "name": "StepExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Context.TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Details",
      "name": "Details",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.DiagnosticCode",
      "name": "DiagnosticCode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.DurationMs",
      "name": "DurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.FlowEffect",
      "name": "FlowEffect",
      "type": "LogFlowEffect",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.FlowEffect.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Id",
      "name": "Id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Iteration",
      "name": "Iteration",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Level",
      "name": "Level",
      "type": "ExecutionLogLevel",
      "options": [
        "Debug",
        "Information",
        "Warning",
        "Error"
      ],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Message",
      "name": "Message",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Parameters",
      "name": "Parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Paths",
      "name": "Paths",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Paths.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Paths.Value",
      "name": "Value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.ProblemId",
      "name": "ProblemId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.RelatedInstanceIds",
      "name": "RelatedInstanceIds",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.SchemaVersion",
      "name": "SchemaVersion",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Sequence",
      "name": "Sequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Source",
      "name": "Source",
      "type": "LogSource",
      "options": [
        "Job",
        "Automation",
        "Application",
        "Makro"
      ],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.SourceId",
      "name": "SourceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.SourceName",
      "name": "SourceName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Timestamp",
      "name": "Timestamp",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Trigger",
      "name": "Trigger",
      "type": "LogTriggerSnapshot",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Trigger.EventKind",
      "name": "EventKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Trigger.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Trigger.TargetId",
      "name": "TargetId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Trigger.TargetKind",
      "name": "TargetKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Trigger.TargetName",
      "name": "TargetName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.LastEvent.Trigger.WatchedDirectory",
      "name": "WatchedDirectory",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepSummaries.TotalDurationMs",
      "name": "TotalDurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger",
      "name": "Trigger",
      "type": "LogTriggerSnapshot",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.EventKind",
      "name": "EventKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.TargetId",
      "name": "TargetId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.TargetKind",
      "name": "TargetKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.TargetName",
      "name": "TargetName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Trigger.WatchedDirectory",
      "name": "WatchedDirectory",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "WarningCount",
      "name": "WarningCount",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogStepSnapshot

ID: LogStepSnapshot
Website: /doku/logs/LogStepSnapshot/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### field.Enabled

Ob der Step im Lauf-Snapshot aktiviert war. Disabled ist von einem aktivierten, aber nicht erreichten Step zu unterscheiden.

### field.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.TypeId

Kanonische Step-Typ-ID, zum Beispiel file_system_operation, unabhängig vom sichtbaren Label.

### purpose

Gespeicherte Step-Struktur dieses Laufs: ID, kanonischer Typ, Reihenfolge, Phase und Aktivierung. Spätere Änderungen am Job verändern den damaligen Snapshot nicht.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogStepSnapshot",
  "name": "LogStepSnapshot",
  "options": [],
  "fields": [
    {
      "id": "Enabled",
      "name": "Enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Id",
      "name": "Id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "TypeId",
      "name": "TypeId",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogTriggerSnapshot

ID: LogTriggerSnapshot
Website: /doku/logs/LogTriggerSnapshot/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### field.EventKind

Konkrete Ereignisart des Trigger-Snapshots.

### field.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.TargetId

Stabile ID des von der Automation angesprochenen Jobs/Makros.

### field.TargetKind

Art des Automationsziels: Job oder Makro.

### field.TargetName

Gespeicherter Anzeigename des Ziels zum Zeitpunkt der Beobachtung.

### field.WatchedDirectory

Explizit erlaubter beobachteter Ordnerpfad für eine Datei-Automation.

### purpose

Gespeicherte Ereignis- und Zielzuordnung einer Automation. Ermöglicht die Frage, welches Ereignis welche Aktion angefordert hat, ohne mutable aktuelle Konfigurationen als historische Wahrheit zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogTriggerSnapshot",
  "name": "LogTriggerSnapshot",
  "options": [],
  "fields": [
    {
      "id": "EventKind",
      "name": "EventKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "TargetId",
      "name": "TargetId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "TargetKind",
      "name": "TargetKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "TargetName",
      "name": "TargetName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "WatchedDirectory",
      "name": "WatchedDirectory",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogOutcome

ID: LogOutcome
Website: /doku/logs/LogOutcome/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### option.Failed

Lauf wegen Fehler fehlgeschlagen.

### option.Interrupted

Lauf hatte beim Neustart keinen belegten Abschluss und gilt als unterbrochen/unvollständig.

### option.Paused

Lauf ist pausiert; das ist kein erfolgreicher Abschluss.

### option.Running

Lauf ist noch aktiv und hat keinen belegten Abschluss.

### option.Stopped

Lauf wurde ausdrücklich gestoppt/abgebrochen.

### option.Successful

Lauf erfolgreich beendet, ohne die Qualität als Warnung/Fehler einzustufen.

### option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### option.WithErrors

Lauf abgeschlossen, aber Fehler beeinträchtigen seine Qualität; nicht als problemfrei auswerten.

### option.WithWarnings

Lauf beendet, dabei wurden Warnungen erfasst.

### purpose

Lebenszyklus und Qualität eines Laufs. Ein abgeschlossener Lauf kann Warnungen oder Fehler enthalten; ein unterbrochener Lauf hat keinen erfundenen erfolgreichen Abschluss.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogOutcome",
  "name": "LogOutcome",
  "options": [
    "Running",
    "Paused",
    "Successful",
    "WithWarnings",
    "WithErrors",
    "Failed",
    "Stopped",
    "Interrupted",
    "Unknown"
  ],
  "fields": []
}
```

## Logs: StepLogOutcome

ID: StepLogOutcome
Website: /doku/logs/StepLogOutcome/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### option.Cancelled

Eine begonnene Step-Ausführung wurde abgebrochen.

### option.Failed

Lauf wegen Fehler fehlgeschlagen.

### option.NotExecuted

Der Step wurde in diesem Ablauf nicht ausgeführt.

### option.Pending

Noch kein terminales Step-Ergebnis vorhanden.

### option.Running

Lauf ist noch aktiv und hat keinen belegten Abschluss.

### option.Skipped

Der Step wurde übersprungen; Reason für deaktiviert, inaktiven Zweig oder fehlende Eingabe prüfen.

### option.Successful

Lauf erfolgreich beendet, ohne die Qualität als Warnung/Fehler einzustufen.

### option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### purpose

Status einer Step-Beobachtung beziehungsweise Timeline-Projektion. Disabled, inactive, skipped und noch nicht ausgeführt haben unterschiedliche Ursachen; fehlende Belege nicht als Ausführung zählen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "StepLogOutcome",
  "name": "StepLogOutcome",
  "options": [
    "Running",
    "Successful",
    "Warning",
    "Failed",
    "Skipped",
    "Cancelled",
    "NotExecuted",
    "Pending",
    "Unknown"
  ],
  "fields": []
}
```

## Logs: ExecutionLogLevel

ID: ExecutionLogLevel
Website: /doku/logs/ExecutionLogLevel/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### option.Debug

Technische Detailbeobachtung.

### option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### option.Information

Normale Lebenszyklus-/Aktionsinformation.

### option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### purpose

Schweregrad eines einzelnen Ereignisses. Filtern über MinimumLevel kann technische Details verbergen; bei Diagnose zusätzlich Run-Status und Vollständigkeit prüfen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ExecutionLogLevel",
  "name": "ExecutionLogLevel",
  "options": [
    "Debug",
    "Information",
    "Warning",
    "Error"
  ],
  "fields": []
}
```

## Logs: LogReadState

ID: LogReadState
Website: /doku/logs/LogReadState/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### option.Available

Logdaten sind verfügbar; zusätzlich IsComplete und Issues prüfen.

### option.Empty

Der abgefragte Logbereich enthält keine Ereignisse; das beweist keine erfolgreiche Ausführung.

### option.Partial

Daten sind teilweise lesbar; Fehler und bekannte Lücken bleiben sichtbar.

### option.Unavailable

Logdaten sind nicht verfügbar; Abwesenheit von Fehlern ist dann keine Erfolgsaussage.

### purpose

Qualität des Leseergebnisses: vollständig, teilweise oder nicht verfügbar gemäß den konkreten Enum-Werten. Teilweise lesbare Daten werden nicht verworfen, aber verlorene Daten nicht rekonstruiert.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogReadState",
  "name": "LogReadState",
  "options": [
    "Available",
    "Empty",
    "Partial",
    "Unavailable"
  ],
  "fields": []
}
```

## Logs: LogSource

ID: LogSource
Website: /doku/logs/LogSource/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### option.Application

Ereignis stammt aus der Anwendung selbst.

### option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### option.Job

Quelle beziehungsweise Ziel ist ein Job.

### option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### purpose

Ursprungsart des Ereignisses: Job, Automation, Anwendung oder Makro. Zusammen mit SourceId und RunId werden einzelne Läufe eingegrenzt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogSource",
  "name": "LogSource",
  "options": [
    "Job",
    "Automation",
    "Application",
    "Makro"
  ],
  "fields": []
}
```

## Logs: LogArea

ID: LogArea
Website: /doku/logs/LogArea/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### option.Capture

Bildschirm-/Kameraaufnahme.

### option.Detection

Bild-/Text-/Punkterkennung und Auswertung.

### option.Execution

Ausführung und Ablaufsteuerung.

### option.FileAccess

Datei-/Ordnerzugriffe und ihre Diagnose.

### option.General

Allgemeiner Log-Fachbereich ohne spezielleren Ausführungsbereich.

### option.Process

Programmstart, Suche, Fokus und Beenden.

### option.Script

Skriptausführung und zugehörige Hintergrundarbeit.

### option.Video

Videoaufnahme und Finalisierung.

### option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### purpose

Typisierter Fachbereich für Diagnose und Filter. Er beschreibt die fachliche Herkunft und wird nicht aus frei formulierten Nachrichtentexten erraten.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogArea",
  "name": "LogArea",
  "options": [
    "General",
    "Execution",
    "Automation",
    "FileAccess",
    "Capture",
    "Detection",
    "Process",
    "Script",
    "Video",
    "Windows"
  ],
  "fields": []
}
```

## Logs: LogQuery

ID: LogQuery
Website: /doku/logs/LogQuery/

### errors

State, Issues und IsComplete begrenzen die Aussagekraft. Ein leerer beziehungsweise nicht verfuegbarer Bestand ist kein Erfolgsbeleg. Fehlende ExecutionId oder Endzeitpunkte nicht erfinden.

### example

Filtere einen konkreten RunId und lese LogPage mit unveraenderter SnapshotSequence bis NextBeforeSequence=null. Ordne danach StepExecutionId, StepSummaries und Laufstatus gemeinsam zu. Der Log-Leitfaden zeigt ein synthetisches Ereignis im echten Serializerformat.

### field.AfterSequence

Untere exklusive Sequenzgrenze: nur spätere Ereignisse lesen. Zusammen mit SnapshotSequence eine stabile Abfrage begrenzen.

### field.Area

Textuelle Kontext-/Bereichsangabe. Für fachliche Filter zusätzlich die typisierte Category verwenden.

### field.BeforeSequence

Obere exklusive Sequenzgrenze für rückwärtige Seiten. Den NextBeforeSequence-Wert der vorherigen Seite übernehmen, statt Ereignisnummern selbst zu schaetzen.

### field.Category

Typisierter Fachbereich, zum Beispiel FileAccess, Capture oder Script. Daraus wird keine Ausführung anhand des Nachrichtentexts abgeleitet.

### field.Category.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Category.option.Capture

Bildschirm-/Kameraaufnahme.

### field.Category.option.Detection

Bild-/Text-/Punkterkennung und Auswertung.

### field.Category.option.Execution

Ausführung und Ablaufsteuerung.

### field.Category.option.FileAccess

Datei-/Ordnerzugriffe und ihre Diagnose.

### field.Category.option.General

Allgemeiner Log-Fachbereich ohne spezielleren Ausführungsbereich.

### field.Category.option.Process

Programmstart, Suche, Fokus und Beenden.

### field.Category.option.Script

Skriptausführung und zugehörige Hintergrundarbeit.

### field.Category.option.Video

Videoaufnahme und Finalisierung.

### field.Category.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### field.From

Optionaler Anfang des Ereignis-Zeitbereichs als DateTimeOffset. Zeitpunkte mit Offset vergleichen.

### field.MinimumLevel

Mindestschweregrad für die Abfrage: Debug, Information, Warning oder Error. Höhere Grenzen koennen wichtige Diagnoseereignisse ausblenden.

### field.MinimumLevel.option.Debug

Technische Detailbeobachtung.

### field.MinimumLevel.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### field.MinimumLevel.option.Information

Normale Lebenszyklus-/Aktionsinformation.

### field.MinimumLevel.option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### field.OnlyProblems

Beschraenkt die Abfrage auf Problemereignisse. Fuer vollständige Ablaufanalyse auch normale Start-, Status- und Abschlussereignisse lesen.

### field.PageSize

Gewuenschte Anzahl Ereignisse je Seite. Fuer Folgeseiten dieselben Filter und SnapshotSequence verwenden.

### field.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.Search

Optionaler Suchtext für die vorhandene Logsuche. Suche ersetzt keine stabile Auswertung von Code, Context und Status.

### field.SnapshotSequence

Obere Snapshot-Sequenz der Abfrage. Bei Folgeseiten denselben Wert verwenden, damit neu angehängte Ereignisse den abgefragten Bestand nicht verschieben.

### field.Source

Ursprungsart Job, Automation, Application oder Makro.

### field.Source.option.Application

Ereignis stammt aus der Anwendung selbst.

### field.Source.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Source.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.Source.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.SourceId

Stabile ID des ursprünglichen Jobs/Makros/der Automation; sie ist nicht die Identität eines einzelnen Laufs.

### field.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### field.Until

Optionales Ende des Ereignis-Zeitbereichs als DateTimeOffset. Kein Lauf-Endzeitpunkt und kein Beleg eines erfolgreichen Abschlusses.

### purpose

Filter- und Seitengrenzen einer strukturierten Logabfrage. Source, SourceId, RunId, TriggerId, Category, Zeitraum und MinimumLevel grenzen den Bestand ein. Sequenz-/Snapshotgrenzen halten die Seitenauswertung stabil.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogQuery",
  "name": "LogQuery",
  "options": [],
  "fields": [
    {
      "id": "AfterSequence",
      "name": "AfterSequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Area",
      "name": "Area",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "BeforeSequence",
      "name": "BeforeSequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Category",
      "name": "Category",
      "type": "LogArea",
      "options": [
        "General",
        "Execution",
        "Automation",
        "FileAccess",
        "Capture",
        "Detection",
        "Process",
        "Script",
        "Video",
        "Windows"
      ],
      "defaultValue": null
    },
    {
      "id": "From",
      "name": "From",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "MinimumLevel",
      "name": "MinimumLevel",
      "type": "ExecutionLogLevel",
      "options": [
        "Debug",
        "Information",
        "Warning",
        "Error"
      ],
      "defaultValue": null
    },
    {
      "id": "OnlyProblems",
      "name": "OnlyProblems",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "PageSize",
      "name": "PageSize",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Search",
      "name": "Search",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "SnapshotSequence",
      "name": "SnapshotSequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Source",
      "name": "Source",
      "type": "LogSource",
      "options": [
        "Job",
        "Automation",
        "Application",
        "Makro"
      ],
      "defaultValue": null
    },
    {
      "id": "SourceId",
      "name": "SourceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Until",
      "name": "Until",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogPage

ID: LogPage
Website: /doku/logs/LogPage/

### errors

State, Issues und IsComplete begrenzen die Aussagekraft. Ein leerer beziehungsweise nicht verfuegbarer Bestand ist kein Erfolgsbeleg. Fehlende ExecutionId oder Endzeitpunkte nicht erfinden.

### example

Filtere einen konkreten RunId und lese LogPage mit unveraenderter SnapshotSequence bis NextBeforeSequence=null. Ordne danach StepExecutionId, StepSummaries und Laufstatus gemeinsam zu. Der Log-Leitfaden zeigt ein synthetisches Ereignis im echten Serializerformat.

### field.AvailableCount

Anzahl der verfügbaren Ereignisse im betrachteten Abfragebestand. Nicht als Zahl aller jemals ausgefuehrten Steps interpretieren.

### field.Entries

Die auf dieser Seite gelieferten strukturierten LogEvent-Objekte. Fuer weitere Seiten NextBeforeSequence auswerten.

### field.Entries.Area

Textuelle Kontext-/Bereichsangabe. Für fachliche Filter zusätzlich die typisierte Category verwenden.

### field.Entries.BranchDecision

Strukturierte Entscheidung eines Bedingungsblocks mit Aktivität, Grund und Operatoren ohne rohe Vergleichswerte.

### field.Entries.BranchDecision.BranchActive

Ob der betreffende Zweig bei dieser Entscheidung gewählt wurde.

### field.Entries.BranchDecision.Conditions

Ausgewertete Bedingungen mit Position, Zustand und Operator; bewusst ohne sensible Rohvergleichswerte.

### field.Entries.BranchDecision.Conditions.Operator

Operator der ausgewerteten Bedingung, ohne deren rohen Vergleichsinhalt.

### field.Entries.BranchDecision.Conditions.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.Entries.BranchDecision.Conditions.State

Zustand einer Bedingung/Beobachtung. Fehlende Belege nicht als false oder erfolgreich umdeuten.

### field.Entries.BranchDecision.MatchMode

Verknüpfung der Bedingungsliste, soweit diese Entscheidung einen Vergleich besitzt.

### field.Entries.BranchDecision.ParentActive

Ob der übergeordnete Block bei dieser Entscheidung aktiv war.

### field.Entries.BranchDecision.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.Entries.Category

Typisierter Fachbereich, zum Beispiel FileAccess, Capture oder Script. Daraus wird keine Ausführung anhand des Nachrichtentexts abgeleitet.

### field.Entries.Category.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Entries.Category.option.Capture

Bildschirm-/Kameraaufnahme.

### field.Entries.Category.option.Detection

Bild-/Text-/Punkterkennung und Auswertung.

### field.Entries.Category.option.Execution

Ausführung und Ablaufsteuerung.

### field.Entries.Category.option.FileAccess

Datei-/Ordnerzugriffe und ihre Diagnose.

### field.Entries.Category.option.General

Allgemeiner Log-Fachbereich ohne spezielleren Ausführungsbereich.

### field.Entries.Category.option.Process

Programmstart, Suche, Fokus und Beenden.

### field.Entries.Category.option.Script

Skriptausführung und zugehörige Hintergrundarbeit.

### field.Entries.Category.option.Video

Videoaufnahme und Finalisierung.

### field.Entries.Category.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### field.Entries.Code

Stabiler Ereignistoken wie step.completed. Für Auswertungen diesen Token verwenden statt übersetzte Nachrichtentexte zu parsen.

### field.Entries.Context

Korrelationsobjekt mit Lauf-, Step-, Trigger- und gegebenenfalls Elternlauf-Identitäten.

### field.Entries.Context.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.Entries.Context.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.Entries.Context.ParentRunId

Übergeordneter Lauf eines Unterjobs. Ermöglicht die Navigation von besitzender Arbeit zu Kindläufen.

### field.Entries.Context.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.Entries.Context.StepExecutionId

Identität einer tatsächlichen Step-Ausführung. Start und terminales Ereignis teilen sie; eine Wiederholung erhält eine neue Identität.

### field.Entries.Context.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.Entries.Context.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### field.Entries.Details

Optionale bereinigte Zusatzdiagnose. Eingabewerte, Skriptargumente und Secrets werden nicht vollständig hineinkopiert.

### field.Entries.DiagnosticCode

Stabiler Diagnosecode für bekannte Fehler-/Speicherfälle, soweit vorhanden.

### field.Entries.DurationMs

Gemessene Dauer in Millisekunden. Ein fehlender Wert ist keine Dauer von null.

### field.Entries.FlowEffect

Strukturierter Einfluss auf den Ablauf, etwa beendete Hauptphase oder nächster Durchlauf.

### field.Entries.FlowEffect.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Entries.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.Entries.Iteration

Nummer des Hauptdurchlaufs, soweit das Ereignis einem Durchlauf zugeordnet ist.

### field.Entries.Level

Schweregrad Debug, Information, Warning oder Error. Eine Warning ist nicht automatisch ein abgebrochener Lauf.

### field.Entries.Level.option.Debug

Technische Detailbeobachtung.

### field.Entries.Level.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### field.Entries.Level.option.Information

Normale Lebenszyklus-/Aktionsinformation.

### field.Entries.Level.option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### field.Entries.Message

Lesbare, bereinigte Nachricht. Sie ist eine Anzeige und keine stabile Programmierschnittstelle.

### field.Entries.Parameters

Explizit erlaubte, bereinigte Diagnosewerte. Keine vollständige Kopie der Step-settings oder frei verfügbarer Eingabeinhalte.

### field.Entries.Paths

Explizit erlaubte strukturierte Aktionspfade. Werden getrennt von beliebigen Eingabetexten erfasst und bei Export erneut bereinigt.

### field.Entries.Paths.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Entries.Paths.Value

Wert eines strukturierten erlaubten Pfad-/Diagnoseeintrags, entsprechend seinem umgebenden Typ.

### field.Entries.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Entries.ProblemId

Gemeinsame Problemidentität für mehrere Diagnosen desselben Vorfalls; dadurch werden Probleme nicht anhand ihrer Textzeilen doppelt gezählt.

### field.Entries.RelatedInstanceIds

Instanzen, die an einer Automationsentscheidung beteiligt waren, zum Beispiel bereits laufende Ziele bei Restart/Ignore.

### field.Entries.SchemaVersion

Version des strukturierten Logformats; der aktuelle Repository-Vertrag ist Schema 2.

### field.Entries.Sequence

Repositoryweit aufsteigende Ereignissequenz für Reihenfolge und Seitencursor, unabhängig von gleichzeitigen Zeitstempeln.

### field.Entries.Source

Ursprungsart Job, Automation, Application oder Makro.

### field.Entries.Source.option.Application

Ereignis stammt aus der Anwendung selbst.

### field.Entries.Source.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Entries.Source.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.Entries.Source.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.Entries.SourceId

Stabile ID des ursprünglichen Jobs/Makros/der Automation; sie ist nicht die Identität eines einzelnen Laufs.

### field.Entries.SourceName

Zum Ereigniszeitpunkt gespeicherter Anzeigename der Quelle.

### field.Entries.Timestamp

Zeitpunkt des Ereignisses mit Zeitzonenoffset. Für Vergleiche UTC verwenden.

### field.Entries.Trigger

Snapshot der auslösenden Ereignisart und Zielzuordnung, soweit vorhanden.

### field.Entries.Trigger.EventKind

Konkrete Ereignisart des Trigger-Snapshots.

### field.Entries.Trigger.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Entries.Trigger.TargetId

Stabile ID des von der Automation angesprochenen Jobs/Makros.

### field.Entries.Trigger.TargetKind

Art des Automationsziels: Job oder Makro.

### field.Entries.Trigger.TargetName

Gespeicherter Anzeigename des Ziels zum Zeitpunkt der Beobachtung.

### field.Entries.Trigger.WatchedDirectory

Explizit erlaubter beobachteter Ordnerpfad für eine Datei-Automation.

### field.Issues

Bekannte Probleme beim Lesen oder Speichern. Lesbare Teile koennen vorliegen; fehlende Belege nicht rekonstruieren.

### field.MatchCount

Anzahl passender Ereignisse für die gesetzten Filter. Nicht gleich der Anzahl von Jobläufen oder aggregierten Step-Ausfuehrungen.

### field.NextBeforeSequence

Optionale obere Grenze der nächsten rückwärtigen Seite. null bedeutet keine weitere Seite; vorhandene Leseluecken bleiben trotzdem möglich.

### field.SnapshotSequence

Obere Snapshot-Sequenz der Abfrage. Bei Folgeseiten denselben Wert verwenden, damit neu angehängte Ereignisse den abgefragten Bestand nicht verschieben.

### field.State

LogReadState dieser Abfrage: Available, Empty, Partial oder Unavailable. Issues und verfügbare Entries gemeinsam auswerten.

### field.State.option.Available

Logdaten sind verfügbar; zusätzlich IsComplete und Issues prüfen.

### field.State.option.Empty

Der abgefragte Logbereich enthält keine Ereignisse; das beweist keine erfolgreiche Ausführung.

### field.State.option.Partial

Daten sind teilweise lesbar; Fehler und bekannte Lücken bleiben sichtbar.

### field.State.option.Unavailable

Logdaten sind nicht verfügbar; Abwesenheit von Fehlern ist dann keine Erfolgsaussage.

### purpose

Eine Seite einer Logabfrage mit Ereignissen, Zählern, Folgeseitengrenze und Lesequalitaet. Teilweise lesbare Daten bleiben nutzbar, ihre bekannten Probleme bleiben jedoch Teil des Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogPage",
  "name": "LogPage",
  "options": [],
  "fields": [
    {
      "id": "AvailableCount",
      "name": "AvailableCount",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries",
      "name": "Entries",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Area",
      "name": "Area",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision",
      "name": "BranchDecision",
      "type": "LogBranchDecision",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.BranchActive",
      "name": "BranchActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.Conditions",
      "name": "Conditions",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.Conditions.Operator",
      "name": "Operator",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.Conditions.Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.Conditions.State",
      "name": "State",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.MatchMode",
      "name": "MatchMode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.ParentActive",
      "name": "ParentActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.BranchDecision.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Category",
      "name": "Category",
      "type": "LogArea",
      "options": [
        "General",
        "Execution",
        "Automation",
        "FileAccess",
        "Capture",
        "Detection",
        "Process",
        "Script",
        "Video",
        "Windows"
      ],
      "defaultValue": null
    },
    {
      "id": "Entries.Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context",
      "name": "Context",
      "type": "LogContext",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context.AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context.InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context.ParentRunId",
      "name": "ParentRunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context.RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context.StepExecutionId",
      "name": "StepExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Context.TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Details",
      "name": "Details",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.DiagnosticCode",
      "name": "DiagnosticCode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.DurationMs",
      "name": "DurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.FlowEffect",
      "name": "FlowEffect",
      "type": "LogFlowEffect",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.FlowEffect.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Id",
      "name": "Id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Iteration",
      "name": "Iteration",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Level",
      "name": "Level",
      "type": "ExecutionLogLevel",
      "options": [
        "Debug",
        "Information",
        "Warning",
        "Error"
      ],
      "defaultValue": null
    },
    {
      "id": "Entries.Message",
      "name": "Message",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Parameters",
      "name": "Parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Paths",
      "name": "Paths",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Paths.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Paths.Value",
      "name": "Value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.ProblemId",
      "name": "ProblemId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.RelatedInstanceIds",
      "name": "RelatedInstanceIds",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.SchemaVersion",
      "name": "SchemaVersion",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Sequence",
      "name": "Sequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Source",
      "name": "Source",
      "type": "LogSource",
      "options": [
        "Job",
        "Automation",
        "Application",
        "Makro"
      ],
      "defaultValue": null
    },
    {
      "id": "Entries.SourceId",
      "name": "SourceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.SourceName",
      "name": "SourceName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Timestamp",
      "name": "Timestamp",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Trigger",
      "name": "Trigger",
      "type": "LogTriggerSnapshot",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Trigger.EventKind",
      "name": "EventKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Trigger.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Trigger.TargetId",
      "name": "TargetId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Trigger.TargetKind",
      "name": "TargetKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Trigger.TargetName",
      "name": "TargetName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Entries.Trigger.WatchedDirectory",
      "name": "WatchedDirectory",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Issues",
      "name": "Issues",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "MatchCount",
      "name": "MatchCount",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "NextBeforeSequence",
      "name": "NextBeforeSequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "SnapshotSequence",
      "name": "SnapshotSequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "State",
      "name": "State",
      "type": "LogReadState",
      "options": [
        "Available",
        "Empty",
        "Partial",
        "Unavailable"
      ],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogStepExecution

ID: LogStepExecution
Website: /doku/logs/LogStepExecution/

### errors

State, Issues und IsComplete begrenzen die Aussagekraft. Ein leerer beziehungsweise nicht verfuegbarer Bestand ist kein Erfolgsbeleg. Fehlende ExecutionId oder Endzeitpunkte nicht erfinden.

### example

Filtere einen konkreten RunId und lese LogPage mit unveraenderter SnapshotSequence bis NextBeforeSequence=null. Ordne danach StepExecutionId, StepSummaries und Laufstatus gemeinsam zu. Der Log-Leitfaden zeigt ein synthetisches Ereignis im echten Serializerformat.

### field.Cause

Strukturierte Ursache dieser Step-Ausfuehrung beziehungsweise Nichtausfuehrung mit StepId, ExecutionId, Reason, Phase und Iteration. Nicht aus Nachrichtentexten erraten.

### field.Cause.ExecutionId

Optionale konkrete Ausführungs-ID eines Steps. Bei nicht ausgefuehrten Steps kann sie fehlen; sie ist nicht die konfigurierte Step-ID.

### field.Cause.Iteration

Nummer des Hauptdurchlaufs, soweit das Ereignis einem Durchlauf zugeordnet ist.

### field.Cause.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Cause.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.Cause.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.DurationMs

Gemessene Dauer in Millisekunden. Ein fehlender Wert ist keine Dauer von null.

### field.Events

Zugeordnete Ereignisse dieser konkreten Step-Ausfuehrung. Zusätzliche aggregierte Summary gemeinsam berücksichtigen.

### field.Events.Area

Textuelle Kontext-/Bereichsangabe. Für fachliche Filter zusätzlich die typisierte Category verwenden.

### field.Events.BranchDecision

Strukturierte Entscheidung eines Bedingungsblocks mit Aktivität, Grund und Operatoren ohne rohe Vergleichswerte.

### field.Events.BranchDecision.BranchActive

Ob der betreffende Zweig bei dieser Entscheidung gewählt wurde.

### field.Events.BranchDecision.Conditions

Ausgewertete Bedingungen mit Position, Zustand und Operator; bewusst ohne sensible Rohvergleichswerte.

### field.Events.BranchDecision.Conditions.Operator

Operator der ausgewerteten Bedingung, ohne deren rohen Vergleichsinhalt.

### field.Events.BranchDecision.Conditions.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.Events.BranchDecision.Conditions.State

Zustand einer Bedingung/Beobachtung. Fehlende Belege nicht als false oder erfolgreich umdeuten.

### field.Events.BranchDecision.MatchMode

Verknüpfung der Bedingungsliste, soweit diese Entscheidung einen Vergleich besitzt.

### field.Events.BranchDecision.ParentActive

Ob der übergeordnete Block bei dieser Entscheidung aktiv war.

### field.Events.BranchDecision.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.Events.Category

Typisierter Fachbereich, zum Beispiel FileAccess, Capture oder Script. Daraus wird keine Ausführung anhand des Nachrichtentexts abgeleitet.

### field.Events.Category.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Events.Category.option.Capture

Bildschirm-/Kameraaufnahme.

### field.Events.Category.option.Detection

Bild-/Text-/Punkterkennung und Auswertung.

### field.Events.Category.option.Execution

Ausführung und Ablaufsteuerung.

### field.Events.Category.option.FileAccess

Datei-/Ordnerzugriffe und ihre Diagnose.

### field.Events.Category.option.General

Allgemeiner Log-Fachbereich ohne spezielleren Ausführungsbereich.

### field.Events.Category.option.Process

Programmstart, Suche, Fokus und Beenden.

### field.Events.Category.option.Script

Skriptausführung und zugehörige Hintergrundarbeit.

### field.Events.Category.option.Video

Videoaufnahme und Finalisierung.

### field.Events.Category.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### field.Events.Code

Stabiler Ereignistoken wie step.completed. Für Auswertungen diesen Token verwenden statt übersetzte Nachrichtentexte zu parsen.

### field.Events.Context

Korrelationsobjekt mit Lauf-, Step-, Trigger- und gegebenenfalls Elternlauf-Identitäten.

### field.Events.Context.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.Events.Context.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.Events.Context.ParentRunId

Übergeordneter Lauf eines Unterjobs. Ermöglicht die Navigation von besitzender Arbeit zu Kindläufen.

### field.Events.Context.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.Events.Context.StepExecutionId

Identität einer tatsächlichen Step-Ausführung. Start und terminales Ereignis teilen sie; eine Wiederholung erhält eine neue Identität.

### field.Events.Context.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.Events.Context.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### field.Events.Details

Optionale bereinigte Zusatzdiagnose. Eingabewerte, Skriptargumente und Secrets werden nicht vollständig hineinkopiert.

### field.Events.DiagnosticCode

Stabiler Diagnosecode für bekannte Fehler-/Speicherfälle, soweit vorhanden.

### field.Events.DurationMs

Gemessene Dauer in Millisekunden. Ein fehlender Wert ist keine Dauer von null.

### field.Events.FlowEffect

Strukturierter Einfluss auf den Ablauf, etwa beendete Hauptphase oder nächster Durchlauf.

### field.Events.FlowEffect.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Events.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.Events.Iteration

Nummer des Hauptdurchlaufs, soweit das Ereignis einem Durchlauf zugeordnet ist.

### field.Events.Level

Schweregrad Debug, Information, Warning oder Error. Eine Warning ist nicht automatisch ein abgebrochener Lauf.

### field.Events.Level.option.Debug

Technische Detailbeobachtung.

### field.Events.Level.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### field.Events.Level.option.Information

Normale Lebenszyklus-/Aktionsinformation.

### field.Events.Level.option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### field.Events.Message

Lesbare, bereinigte Nachricht. Sie ist eine Anzeige und keine stabile Programmierschnittstelle.

### field.Events.Parameters

Explizit erlaubte, bereinigte Diagnosewerte. Keine vollständige Kopie der Step-settings oder frei verfügbarer Eingabeinhalte.

### field.Events.Paths

Explizit erlaubte strukturierte Aktionspfade. Werden getrennt von beliebigen Eingabetexten erfasst und bei Export erneut bereinigt.

### field.Events.Paths.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Events.Paths.Value

Wert eines strukturierten erlaubten Pfad-/Diagnoseeintrags, entsprechend seinem umgebenden Typ.

### field.Events.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Events.ProblemId

Gemeinsame Problemidentität für mehrere Diagnosen desselben Vorfalls; dadurch werden Probleme nicht anhand ihrer Textzeilen doppelt gezählt.

### field.Events.RelatedInstanceIds

Instanzen, die an einer Automationsentscheidung beteiligt waren, zum Beispiel bereits laufende Ziele bei Restart/Ignore.

### field.Events.SchemaVersion

Version des strukturierten Logformats; der aktuelle Repository-Vertrag ist Schema 2.

### field.Events.Sequence

Repositoryweit aufsteigende Ereignissequenz für Reihenfolge und Seitencursor, unabhängig von gleichzeitigen Zeitstempeln.

### field.Events.Source

Ursprungsart Job, Automation, Application oder Makro.

### field.Events.Source.option.Application

Ereignis stammt aus der Anwendung selbst.

### field.Events.Source.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Events.Source.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.Events.Source.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.Events.SourceId

Stabile ID des ursprünglichen Jobs/Makros/der Automation; sie ist nicht die Identität eines einzelnen Laufs.

### field.Events.SourceName

Zum Ereigniszeitpunkt gespeicherter Anzeigename der Quelle.

### field.Events.Timestamp

Zeitpunkt des Ereignisses mit Zeitzonenoffset. Für Vergleiche UTC verwenden.

### field.Events.Trigger

Snapshot der auslösenden Ereignisart und Zielzuordnung, soweit vorhanden.

### field.Events.Trigger.EventKind

Konkrete Ereignisart des Trigger-Snapshots.

### field.Events.Trigger.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Events.Trigger.TargetId

Stabile ID des von der Automation angesprochenen Jobs/Makros.

### field.Events.Trigger.TargetKind

Art des Automationsziels: Job oder Makro.

### field.Events.Trigger.TargetName

Gespeicherter Anzeigename des Ziels zum Zeitpunkt der Beobachtung.

### field.Events.Trigger.WatchedDirectory

Explizit erlaubter beobachteter Ordnerpfad für eine Datei-Automation.

### field.ExecutionId

Optionale konkrete Ausführungs-ID eines Steps. Bei nicht ausgefuehrten Steps kann sie fehlen; sie ist nicht die konfigurierte Step-ID.

### field.Iteration

Nummer des Hauptdurchlaufs, soweit das Ereignis einem Durchlauf zugeordnet ist.

### field.Outcome

Lebenszyklus und Qualität des Laufs. Successful, WithWarnings und WithErrors unterscheiden Abschluss von Problemfreiheit.

### field.Outcome.option.Cancelled

Eine begonnene Step-Ausführung wurde abgebrochen.

### field.Outcome.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### field.Outcome.option.NotExecuted

Der Step wurde in diesem Ablauf nicht ausgeführt.

### field.Outcome.option.Pending

Noch kein terminales Step-Ergebnis vorhanden.

### field.Outcome.option.Running

Lauf ist noch aktiv und hat keinen belegten Abschluss.

### field.Outcome.option.Skipped

Der Step wurde übersprungen; Reason für deaktiviert, inaktiven Zweig oder fehlende Eingabe prüfen.

### field.Outcome.option.Successful

Lauf erfolgreich beendet, ohne die Qualität als Warnung/Fehler einzustufen.

### field.Outcome.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### field.Outcome.option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### field.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.Step

Snapshot der Step-Konfiguration: Id, TypeId, Position, Phase und Enabled zum Laufzeitpunkt.

### field.Step.Enabled

Ob der Step im Lauf-Snapshot aktiviert war. Disabled ist von einem aktivierten, aber nicht erreichten Step zu unterscheiden.

### field.Step.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.Step.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Step.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.Step.TypeId

Kanonische Step-Typ-ID, zum Beispiel file_system_operation, unabhängig vom sichtbaren Label.

### field.Summary

Optionale aggregierte Step-Zusammenfassung, insbesondere für wiederholte Hauptphasen. Count, Iterations, LastEvent und IterationCoverageComplete gemeinsam lesen.

### field.Summary.Code

Stabiler Ereignistoken wie step.completed. Für Auswertungen diesen Token verwenden statt übersetzte Nachrichtentexte zu parsen.

### field.Summary.Count

Anzahl der in dieser Zusammenfassung enthaltenen Beobachtungen.

### field.Summary.IterationCoverageComplete

Ob die Zuordnung aller zusammengefassten Durchläufe vollständig belegt ist.

### field.Summary.Iterations

Zusammengefasste Durchlaufbereiche dieser Beobachtung; anhand First und Last lesen.

### field.Summary.Iterations.First

Erster Durchlauf eines zusammengefassten Bereichs.

### field.Summary.Iterations.Last

Letzter Durchlauf eines zusammengefassten Bereichs, einschließlich dieser Grenze.

### field.Summary.LastEvent

Letzte bereinigte Beobachtung der Zusammenfassung. Sie ist nicht automatisch ein zusätzliches individuelles Ereignis im JSONL-Strom.

### field.Summary.LastEvent.Area

Textuelle Kontext-/Bereichsangabe. Für fachliche Filter zusätzlich die typisierte Category verwenden.

### field.Summary.LastEvent.BranchDecision

Strukturierte Entscheidung eines Bedingungsblocks mit Aktivität, Grund und Operatoren ohne rohe Vergleichswerte.

### field.Summary.LastEvent.BranchDecision.BranchActive

Ob der betreffende Zweig bei dieser Entscheidung gewählt wurde.

### field.Summary.LastEvent.BranchDecision.Conditions

Ausgewertete Bedingungen mit Position, Zustand und Operator; bewusst ohne sensible Rohvergleichswerte.

### field.Summary.LastEvent.BranchDecision.Conditions.Operator

Operator der ausgewerteten Bedingung, ohne deren rohen Vergleichsinhalt.

### field.Summary.LastEvent.BranchDecision.Conditions.Position

Position des Steps beziehungsweise der Bedingung im gespeicherten Snapshot.

### field.Summary.LastEvent.BranchDecision.Conditions.State

Zustand einer Bedingung/Beobachtung. Fehlende Belege nicht als false oder erfolgreich umdeuten.

### field.Summary.LastEvent.BranchDecision.MatchMode

Verknüpfung der Bedingungsliste, soweit diese Entscheidung einen Vergleich besitzt.

### field.Summary.LastEvent.BranchDecision.ParentActive

Ob der übergeordnete Block bei dieser Entscheidung aktiv war.

### field.Summary.LastEvent.BranchDecision.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.Summary.LastEvent.Category

Typisierter Fachbereich, zum Beispiel FileAccess, Capture oder Script. Daraus wird keine Ausführung anhand des Nachrichtentexts abgeleitet.

### field.Summary.LastEvent.Category.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Summary.LastEvent.Category.option.Capture

Bildschirm-/Kameraaufnahme.

### field.Summary.LastEvent.Category.option.Detection

Bild-/Text-/Punkterkennung und Auswertung.

### field.Summary.LastEvent.Category.option.Execution

Ausführung und Ablaufsteuerung.

### field.Summary.LastEvent.Category.option.FileAccess

Datei-/Ordnerzugriffe und ihre Diagnose.

### field.Summary.LastEvent.Category.option.General

Allgemeiner Log-Fachbereich ohne spezielleren Ausführungsbereich.

### field.Summary.LastEvent.Category.option.Process

Programmstart, Suche, Fokus und Beenden.

### field.Summary.LastEvent.Category.option.Script

Skriptausführung und zugehörige Hintergrundarbeit.

### field.Summary.LastEvent.Category.option.Video

Videoaufnahme und Finalisierung.

### field.Summary.LastEvent.Category.option.Windows

Windows-Taste als Modifikator (Bitmaske 8) beziehungsweise Windows-Fachbereich, wenn diese Option zu einem Log-Bereich gehört.

### field.Summary.LastEvent.Code

Stabiler Ereignistoken wie step.completed. Für Auswertungen diesen Token verwenden statt übersetzte Nachrichtentexte zu parsen.

### field.Summary.LastEvent.Context

Korrelationsobjekt mit Lauf-, Step-, Trigger- und gegebenenfalls Elternlauf-Identitäten.

### field.Summary.LastEvent.Context.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.Summary.LastEvent.Context.InstanceId

Dispatcher-Instanz-ID der Ausführung. Mehrere Ausführungen desselben Jobs besitzen unterschiedliche Instanzen.

### field.Summary.LastEvent.Context.ParentRunId

Übergeordneter Lauf eines Unterjobs. Ermöglicht die Navigation von besitzender Arbeit zu Kindläufen.

### field.Summary.LastEvent.Context.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.Summary.LastEvent.Context.StepExecutionId

Identität einer tatsächlichen Step-Ausführung. Start und terminales Ereignis teilen sie; eine Wiederholung erhält eine neue Identität.

### field.Summary.LastEvent.Context.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.Summary.LastEvent.Context.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### field.Summary.LastEvent.Details

Optionale bereinigte Zusatzdiagnose. Eingabewerte, Skriptargumente und Secrets werden nicht vollständig hineinkopiert.

### field.Summary.LastEvent.DiagnosticCode

Stabiler Diagnosecode für bekannte Fehler-/Speicherfälle, soweit vorhanden.

### field.Summary.LastEvent.DurationMs

Gemessene Dauer in Millisekunden. Ein fehlender Wert ist keine Dauer von null.

### field.Summary.LastEvent.FlowEffect

Strukturierter Einfluss auf den Ablauf, etwa beendete Hauptphase oder nächster Durchlauf.

### field.Summary.LastEvent.FlowEffect.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Summary.LastEvent.Id

Eindeutige Identität des Ereignisses beziehungsweise Laufs. Ereignis-ID und RunId haben unterschiedliche Aufgaben.

### field.Summary.LastEvent.Iteration

Nummer des Hauptdurchlaufs, soweit das Ereignis einem Durchlauf zugeordnet ist.

### field.Summary.LastEvent.Level

Schweregrad Debug, Information, Warning oder Error. Eine Warning ist nicht automatisch ein abgebrochener Lauf.

### field.Summary.LastEvent.Level.option.Debug

Technische Detailbeobachtung.

### field.Summary.LastEvent.Level.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### field.Summary.LastEvent.Level.option.Information

Normale Lebenszyklus-/Aktionsinformation.

### field.Summary.LastEvent.Level.option.Warning

Problemhinweis, der nicht zwingend den Lauf beendet.

### field.Summary.LastEvent.Message

Lesbare, bereinigte Nachricht. Sie ist eine Anzeige und keine stabile Programmierschnittstelle.

### field.Summary.LastEvent.Parameters

Explizit erlaubte, bereinigte Diagnosewerte. Keine vollständige Kopie der Step-settings oder frei verfügbarer Eingabeinhalte.

### field.Summary.LastEvent.Paths

Explizit erlaubte strukturierte Aktionspfade. Werden getrennt von beliebigen Eingabetexten erfasst und bei Export erneut bereinigt.

### field.Summary.LastEvent.Paths.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Summary.LastEvent.Paths.Value

Wert eines strukturierten erlaubten Pfad-/Diagnoseeintrags, entsprechend seinem umgebenden Typ.

### field.Summary.LastEvent.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Summary.LastEvent.ProblemId

Gemeinsame Problemidentität für mehrere Diagnosen desselben Vorfalls; dadurch werden Probleme nicht anhand ihrer Textzeilen doppelt gezählt.

### field.Summary.LastEvent.RelatedInstanceIds

Instanzen, die an einer Automationsentscheidung beteiligt waren, zum Beispiel bereits laufende Ziele bei Restart/Ignore.

### field.Summary.LastEvent.SchemaVersion

Version des strukturierten Logformats; der aktuelle Repository-Vertrag ist Schema 2.

### field.Summary.LastEvent.Sequence

Repositoryweit aufsteigende Ereignissequenz für Reihenfolge und Seitencursor, unabhängig von gleichzeitigen Zeitstempeln.

### field.Summary.LastEvent.Source

Ursprungsart Job, Automation, Application oder Makro.

### field.Summary.LastEvent.Source.option.Application

Ereignis stammt aus der Anwendung selbst.

### field.Summary.LastEvent.Source.option.Automation

Triggerbeobachtung und Automationsentscheidungen.

### field.Summary.LastEvent.Source.option.Job

Quelle beziehungsweise Ziel ist ein Job.

### field.Summary.LastEvent.Source.option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### field.Summary.LastEvent.SourceId

Stabile ID des ursprünglichen Jobs/Makros/der Automation; sie ist nicht die Identität eines einzelnen Laufs.

### field.Summary.LastEvent.SourceName

Zum Ereigniszeitpunkt gespeicherter Anzeigename der Quelle.

### field.Summary.LastEvent.Timestamp

Zeitpunkt des Ereignisses mit Zeitzonenoffset. Für Vergleiche UTC verwenden.

### field.Summary.LastEvent.Trigger

Snapshot der auslösenden Ereignisart und Zielzuordnung, soweit vorhanden.

### field.Summary.LastEvent.Trigger.EventKind

Konkrete Ereignisart des Trigger-Snapshots.

### field.Summary.LastEvent.Trigger.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.Summary.LastEvent.Trigger.TargetId

Stabile ID des von der Automation angesprochenen Jobs/Makros.

### field.Summary.LastEvent.Trigger.TargetKind

Art des Automationsziels: Job oder Makro.

### field.Summary.LastEvent.Trigger.TargetName

Gespeicherter Anzeigename des Ziels zum Zeitpunkt der Beobachtung.

### field.Summary.LastEvent.Trigger.WatchedDirectory

Explizit erlaubter beobachteter Ordnerpfad für eine Datei-Automation.

### field.Summary.Phase

Bereich der Ausführung: Startphase, Hauptphase oder Endphase. Er beeinflusst die Bedeutung fehlender und übersprungener Steps.

### field.Summary.Reason

Stabiler Grund für Skip, Entscheidung oder Abschluss. Im Zusammenhang mit Code und Phase interpretieren.

### field.Summary.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.Summary.TotalDurationMs

Summe der gemessenen Dauer der zusammengefassten Beobachtungen in Millisekunden.

### purpose

Auswertung einer konkreten Step-Ausfuehrung: Konfigurationssnapshot, Status, Dauer, Ereignisse, Ursache und optionale aggregierte Summary. Nicht ausgefuehrte Steps koennen ohne ExecutionId erscheinen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogStepExecution",
  "name": "LogStepExecution",
  "options": [],
  "fields": [
    {
      "id": "Cause",
      "name": "Cause",
      "type": "LogStepCause",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Cause.ExecutionId",
      "name": "ExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Cause.Iteration",
      "name": "Iteration",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Cause.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Cause.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Cause.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "DurationMs",
      "name": "DurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events",
      "name": "Events",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Area",
      "name": "Area",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision",
      "name": "BranchDecision",
      "type": "LogBranchDecision",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.BranchActive",
      "name": "BranchActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.Conditions",
      "name": "Conditions",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.Conditions.Operator",
      "name": "Operator",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.Conditions.Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.Conditions.State",
      "name": "State",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.MatchMode",
      "name": "MatchMode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.ParentActive",
      "name": "ParentActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.BranchDecision.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Category",
      "name": "Category",
      "type": "LogArea",
      "options": [
        "General",
        "Execution",
        "Automation",
        "FileAccess",
        "Capture",
        "Detection",
        "Process",
        "Script",
        "Video",
        "Windows"
      ],
      "defaultValue": null
    },
    {
      "id": "Events.Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context",
      "name": "Context",
      "type": "LogContext",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context.AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context.InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context.ParentRunId",
      "name": "ParentRunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context.RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context.StepExecutionId",
      "name": "StepExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Context.TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Details",
      "name": "Details",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.DiagnosticCode",
      "name": "DiagnosticCode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.DurationMs",
      "name": "DurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.FlowEffect",
      "name": "FlowEffect",
      "type": "LogFlowEffect",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.FlowEffect.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Id",
      "name": "Id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Iteration",
      "name": "Iteration",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Level",
      "name": "Level",
      "type": "ExecutionLogLevel",
      "options": [
        "Debug",
        "Information",
        "Warning",
        "Error"
      ],
      "defaultValue": null
    },
    {
      "id": "Events.Message",
      "name": "Message",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Parameters",
      "name": "Parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Paths",
      "name": "Paths",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Paths.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Paths.Value",
      "name": "Value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.ProblemId",
      "name": "ProblemId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.RelatedInstanceIds",
      "name": "RelatedInstanceIds",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.SchemaVersion",
      "name": "SchemaVersion",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Sequence",
      "name": "Sequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Source",
      "name": "Source",
      "type": "LogSource",
      "options": [
        "Job",
        "Automation",
        "Application",
        "Makro"
      ],
      "defaultValue": null
    },
    {
      "id": "Events.SourceId",
      "name": "SourceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.SourceName",
      "name": "SourceName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Timestamp",
      "name": "Timestamp",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Trigger",
      "name": "Trigger",
      "type": "LogTriggerSnapshot",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Trigger.EventKind",
      "name": "EventKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Trigger.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Trigger.TargetId",
      "name": "TargetId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Trigger.TargetKind",
      "name": "TargetKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Trigger.TargetName",
      "name": "TargetName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Events.Trigger.WatchedDirectory",
      "name": "WatchedDirectory",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "ExecutionId",
      "name": "ExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Iteration",
      "name": "Iteration",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Outcome",
      "name": "Outcome",
      "type": "StepLogOutcome",
      "options": [
        "Running",
        "Successful",
        "Warning",
        "Failed",
        "Skipped",
        "Cancelled",
        "NotExecuted",
        "Pending",
        "Unknown"
      ],
      "defaultValue": null
    },
    {
      "id": "Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Step",
      "name": "Step",
      "type": "LogStepSnapshot",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Step.Enabled",
      "name": "Enabled",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Step.Id",
      "name": "Id",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Step.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Step.Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Step.TypeId",
      "name": "TypeId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary",
      "name": "Summary",
      "type": "LogStepSummary",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.Count",
      "name": "Count",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.IterationCoverageComplete",
      "name": "IterationCoverageComplete",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.Iterations",
      "name": "Iterations",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.Iterations.First",
      "name": "First",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.Iterations.Last",
      "name": "Last",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent",
      "name": "LastEvent",
      "type": "LogEvent",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Area",
      "name": "Area",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision",
      "name": "BranchDecision",
      "type": "LogBranchDecision",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.BranchActive",
      "name": "BranchActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.Conditions",
      "name": "Conditions",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.Conditions.Operator",
      "name": "Operator",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.Conditions.Position",
      "name": "Position",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.Conditions.State",
      "name": "State",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.MatchMode",
      "name": "MatchMode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.ParentActive",
      "name": "ParentActive",
      "type": "Boolean",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.BranchDecision.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Category",
      "name": "Category",
      "type": "LogArea",
      "options": [
        "General",
        "Execution",
        "Automation",
        "FileAccess",
        "Capture",
        "Detection",
        "Process",
        "Script",
        "Video",
        "Windows"
      ],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context",
      "name": "Context",
      "type": "LogContext",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context.AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context.InstanceId",
      "name": "InstanceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context.ParentRunId",
      "name": "ParentRunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context.RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context.StepExecutionId",
      "name": "StepExecutionId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Context.TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Details",
      "name": "Details",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.DiagnosticCode",
      "name": "DiagnosticCode",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.DurationMs",
      "name": "DurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.FlowEffect",
      "name": "FlowEffect",
      "type": "LogFlowEffect",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.FlowEffect.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Id",
      "name": "Id",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Iteration",
      "name": "Iteration",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Level",
      "name": "Level",
      "type": "ExecutionLogLevel",
      "options": [
        "Debug",
        "Information",
        "Warning",
        "Error"
      ],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Message",
      "name": "Message",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Parameters",
      "name": "Parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Paths",
      "name": "Paths",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Paths.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Paths.Value",
      "name": "Value",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.ProblemId",
      "name": "ProblemId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.RelatedInstanceIds",
      "name": "RelatedInstanceIds",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.SchemaVersion",
      "name": "SchemaVersion",
      "type": "Int32",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Sequence",
      "name": "Sequence",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Source",
      "name": "Source",
      "type": "LogSource",
      "options": [
        "Job",
        "Automation",
        "Application",
        "Makro"
      ],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.SourceId",
      "name": "SourceId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.SourceName",
      "name": "SourceName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Timestamp",
      "name": "Timestamp",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Trigger",
      "name": "Trigger",
      "type": "LogTriggerSnapshot",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Trigger.EventKind",
      "name": "EventKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Trigger.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Trigger.TargetId",
      "name": "TargetId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Trigger.TargetKind",
      "name": "TargetKind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Trigger.TargetName",
      "name": "TargetName",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.LastEvent.Trigger.WatchedDirectory",
      "name": "WatchedDirectory",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.Phase",
      "name": "Phase",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.Reason",
      "name": "Reason",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Summary.TotalDurationMs",
      "name": "TotalDurationMs",
      "type": "Int64",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogAction

ID: LogAction
Website: /doku/logs/LogAction/

### errors

State, Issues und IsComplete begrenzen die Aussagekraft. Ein leerer beziehungsweise nicht verfuegbarer Bestand ist kein Erfolgsbeleg. Fehlende ExecutionId oder Endzeitpunkte nicht erfinden.

### example

Filtere einen konkreten RunId und lese LogPage mit unveraenderter SnapshotSequence bis NextBeforeSequence=null. Ordne danach StepExecutionId, StepSummaries und Laufstatus gemeinsam zu. Der Log-Leitfaden zeigt ein synthetisches Ereignis im echten Serializerformat.

### field.Kind

Art der angebotenen Diagnoseaktion. RunId, StepId oder Path sind nur im Kontext dieser Art relevant; keine Trigger-Art und kein Step-type.

### field.Path

Optionaler strukturierter Pfad einer Diagnoseaktion. Nur im beschriebenen Aktionskontext verwenden; ein vorhandener Pfad beweist weder Existenz noch erfolgreiche Dateioperation.

### field.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### purpose

Eine konkrete Hilfs- beziehungsweise Navigationsaktion der Diagnose. Kind bestimmt die Bedeutung der optionalen RunId, StepId und Path; dieses Objekt ist kein Auftrag zur Jobausfuehrung.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogAction",
  "name": "LogAction",
  "options": [],
  "fields": [
    {
      "id": "Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Path",
      "name": "Path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: LogDiagnostic

ID: LogDiagnostic
Website: /doku/logs/LogDiagnostic/

### errors

State, Issues und IsComplete begrenzen die Aussagekraft. Ein leerer beziehungsweise nicht verfuegbarer Bestand ist kein Erfolgsbeleg. Fehlende ExecutionId oder Endzeitpunkte nicht erfinden.

### example

Filtere einen konkreten RunId und lese LogPage mit unveraenderter SnapshotSequence bis NextBeforeSequence=null. Ordne danach StepExecutionId, StepSummaries und Laufstatus gemeinsam zu. Der Log-Leitfaden zeigt ein synthetisches Ereignis im echten Serializerformat.

### field.Actions

Angebotene Diagnoseaktionen mit Kind und optional RunId, StepId oder Path. Verweisen auf konkrete Hilfs-/Navigationsziele; sind keine ausgefuehrten Jobs.

### field.Actions.Kind

Art der jeweiligen Diagnose-Hilfsaktion; die optionalen Ziel-IDs und Pfade passend zu dieser Art interpretieren.

### field.Actions.Path

Optionaler strukturierter Pfad einer Diagnoseaktion. Nur im beschriebenen Aktionskontext verwenden; ein vorhandener Pfad beweist weder Existenz noch erfolgreiche Dateioperation.

### field.Actions.RunId

ID genau dieses Laufs. Verknüpft Starts, Steps, Probleme und Abschluss desselben Laufs.

### field.Actions.StepId

Stabile ID des Job-Steps; derselbe Step kann in mehreren Durchläufen ausgeführt werden.

### field.CauseKey

Lokalisierungsschlüssel der Diagnoseursache. Fuer Anzeige aufloesen, für maschinelle Identitaet den stabilen Code verwenden.

### field.Code

Stabiler Diagnosecode, unabhaengig von lokalisierter Ursache und Hilfe. Mit CauseKey, HelpKey und Actions für die Anzeige kombinieren.

### field.HelpKey

Lokalisierungsschlüssel des konkreten Hilfetexts zur Diagnose. Kein freier Skriptbefehl.

### purpose

Stabiler Diagnosecode mit lokalisierten Ursachen-/Hilfeschlüsseln und angebotenen Hilfsaktionen. Übersetzte Texte nicht als maschinelle Identitaet verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LogDiagnostic",
  "name": "LogDiagnostic",
  "options": [],
  "fields": [
    {
      "id": "Actions",
      "name": "Actions",
      "type": "IReadOnlyList`1",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Actions.Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Actions.Path",
      "name": "Path",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Actions.RunId",
      "name": "RunId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Actions.StepId",
      "name": "StepId",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "CauseKey",
      "name": "CauseKey",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Code",
      "name": "Code",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "HelpKey",
      "name": "HelpKey",
      "type": "String",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: AutomationTriggerContext

ID: AutomationTriggerContext
Website: /doku/logs/AutomationTriggerContext/

### errors

State, Issues und IsComplete begrenzen die Aussagekraft. Ein leerer beziehungsweise nicht verfuegbarer Bestand ist kein Erfolgsbeleg. Fehlende ExecutionId oder Endzeitpunkte nicht erfinden.

### example

Filtere einen konkreten RunId und lese LogPage mit unveraenderter SnapshotSequence bis NextBeforeSequence=null. Ordne danach StepExecutionId, StepSummaries und Laufstatus gemeinsam zu. Der Log-Leitfaden zeigt ein synthetisches Ereignis im echten Serializerformat.

### field.AutomationId

ID der auslösenden Automation, falls der Lauf aus einer Automation stammt.

### field.Kind

Art des Triggers beziehungsweise der strukturierten Beobachtung.

### field.ObservedAt

Zeitpunkt der Triggerbeobachtung mit Offset. Er ist noch kein Zeitpunkt eines erfolgreichen Zielstarts oder Zielabschlusses.

### field.Parameters

Explizit erlaubte, bereinigte Diagnosewerte. Keine vollständige Kopie der Step-settings oder frei verfügbarer Eingabeinhalte.

### field.TriggerId

Identität der konkreten Ereignisbeobachtung, nicht nur der gespeicherten Triggerkonfiguration.

### purpose

Identitaet und Zeitpunkt einer konkreten Triggerbeobachtung. AutomationId referenziert die Definition, TriggerId diese Beobachtung; Parameters enthaelt deren strukturierte Angaben.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "AutomationTriggerContext",
  "name": "AutomationTriggerContext",
  "options": [],
  "fields": [
    {
      "id": "AutomationId",
      "name": "AutomationId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Kind",
      "name": "Kind",
      "type": "String",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "ObservedAt",
      "name": "ObservedAt",
      "type": "DateTimeOffset",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "Parameters",
      "name": "Parameters",
      "type": "Dictionary`2",
      "options": [],
      "defaultValue": null
    },
    {
      "id": "TriggerId",
      "name": "TriggerId",
      "type": "Guid",
      "options": [],
      "defaultValue": null
    }
  ]
}
```

## Logs: ExecutionLogKind

ID: ExecutionLogKind
Website: /doku/logs/ExecutionLogKind/

### errors

State, Issues und IsComplete begrenzen die Aussagekraft. Ein leerer beziehungsweise nicht verfuegbarer Bestand ist kein Erfolgsbeleg. Fehlende ExecutionId oder Endzeitpunkte nicht erfinden.

### example

Filtere einen konkreten RunId und lese LogPage mit unveraenderter SnapshotSequence bis NextBeforeSequence=null. Ordne danach StepExecutionId, StepSummaries und Laufstatus gemeinsam zu. Der Log-Leitfaden zeigt ein synthetisches Ereignis im echten Serializerformat.

### option.Job

Quelle beziehungsweise Ziel ist ein Job.

### option.Makro

Quelle beziehungsweise Ziel ist ein Makro.

### purpose

Art eines ausfuehrbaren Laufziels: Job oder Makro. Anders als LogSource umfasst dieser Vertrag weder Application noch Automation.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ExecutionLogKind",
  "name": "ExecutionLogKind",
  "options": [
    "Job",
    "Makro"
  ],
  "fields": []
}
```

## Logs: AccessDenied

ID: LOG-ACCESS-001
Website: /doku/logs/LOG-ACCESS-001/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Zugriff wurde verweigert. Rechte und Zugriffskontext der Anwendung auf dem Zielrechner prüfen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LOG-ACCESS-001",
  "name": "AccessDenied"
}
```

## Logs: AutomationDecision

ID: automation.decision
Website: /doku/logs/automation.decision/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Startregel wurde ausgewertet, zum Beispiel Cooldown oder Verhalten bei laufendem Ziel. RelatedInstanceIds helfen bei der Zuordnung.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "automation.decision",
  "name": "AutomationDecision"
}
```

## Logs: FileUnavailable

ID: LOG-FILE-004
Website: /doku/logs/LOG-FILE-004/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Eine benötigte Datei beziehungsweise Logdatei ist nicht verfügbar. Prüfe angegebene erlaubte Pfade und die Vollständigkeit der Belege.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LOG-FILE-004",
  "name": "FileUnavailable"
}
```

## Logs: IterationCompleted

ID: run.iteration-completed
Website: /doku/logs/run.iteration-completed/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Beleg eines abgeschlossenen Hauptdurchlaufs; Wiederholungszähler können aggregiert gespeichert werden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "run.iteration-completed",
  "name": "IterationCompleted"
}
```

## Logs: Message

ID: diagnostic.message
Website: /doku/logs/diagnostic.message/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Normale bereinigte Beobachtung; daraus allein keinen Laufabschluss ableiten.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "diagnostic.message",
  "name": "Message"
}
```

## Logs: RunCompleted

ID: run.completed
Website: /doku/logs/run.completed/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Belegter Laufabschluss. Outcome und CompletionReason unterscheiden Qualität und Abschlussgrund.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "run.completed",
  "name": "RunCompleted"
}
```

## Logs: RunStarted

ID: run.started
Website: /doku/logs/run.started/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Der Lauf wurde angelegt und gestartet; sein späterer Outcome entscheidet über den Abschluss.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "run.started",
  "name": "RunStarted"
}
```

## Logs: RunState

ID: run.state
Website: /doku/logs/run.state/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Änderung des Ausführungszustands, zum Beispiel Pause oder angeforderter Stopp.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "run.state",
  "name": "RunState"
}
```

## Logs: StartRejected

ID: run.start-rejected
Website: /doku/logs/run.start-rejected/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Eine Startanforderung wurde abgewiesen; sie ist keine erfolgreiche Step-Ausführung.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "run.start-rejected",
  "name": "StartRejected"
}
```

## Logs: StepBackgroundCancelled

ID: step.background-cancelled
Website: /doku/logs/step.background-cancelled/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Die zugeordnete Hintergrundarbeit wurde abgebrochen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.background-cancelled",
  "name": "StepBackgroundCancelled"
}
```

## Logs: StepBackgroundCompleted

ID: step.background-completed
Website: /doku/logs/step.background-completed/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Die zugeordnete Hintergrundarbeit wurde erfolgreich abgeschlossen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.background-completed",
  "name": "StepBackgroundCompleted"
}
```

## Logs: StepBackgroundFailed

ID: step.background-failed
Website: /doku/logs/step.background-failed/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Die zugeordnete Hintergrundarbeit ist fehlgeschlagen und kann ihren besitzenden Job fehlschlagen lassen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.background-failed",
  "name": "StepBackgroundFailed"
}
```

## Logs: StepBackgroundStarted

ID: step.background-started
Website: /doku/logs/step.background-started/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Besessene Hintergrundarbeit wurde gestartet; die Step-Startanforderung ist noch kein Abschluss dieser Arbeit.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.background-started",
  "name": "StepBackgroundStarted"
}
```

## Logs: StepCancelled

ID: step.cancelled
Website: /doku/logs/step.cancelled/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Eine begonnene Step-Ausführung wurde abgebrochen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.cancelled",
  "name": "StepCancelled"
}
```

## Logs: StepCompleted

ID: step.completed
Website: /doku/logs/step.completed/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Die Step-Ausführung ist beendet. Das fachliche Ergebnis kann trotzdem found=false sein.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.completed",
  "name": "StepCompleted"
}
```

## Logs: StepFailed

ID: step.failed
Website: /doku/logs/step.failed/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Die Step-Ausführung hat einen Fehler gemeldet; Grund und Diagnose im selben Kontext prüfen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.failed",
  "name": "StepFailed"
}
```

## Logs: StepOutput

ID: step.output
Website: /doku/logs/step.output/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Bereinigte Beobachtung einer Step-/Skriptausgabe. Der Verlauf erfasst beispielsweise Stream und Zeichenanzahl statt kompletten Eingabetext.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.output",
  "name": "StepOutput"
}
```

## Logs: StepPaths

ID: step.paths
Website: /doku/logs/step.paths/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Explizit erlaubte strukturierte Pfade einer Datei-/Ausgabeaktion.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.paths",
  "name": "StepPaths"
}
```

## Logs: StepSkipped

ID: step.skipped
Website: /doku/logs/step.skipped/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Der Step wurde bewusst nicht ausgeführt, zum Beispiel deaktiviert, inaktiv oder ohne verfügbare optionale Eingabe. Reason erklärt den Unterschied.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.skipped",
  "name": "StepSkipped"
}
```

## Logs: StepStarted

ID: step.started
Website: /doku/logs/step.started/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Eine tatsächliche Step-Ausführung beginnt; StepExecutionId verbindet sie mit ihrem terminalen Ereignis.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "step.started",
  "name": "StepStarted"
}
```

## Logs: StorageGap

ID: storage.gap
Website: /doku/logs/storage.gap/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Bekannte Lücke in gespeicherten Belegen. IsComplete, LostEntries und Issues berücksichtigen; keine erfolgreiche Ausführung erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "storage.gap",
  "name": "StorageGap"
}
```

## Logs: Trigger

ID: automation.trigger
Website: /doku/logs/automation.trigger/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Eine konkrete Triggerbeobachtung wurde erfasst; sie muss noch die Startregeln passieren.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "automation.trigger",
  "name": "Trigger"
}
```

## Logs: Unexpected

ID: LOG-UNEXPECTED-001
Website: /doku/logs/LOG-UNEXPECTED-001/

### errors

Eine Datenlücke, nicht verfügbare Datei oder IsComplete=false begrenzt die Aussagekraft. Ein Start-/Dispatch-Ereignis beweist keinen Abschluss. Nicht ausgeführte, deaktivierte und übersprungene Steps getrennt behandeln; übersetzte Message-Texte nicht als stabile Statuscodes parsen.

### example

Öffne Logs, filtere die Quelle und den Zeitraum, öffne einen Lauf und verknüpfe die Ereignisse über Context.RunId. Für eine technische Untersuchung den Bericht exportieren und runs.json zusammen mit den JSONL-Ereignissen lesen. Einzelereignisse und StepSummaries gemeinsam berücksichtigen.

### purpose

Unerwartete Diagnose außerhalb eines spezielleren stabilen Codes. Bereinigte Ausnahmetypen und Kontext für Untersuchung verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "LOG-UNEXPECTED-001",
  "name": "Unexpected"
}
```

## Werte und Ergebnisse: ActiveProcessResult

ID: ActiveProcessResult
Website: /doku/werte/ActiveProcessResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ActiveProcessResult. Wird von Prozessstatus prüfen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.is_running

Ob die geprüfte Prozessinstanz beziehungsweise die Prozessabfrage einen laufenden Prozess festgestellt hat. Einzelwert dieses Ergebnisses.

### result.match_count

Anzahl passender Prozesse oder Merkmalszuordnungen im konkreten Ergebnis; der Ergebnis-Typ bestimmt, was gezählt wird. Einzelwert dieses Ergebnisses.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ActiveProcessResult",
  "name": "ActiveProcessResult",
  "result": {
    "TypeName": "ActiveProcessResult",
    "DisplayName": "ActiveProcessResult",
    "Properties": [
      {
        "Name": "IsRunning",
        "DisplayName": "Is Running",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_running",
        "EnumDisplayNames": null,
        "StableId": "is_running"
      },
      {
        "Name": "MatchCount",
        "DisplayName": "Match Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "match_count",
        "EnumDisplayNames": null,
        "StableId": "match_count"
      },
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsRunning",
        "DisplayName": "Is Running",
        "Property": {
          "Name": "IsRunning",
          "DisplayName": "Is Running",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_running",
          "EnumDisplayNames": null,
          "StableId": "is_running"
        },
        "Children": []
      },
      {
        "Segment": "MatchCount",
        "DisplayName": "Match Count",
        "Property": {
          "Name": "MatchCount",
          "DisplayName": "Match Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "match_count",
          "EnumDisplayNames": null,
          "StableId": "match_count"
        },
        "Children": []
      },
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: ActiveWindowResult

ID: ActiveWindowResult
Website: /doku/werte/ActiveWindowResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ActiveWindowResult. Wird von Vordergrundfenster prüfen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.is_active

Ob das geprüfte Fenster zum Abfragezeitpunkt im Vordergrund ist. Einzelwert dieses Ergebnisses.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ActiveWindowResult",
  "name": "ActiveWindowResult",
  "result": {
    "TypeName": "ActiveWindowResult",
    "DisplayName": "ActiveWindowResult",
    "Properties": [
      {
        "Name": "IsActive",
        "DisplayName": "Is Active",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_active",
        "EnumDisplayNames": null,
        "StableId": "is_active"
      },
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      },
      {
        "Name": "WindowHandle",
        "DisplayName": "Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "window_handle",
        "EnumDisplayNames": null,
        "StableId": "window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsActive",
        "DisplayName": "Is Active",
        "Property": {
          "Name": "IsActive",
          "DisplayName": "Is Active",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_active",
          "EnumDisplayNames": null,
          "StableId": "is_active"
        },
        "Children": []
      },
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "WindowHandle",
        "DisplayName": "Window Handle",
        "Property": {
          "Name": "WindowHandle",
          "DisplayName": "Window Handle",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "window_handle",
          "EnumDisplayNames": null,
          "StableId": "window_handle"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: AudioDevicesQueryResult

ID: AudioDevicesQueryResult
Website: /doku/werte/AudioDevicesQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag AudioDevicesQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "AudioDevicesQueryResult",
  "name": "AudioDevicesQueryResult",
  "result": {
    "TypeName": "AudioDevicesQueryResult",
    "DisplayName": "AudioDevicesQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: AudioVolumeQueryResult

ID: AudioVolumeQueryResult
Website: /doku/werte/AudioVolumeQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag AudioVolumeQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.device_exists

Ob das gefilterte Hardwaregerät in der aktuellen Abfrage vorhanden ist. Einzelwert dieses Ergebnisses.

### result.device_id

Vom System ermittelte Geräte-ID; sie ist kein frei gewählter Anzeigename. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_muted

Ob die Audioausgabe stummgeschaltet ist. Einzelwert dieses Ergebnisses.

### result.on_off_state

Ein-/Aus-Zustand der entsprechenden Gerätefunktion gemäß Ergebnisvertrag. Einzelwert dieses Ergebnisses.

### result.on_off_state.option.Off

Der abgefragte Schalter ist ausgeschaltet.

### result.on_off_state.option.On

Der abgefragte Schalter ist eingeschaltet.

### result.on_off_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.volume_percentage

Aktuelle Lautstärke als Prozentwert von 0 bis 100; dies ist anders als Erkennungskonfidenzen bereits eine Prozentskala. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "AudioVolumeQueryResult",
  "name": "AudioVolumeQueryResult",
  "result": {
    "TypeName": "AudioVolumeQueryResult",
    "DisplayName": "AudioVolumeQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "device_exists",
        "EnumDisplayNames": null,
        "StableId": "device_exists"
      },
      {
        "Name": "IsMuted",
        "DisplayName": "Is Muted",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_muted",
        "EnumDisplayNames": null,
        "StableId": "is_muted"
      },
      {
        "Name": "Percentage",
        "DisplayName": "Percentage",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "volume_percentage",
        "EnumDisplayNames": null,
        "StableId": "volume_percentage"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "device_id",
        "EnumDisplayNames": null,
        "StableId": "device_id"
      },
      {
        "Name": "OnOffState",
        "DisplayName": "On Off State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
        "EnumValues": [
          "Unknown",
          "Off",
          "On"
        ],
        "Id": "on_off_state",
        "EnumDisplayNames": null,
        "StableId": "on_off_state"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "device_exists",
          "EnumDisplayNames": null,
          "StableId": "device_exists"
        },
        "Children": []
      },
      {
        "Segment": "IsMuted",
        "DisplayName": "Is Muted",
        "Property": {
          "Name": "IsMuted",
          "DisplayName": "Is Muted",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_muted",
          "EnumDisplayNames": null,
          "StableId": "is_muted"
        },
        "Children": []
      },
      {
        "Segment": "Percentage",
        "DisplayName": "Percentage",
        "Property": {
          "Name": "Percentage",
          "DisplayName": "Percentage",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "volume_percentage",
          "EnumDisplayNames": null,
          "StableId": "volume_percentage"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "device_id",
          "EnumDisplayNames": null,
          "StableId": "device_id"
        },
        "Children": []
      },
      {
        "Segment": "OnOffState",
        "DisplayName": "On Off State",
        "Property": {
          "Name": "OnOffState",
          "DisplayName": "On Off State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
          "EnumValues": [
            "Unknown",
            "Off",
            "On"
          ],
          "Id": "on_off_state",
          "EnumDisplayNames": null,
          "StableId": "on_off_state"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: CameraCaptureResult

ID: CameraCaptureResult
Website: /doku/werte/CameraCaptureResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag CameraCaptureResult. Wird von Kamerabild aufnehmen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.bounds

Ermitteltes Rechteck im Koordinatenraum des entsprechenden Ergebnisobjekts. Einzelwert dieses Ergebnisses.

### result.bounds.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.height

Höhe des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Einzelwert dieses Ergebnisses.

### result.bounds.left

Linke Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Einzelwert dieses Ergebnisses.

### result.bounds.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.top

Obere Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.width

Breite des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.capture_timestamp_utc

UTC-Zeitpunkt des erfassten Bildes; bei wiederverwendeten Frames bleibt der ursprüngliche Zeitpunkt erhalten. Einzelwert dieses Ergebnisses.

### result.frame_timestamp

Monotoner Stopwatch/QPC-Zeitstempel des Frames. 0 bedeutet unbekannt; dies ist kein Datum in Millisekunden seit 1970. Einzelwert dieses Ergebnisses.

### result.frame_version

Laufzeit-Identität des Frames innerhalb seines Aufnahmeproduzenten. Cache-/Zeigeraktualisierungen sind keine neuen Desktop-Bildversionen; nicht zwischen unabhängigen Kameras/Monitorquellen vergleichen. Einzelwert dieses Ergebnisses.

### result.has_image

Ob die Zwischenablage ein Bild enthält. Daraus folgt nicht automatisch, dass ein Bild als persistierbares JSON-Literal vorliegt. Einzelwert dieses Ergebnisses.

### result.image

Laufzeit-Bildobjekt für Bildverbraucher. Es wird nicht als Bitmap-Payload in der Jobdatei gespeichert. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_fresh

Ob die Aufnahme einen frischen Frame statt einer zwischengespeicherten Aufnahme geliefert hat. Einzelwert dieses Ergebnisses.

### result.offset

Pixelversatz der Bildquelle gegenüber dem globalen Desktop. Bei bildlokalen Punkten addieren, bevor sie global verwendet werden. Einzelwert dieses Ergebnisses.

### result.offset.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.offset.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "CameraCaptureResult",
  "name": "CameraCaptureResult",
  "result": {
    "TypeName": "CameraCaptureResult",
    "DisplayName": "CameraCaptureResult",
    "Properties": [
      {
        "Name": "Image",
        "DisplayName": "Image",
        "DataType": "Image",
        "Description": "Image, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "image",
        "EnumDisplayNames": null,
        "StableId": "image"
      },
      {
        "Name": "Bounds",
        "DisplayName": "Bounds",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds",
        "EnumDisplayNames": null,
        "StableId": "bounds"
      },
      {
        "Name": "Bounds.X",
        "DisplayName": "Bounds / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.x"
      },
      {
        "Name": "Bounds.Y",
        "DisplayName": "Bounds / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.y"
      },
      {
        "Name": "Bounds.Width",
        "DisplayName": "Bounds / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.width",
        "EnumDisplayNames": null,
        "StableId": "bounds.width"
      },
      {
        "Name": "Bounds.Height",
        "DisplayName": "Bounds / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.height",
        "EnumDisplayNames": null,
        "StableId": "bounds.height"
      },
      {
        "Name": "Bounds.Left",
        "DisplayName": "Bounds / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.left",
        "EnumDisplayNames": null,
        "StableId": "bounds.left"
      },
      {
        "Name": "Bounds.Top",
        "DisplayName": "Bounds / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.top",
        "EnumDisplayNames": null,
        "StableId": "bounds.top"
      },
      {
        "Name": "Bounds.Right",
        "DisplayName": "Bounds / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.right",
        "EnumDisplayNames": null,
        "StableId": "bounds.right"
      },
      {
        "Name": "Bounds.Bottom",
        "DisplayName": "Bounds / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounds.bottom"
      },
      {
        "Name": "Bounds.IsEmpty",
        "DisplayName": "Bounds / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounds.is_empty"
      },
      {
        "Name": "Bounds.Location",
        "DisplayName": "Bounds / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location",
        "EnumDisplayNames": null,
        "StableId": "bounds.location"
      },
      {
        "Name": "Bounds.Location.X",
        "DisplayName": "Bounds / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.x"
      },
      {
        "Name": "Bounds.Location.Y",
        "DisplayName": "Bounds / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.y"
      },
      {
        "Name": "Bounds.Center",
        "DisplayName": "Bounds / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center",
        "EnumDisplayNames": null,
        "StableId": "bounds.center"
      },
      {
        "Name": "Bounds.Center.X",
        "DisplayName": "Bounds / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.x"
      },
      {
        "Name": "Bounds.Center.Y",
        "DisplayName": "Bounds / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.y"
      },
      {
        "Name": "Offset",
        "DisplayName": "Offset",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset",
        "EnumDisplayNames": null,
        "StableId": "offset"
      },
      {
        "Name": "Offset.X",
        "DisplayName": "Offset / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.x",
        "EnumDisplayNames": null,
        "StableId": "offset.x"
      },
      {
        "Name": "Offset.Y",
        "DisplayName": "Offset / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.y",
        "EnumDisplayNames": null,
        "StableId": "offset.y"
      },
      {
        "Name": "IsFresh",
        "DisplayName": "Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_fresh",
        "EnumDisplayNames": null,
        "StableId": "is_fresh"
      },
      {
        "Name": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "capture_timestamp_utc"
      },
      {
        "Name": "FrameVersion",
        "DisplayName": "Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_version",
        "EnumDisplayNames": null,
        "StableId": "frame_version"
      },
      {
        "Name": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "frame_timestamp"
      },
      {
        "Name": "HasImage",
        "DisplayName": "Has Image",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "has_image",
        "EnumDisplayNames": null,
        "StableId": "has_image"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Image",
        "DisplayName": "Image",
        "Property": {
          "Name": "Image",
          "DisplayName": "Image",
          "DataType": "Image",
          "Description": "Image, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "image",
          "EnumDisplayNames": null,
          "StableId": "image"
        },
        "Children": []
      },
      {
        "Segment": "Bounds",
        "DisplayName": "Bounds",
        "Property": {
          "Name": "Bounds",
          "DisplayName": "Bounds",
          "DataType": "Rectangle",
          "Description": "Rectangle",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounds",
          "EnumDisplayNames": null,
          "StableId": "bounds"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Bounds.X",
              "DisplayName": "Bounds / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.x",
              "EnumDisplayNames": null,
              "StableId": "bounds.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Bounds.Y",
              "DisplayName": "Bounds / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.y",
              "EnumDisplayNames": null,
              "StableId": "bounds.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "Bounds.Width",
              "DisplayName": "Bounds / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.width",
              "EnumDisplayNames": null,
              "StableId": "bounds.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "Bounds.Height",
              "DisplayName": "Bounds / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.height",
              "EnumDisplayNames": null,
              "StableId": "bounds.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "Bounds.Left",
              "DisplayName": "Bounds / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.left",
              "EnumDisplayNames": null,
              "StableId": "bounds.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "Bounds.Top",
              "DisplayName": "Bounds / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.top",
              "EnumDisplayNames": null,
              "StableId": "bounds.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "Bounds.Right",
              "DisplayName": "Bounds / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.right",
              "EnumDisplayNames": null,
              "StableId": "bounds.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "Bounds.Bottom",
              "DisplayName": "Bounds / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounds.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "Bounds.IsEmpty",
              "DisplayName": "Bounds / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounds.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "Bounds.Location",
              "DisplayName": "Bounds / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.location",
              "EnumDisplayNames": null,
              "StableId": "bounds.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Location.X",
                  "DisplayName": "Bounds / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Location.Y",
                  "DisplayName": "Bounds / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "Bounds.Center",
              "DisplayName": "Bounds / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.center",
              "EnumDisplayNames": null,
              "StableId": "bounds.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Center.X",
                  "DisplayName": "Bounds / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Center.Y",
                  "DisplayName": "Bounds / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Offset",
        "DisplayName": "Offset",
        "Property": {
          "Name": "Offset",
          "DisplayName": "Offset",
          "DataType": "Point",
          "Description": "Point",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "offset",
          "EnumDisplayNames": null,
          "StableId": "offset"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Offset.X",
              "DisplayName": "Offset / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.x",
              "EnumDisplayNames": null,
              "StableId": "offset.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Offset.Y",
              "DisplayName": "Offset / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.y",
              "EnumDisplayNames": null,
              "StableId": "offset.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "IsFresh",
        "DisplayName": "Is Fresh",
        "Property": {
          "Name": "IsFresh",
          "DisplayName": "Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_fresh",
          "EnumDisplayNames": null,
          "StableId": "is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "Property": {
          "Name": "CaptureTimestampUtc",
          "DisplayName": "Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "FrameVersion",
        "DisplayName": "Frame Version",
        "Property": {
          "Name": "FrameVersion",
          "DisplayName": "Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_version",
          "EnumDisplayNames": null,
          "StableId": "frame_version"
        },
        "Children": []
      },
      {
        "Segment": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "Property": {
          "Name": "FrameTimestamp",
          "DisplayName": "Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "HasImage",
        "DisplayName": "Has Image",
        "Property": {
          "Name": "HasImage",
          "DisplayName": "Has Image",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "has_image",
          "EnumDisplayNames": null,
          "StableId": "has_image"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: ClipboardContentQueryResult

ID: ClipboardContentQueryResult
Website: /doku/werte/ClipboardContentQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ClipboardContentQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ClipboardContentQueryResult",
  "name": "ClipboardContentQueryResult",
  "result": {
    "TypeName": "ClipboardContentQueryResult",
    "DisplayName": "ClipboardContentQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: ColorDetectionResult

ID: ColorDetectionResult
Website: /doku/werte/ColorDetectionResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ColorDetectionResult. Wird von Farberkennung geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ColorDetectionResult",
  "name": "ColorDetectionResult",
  "result": {
    "TypeName": "ColorDetectionResult",
    "DisplayName": "ColorDetectionResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: DesktopDuplicationResult

ID: DesktopDuplicationResult
Website: /doku/werte/DesktopDuplicationResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag DesktopDuplicationResult. Wird von Bildschirm aufnehmen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.bounds

Ermitteltes Rechteck im Koordinatenraum des entsprechenden Ergebnisobjekts. Einzelwert dieses Ergebnisses.

### result.bounds.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.height

Höhe des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Einzelwert dieses Ergebnisses.

### result.bounds.left

Linke Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Einzelwert dieses Ergebnisses.

### result.bounds.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.bounds.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Einzelwert dieses Ergebnisses.

### result.bounds.top

Obere Rechteckkante in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.width

Breite des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.bounds.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.bounds.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### result.capture_timestamp_utc

UTC-Zeitpunkt des erfassten Bildes; bei wiederverwendeten Frames bleibt der ursprüngliche Zeitpunkt erhalten. Einzelwert dieses Ergebnisses.

### result.frame_timestamp

Monotoner Stopwatch/QPC-Zeitstempel des Frames. 0 bedeutet unbekannt; dies ist kein Datum in Millisekunden seit 1970. Einzelwert dieses Ergebnisses.

### result.frame_version

Laufzeit-Identität des Frames innerhalb seines Aufnahmeproduzenten. Cache-/Zeigeraktualisierungen sind keine neuen Desktop-Bildversionen; nicht zwischen unabhängigen Kameras/Monitorquellen vergleichen. Einzelwert dieses Ergebnisses.

### result.has_image

Ob die Zwischenablage ein Bild enthält. Daraus folgt nicht automatisch, dass ein Bild als persistierbares JSON-Literal vorliegt. Einzelwert dieses Ergebnisses.

### result.image

Laufzeit-Bildobjekt für Bildverbraucher. Es wird nicht als Bitmap-Payload in der Jobdatei gespeichert. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_fresh

Ob die Aufnahme einen frischen Frame statt einer zwischengespeicherten Aufnahme geliefert hat. Einzelwert dieses Ergebnisses.

### result.offset

Pixelversatz der Bildquelle gegenüber dem globalen Desktop. Bei bildlokalen Punkten addieren, bevor sie global verwendet werden. Einzelwert dieses Ergebnisses.

### result.offset.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Einzelwert dieses Ergebnisses.

### result.offset.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "DesktopDuplicationResult",
  "name": "DesktopDuplicationResult",
  "result": {
    "TypeName": "DesktopDuplicationResult",
    "DisplayName": "DesktopDuplicationResult",
    "Properties": [
      {
        "Name": "Image",
        "DisplayName": "Image",
        "DataType": "Image",
        "Description": "Image, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "image",
        "EnumDisplayNames": null,
        "StableId": "image"
      },
      {
        "Name": "Bounds",
        "DisplayName": "Bounds",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds",
        "EnumDisplayNames": null,
        "StableId": "bounds"
      },
      {
        "Name": "Bounds.X",
        "DisplayName": "Bounds / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.x"
      },
      {
        "Name": "Bounds.Y",
        "DisplayName": "Bounds / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.y"
      },
      {
        "Name": "Bounds.Width",
        "DisplayName": "Bounds / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.width",
        "EnumDisplayNames": null,
        "StableId": "bounds.width"
      },
      {
        "Name": "Bounds.Height",
        "DisplayName": "Bounds / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.height",
        "EnumDisplayNames": null,
        "StableId": "bounds.height"
      },
      {
        "Name": "Bounds.Left",
        "DisplayName": "Bounds / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.left",
        "EnumDisplayNames": null,
        "StableId": "bounds.left"
      },
      {
        "Name": "Bounds.Top",
        "DisplayName": "Bounds / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.top",
        "EnumDisplayNames": null,
        "StableId": "bounds.top"
      },
      {
        "Name": "Bounds.Right",
        "DisplayName": "Bounds / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.right",
        "EnumDisplayNames": null,
        "StableId": "bounds.right"
      },
      {
        "Name": "Bounds.Bottom",
        "DisplayName": "Bounds / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounds.bottom"
      },
      {
        "Name": "Bounds.IsEmpty",
        "DisplayName": "Bounds / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounds.is_empty"
      },
      {
        "Name": "Bounds.Location",
        "DisplayName": "Bounds / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location",
        "EnumDisplayNames": null,
        "StableId": "bounds.location"
      },
      {
        "Name": "Bounds.Location.X",
        "DisplayName": "Bounds / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.x"
      },
      {
        "Name": "Bounds.Location.Y",
        "DisplayName": "Bounds / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.location.y"
      },
      {
        "Name": "Bounds.Center",
        "DisplayName": "Bounds / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center",
        "EnumDisplayNames": null,
        "StableId": "bounds.center"
      },
      {
        "Name": "Bounds.Center.X",
        "DisplayName": "Bounds / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.x"
      },
      {
        "Name": "Bounds.Center.Y",
        "DisplayName": "Bounds / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounds.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounds.center.y"
      },
      {
        "Name": "Offset",
        "DisplayName": "Offset",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset",
        "EnumDisplayNames": null,
        "StableId": "offset"
      },
      {
        "Name": "Offset.X",
        "DisplayName": "Offset / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.x",
        "EnumDisplayNames": null,
        "StableId": "offset.x"
      },
      {
        "Name": "Offset.Y",
        "DisplayName": "Offset / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "offset.y",
        "EnumDisplayNames": null,
        "StableId": "offset.y"
      },
      {
        "Name": "IsFresh",
        "DisplayName": "Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_fresh",
        "EnumDisplayNames": null,
        "StableId": "is_fresh"
      },
      {
        "Name": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "capture_timestamp_utc"
      },
      {
        "Name": "FrameVersion",
        "DisplayName": "Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_version",
        "EnumDisplayNames": null,
        "StableId": "frame_version"
      },
      {
        "Name": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "frame_timestamp"
      },
      {
        "Name": "HasImage",
        "DisplayName": "Has Image",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "has_image",
        "EnumDisplayNames": null,
        "StableId": "has_image"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Image",
        "DisplayName": "Image",
        "Property": {
          "Name": "Image",
          "DisplayName": "Image",
          "DataType": "Image",
          "Description": "Image, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "image",
          "EnumDisplayNames": null,
          "StableId": "image"
        },
        "Children": []
      },
      {
        "Segment": "Bounds",
        "DisplayName": "Bounds",
        "Property": {
          "Name": "Bounds",
          "DisplayName": "Bounds",
          "DataType": "Rectangle",
          "Description": "Rectangle",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounds",
          "EnumDisplayNames": null,
          "StableId": "bounds"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Bounds.X",
              "DisplayName": "Bounds / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.x",
              "EnumDisplayNames": null,
              "StableId": "bounds.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Bounds.Y",
              "DisplayName": "Bounds / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.y",
              "EnumDisplayNames": null,
              "StableId": "bounds.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "Bounds.Width",
              "DisplayName": "Bounds / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.width",
              "EnumDisplayNames": null,
              "StableId": "bounds.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "Bounds.Height",
              "DisplayName": "Bounds / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.height",
              "EnumDisplayNames": null,
              "StableId": "bounds.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "Bounds.Left",
              "DisplayName": "Bounds / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.left",
              "EnumDisplayNames": null,
              "StableId": "bounds.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "Bounds.Top",
              "DisplayName": "Bounds / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.top",
              "EnumDisplayNames": null,
              "StableId": "bounds.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "Bounds.Right",
              "DisplayName": "Bounds / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.right",
              "EnumDisplayNames": null,
              "StableId": "bounds.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "Bounds.Bottom",
              "DisplayName": "Bounds / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounds.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "Bounds.IsEmpty",
              "DisplayName": "Bounds / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounds.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "Bounds.Location",
              "DisplayName": "Bounds / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.location",
              "EnumDisplayNames": null,
              "StableId": "bounds.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Location.X",
                  "DisplayName": "Bounds / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Location.Y",
                  "DisplayName": "Bounds / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "Bounds.Center",
              "DisplayName": "Bounds / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounds.center",
              "EnumDisplayNames": null,
              "StableId": "bounds.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Bounds.Center.X",
                  "DisplayName": "Bounds / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Bounds.Center.Y",
                  "DisplayName": "Bounds / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Single",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounds.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounds.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Offset",
        "DisplayName": "Offset",
        "Property": {
          "Name": "Offset",
          "DisplayName": "Offset",
          "DataType": "Point",
          "Description": "Point",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "offset",
          "EnumDisplayNames": null,
          "StableId": "offset"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Offset.X",
              "DisplayName": "Offset / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.x",
              "EnumDisplayNames": null,
              "StableId": "offset.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Offset.Y",
              "DisplayName": "Offset / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "offset.y",
              "EnumDisplayNames": null,
              "StableId": "offset.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "IsFresh",
        "DisplayName": "Is Fresh",
        "Property": {
          "Name": "IsFresh",
          "DisplayName": "Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_fresh",
          "EnumDisplayNames": null,
          "StableId": "is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "CaptureTimestampUtc",
        "DisplayName": "Capture Timestamp Utc",
        "Property": {
          "Name": "CaptureTimestampUtc",
          "DisplayName": "Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "FrameVersion",
        "DisplayName": "Frame Version",
        "Property": {
          "Name": "FrameVersion",
          "DisplayName": "Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_version",
          "EnumDisplayNames": null,
          "StableId": "frame_version"
        },
        "Children": []
      },
      {
        "Segment": "FrameTimestamp",
        "DisplayName": "Frame Timestamp",
        "Property": {
          "Name": "FrameTimestamp",
          "DisplayName": "Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "HasImage",
        "DisplayName": "Has Image",
        "Property": {
          "Name": "HasImage",
          "DisplayName": "Has Image",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "has_image",
          "EnumDisplayNames": null,
          "StableId": "has_image"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: DeviceCollectionQueryResult

ID: DeviceCollectionQueryResult
Website: /doku/werte/DeviceCollectionQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag DeviceCollectionQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "DeviceCollectionQueryResult",
  "name": "DeviceCollectionQueryResult",
  "result": {
    "TypeName": "DeviceCollectionQueryResult",
    "DisplayName": "DeviceCollectionQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: DynamicRoiResult

ID: DynamicRoiResult
Website: /doku/werte/DynamicRoiResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag DynamicRoiResult. Wird von Dynamischen Bildbereich erstellen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.consecutive_misses

Anzahl aufeinanderfolgender nicht verwertbarer Treffer seit der letzten gültigen Aktualisierung. Einzelwert dieses Ergebnisses.

### result.full_search_interval

Konfigurierter Abstand regelmäßiger Vollsuchen in Durchläufen; 0 bedeutet keine regelmäßige Vollsuche. Einzelwert dieses Ergebnisses.

### result.global_bounds

Suchrechteck in globalen Desktopkoordinaten. Für bildlokale Verbraucher muss dessen Quelle/Versatz berücksichtigt werden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.global_bounds.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.roi_reset

Ob der Suchbereich wegen der Rücksetzregel auf den Ausgangsbereich zurückgesetzt wurde. Einzelwert dieses Ergebnisses.

### result.roi_updated

Ob der dynamische Suchbereich in diesem Step neu aus einem verwertbaren Treffer aktualisiert wurde. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "DynamicRoiResult",
  "name": "DynamicRoiResult",
  "result": {
    "TypeName": "DynamicRoiResult",
    "DisplayName": "DynamicRoiResult",
    "Properties": [
      {
        "Name": "RoiUpdated",
        "DisplayName": "Roi Updated",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "roi_updated",
        "EnumDisplayNames": null,
        "StableId": "roi_updated"
      },
      {
        "Name": "RoiReset",
        "DisplayName": "Roi Reset",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "roi_reset",
        "EnumDisplayNames": null,
        "StableId": "roi_reset"
      },
      {
        "Name": "GlobalBounds",
        "DisplayName": "Global Bounds",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds",
        "EnumDisplayNames": null,
        "StableId": "global_bounds"
      },
      {
        "Name": "GlobalBounds.X",
        "DisplayName": "Global Bounds / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.x",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.x"
      },
      {
        "Name": "GlobalBounds.Y",
        "DisplayName": "Global Bounds / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.y",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.y"
      },
      {
        "Name": "GlobalBounds.Width",
        "DisplayName": "Global Bounds / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.width",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.width"
      },
      {
        "Name": "GlobalBounds.Height",
        "DisplayName": "Global Bounds / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.height",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.height"
      },
      {
        "Name": "GlobalBounds.Left",
        "DisplayName": "Global Bounds / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.left",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.left"
      },
      {
        "Name": "GlobalBounds.Top",
        "DisplayName": "Global Bounds / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.top",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.top"
      },
      {
        "Name": "GlobalBounds.Right",
        "DisplayName": "Global Bounds / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.right",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.right"
      },
      {
        "Name": "GlobalBounds.Bottom",
        "DisplayName": "Global Bounds / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.bottom",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.bottom"
      },
      {
        "Name": "GlobalBounds.IsEmpty",
        "DisplayName": "Global Bounds / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.is_empty",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.is_empty"
      },
      {
        "Name": "GlobalBounds.Location",
        "DisplayName": "Global Bounds / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.location",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.location"
      },
      {
        "Name": "GlobalBounds.Location.X",
        "DisplayName": "Global Bounds / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.location.x",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.location.x"
      },
      {
        "Name": "GlobalBounds.Location.Y",
        "DisplayName": "Global Bounds / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.location.y",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.location.y"
      },
      {
        "Name": "GlobalBounds.Center",
        "DisplayName": "Global Bounds / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.center",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.center"
      },
      {
        "Name": "GlobalBounds.Center.X",
        "DisplayName": "Global Bounds / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.center.x",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.center.x"
      },
      {
        "Name": "GlobalBounds.Center.Y",
        "DisplayName": "Global Bounds / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "global_bounds.center.y",
        "EnumDisplayNames": null,
        "StableId": "global_bounds.center.y"
      },
      {
        "Name": "ConsecutiveMisses",
        "DisplayName": "Consecutive Misses",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "consecutive_misses",
        "EnumDisplayNames": null,
        "StableId": "consecutive_misses"
      },
      {
        "Name": "FullSearchInterval",
        "DisplayName": "Full Search Interval",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "full_search_interval",
        "EnumDisplayNames": null,
        "StableId": "full_search_interval"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "RoiUpdated",
        "DisplayName": "Roi Updated",
        "Property": {
          "Name": "RoiUpdated",
          "DisplayName": "Roi Updated",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "roi_updated",
          "EnumDisplayNames": null,
          "StableId": "roi_updated"
        },
        "Children": []
      },
      {
        "Segment": "RoiReset",
        "DisplayName": "Roi Reset",
        "Property": {
          "Name": "RoiReset",
          "DisplayName": "Roi Reset",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "roi_reset",
          "EnumDisplayNames": null,
          "StableId": "roi_reset"
        },
        "Children": []
      },
      {
        "Segment": "GlobalBounds",
        "DisplayName": "Global Bounds",
        "Property": {
          "Name": "GlobalBounds",
          "DisplayName": "Global Bounds",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "global_bounds",
          "EnumDisplayNames": null,
          "StableId": "global_bounds"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "GlobalBounds.X",
              "DisplayName": "Global Bounds / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.x",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "GlobalBounds.Y",
              "DisplayName": "Global Bounds / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.y",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "GlobalBounds.Width",
              "DisplayName": "Global Bounds / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.width",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "GlobalBounds.Height",
              "DisplayName": "Global Bounds / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.height",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "GlobalBounds.Left",
              "DisplayName": "Global Bounds / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.left",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "GlobalBounds.Top",
              "DisplayName": "Global Bounds / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.top",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "GlobalBounds.Right",
              "DisplayName": "Global Bounds / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.right",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "GlobalBounds.Bottom",
              "DisplayName": "Global Bounds / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.bottom",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "GlobalBounds.IsEmpty",
              "DisplayName": "Global Bounds / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.is_empty",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "GlobalBounds.Location",
              "DisplayName": "Global Bounds / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.location",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "GlobalBounds.Location.X",
                  "DisplayName": "Global Bounds / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "GlobalBounds.Location.Y",
                  "DisplayName": "Global Bounds / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "GlobalBounds.Center",
              "DisplayName": "Global Bounds / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "global_bounds.center",
              "EnumDisplayNames": null,
              "StableId": "global_bounds.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "GlobalBounds.Center.X",
                  "DisplayName": "Global Bounds / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "GlobalBounds.Center.Y",
                  "DisplayName": "Global Bounds / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "global_bounds.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "global_bounds.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "ConsecutiveMisses",
        "DisplayName": "Consecutive Misses",
        "Property": {
          "Name": "ConsecutiveMisses",
          "DisplayName": "Consecutive Misses",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "consecutive_misses",
          "EnumDisplayNames": null,
          "StableId": "consecutive_misses"
        },
        "Children": []
      },
      {
        "Segment": "FullSearchInterval",
        "DisplayName": "Full Search Interval",
        "Property": {
          "Name": "FullSearchInterval",
          "DisplayName": "Full Search Interval",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "full_search_interval",
          "EnumDisplayNames": null,
          "StableId": "full_search_interval"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: FileSystemOperationResult

ID: FileSystemOperationResult
Website: /doku/werte/FileSystemOperationResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag FileSystemOperationResult. Wird von Datei oder Ordner bearbeiten geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.affected_bytes

Umfang der betroffenen Dateidaten in Bytes. Einzelwert dieses Ergebnisses.

### result.affected_count

Gesamtzahl betroffener Einträge der Dateiaktion. Einzelwert dieses Ergebnisses.

### result.affected_directory_count

Anzahl betroffener Ordner, getrennt von Dateien. Einzelwert dieses Ergebnisses.

### result.affected_file_count

Anzahl betroffener Dateien, getrennt von Ordnern. Einzelwert dieses Ergebnisses.

### result.affected_paths

Liste der von der Dateiaktion betroffenen Pfade. Ein erfolgreicher Zähler ist nicht automatisch ein Backup-Versionsnachweis. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.affected_paths.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.completed_at_utc

UTC-Abschlusszeitpunkt der Aktion. Einzelwert dieses Ergebnisses.

### result.item_type

Ob Datei, Ordner oder mehrere Einträge von der Dateiaktion betroffen waren. Einzelwert dieses Ergebnisses.

### result.item_type.option.Directory

Betroffener Eintrag ist ein Ordner.

### result.item_type.option.File

Betroffener Eintrag ist eine Datei.

### result.item_type.option.Multiple

Mehrere Einträge wurden bearbeitet.

### result.operation

Tatsächlich angeforderte Dateiaktion. Zusammen mit den Zählern und Pfaden lesen, um deren Auswirkungen zu verstehen. Einzelwert dieses Ergebnisses.

### result.operation.option.Copy

Kopiert die Quelle zum Ziel; die Quelle bleibt erhalten.

### result.operation.option.Delete

Entfernt passende Quelleinträge; zuerst mit entbehrlichen Testdaten prüfen.

### result.operation.option.Move

Verschiebt die Quelle zum Ziel; bei Erfolg liegt sie dort statt am ursprünglichen Ort.

### result.operation.option.Rename

Benennt den Quelleintrag mit new_name um.

### result.source_path

Verwendeter Quellpfad der Dateiaktion. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.target_path

Verwendeter Zielpfad der Dateiaktion, soweit die gewählte Aktion ein Ziel besitzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "FileSystemOperationResult",
  "name": "FileSystemOperationResult",
  "result": {
    "TypeName": "FileSystemOperationResult",
    "DisplayName": "FileSystemOperationResult",
    "Properties": [
      {
        "Name": "Operation",
        "DisplayName": "Operation",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.Jobs.FileSystemOperation",
        "EnumValues": [
          "Copy",
          "Move",
          "Rename",
          "Delete"
        ],
        "Id": "operation",
        "EnumDisplayNames": null,
        "StableId": "operation"
      },
      {
        "Name": "SourcePath",
        "DisplayName": "Source Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_path",
        "EnumDisplayNames": null,
        "StableId": "source_path"
      },
      {
        "Name": "TargetPath",
        "DisplayName": "Target Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "target_path",
        "EnumDisplayNames": null,
        "StableId": "target_path"
      },
      {
        "Name": "ItemType",
        "DisplayName": "Item Type",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.Steps.FileSystemItemType",
        "EnumValues": [
          "File",
          "Directory",
          "Multiple"
        ],
        "Id": "item_type",
        "EnumDisplayNames": null,
        "StableId": "item_type"
      },
      {
        "Name": "AffectedCount",
        "DisplayName": "Affected Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_count",
        "EnumDisplayNames": null,
        "StableId": "affected_count"
      },
      {
        "Name": "AffectedFileCount",
        "DisplayName": "Affected File Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_file_count",
        "EnumDisplayNames": null,
        "StableId": "affected_file_count"
      },
      {
        "Name": "AffectedDirectoryCount",
        "DisplayName": "Affected Directory Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_directory_count",
        "EnumDisplayNames": null,
        "StableId": "affected_directory_count"
      },
      {
        "Name": "AffectedBytes",
        "DisplayName": "Affected Bytes",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_bytes",
        "EnumDisplayNames": null,
        "StableId": "affected_bytes"
      },
      {
        "Name": "AffectedPaths",
        "DisplayName": "Affected Paths",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_paths",
        "EnumDisplayNames": null,
        "StableId": "affected_paths"
      },
      {
        "Name": "AffectedPaths.Count",
        "DisplayName": "Affected Paths / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "affected_paths.count",
        "EnumDisplayNames": null,
        "StableId": "affected_paths.count"
      },
      {
        "Name": "CompletedAtUtc",
        "DisplayName": "Completed At Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "completed_at_utc",
        "EnumDisplayNames": null,
        "StableId": "completed_at_utc"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Operation",
        "DisplayName": "Operation",
        "Property": {
          "Name": "Operation",
          "DisplayName": "Operation",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.Jobs.FileSystemOperation",
          "EnumValues": [
            "Copy",
            "Move",
            "Rename",
            "Delete"
          ],
          "Id": "operation",
          "EnumDisplayNames": null,
          "StableId": "operation"
        },
        "Children": []
      },
      {
        "Segment": "SourcePath",
        "DisplayName": "Source Path",
        "Property": {
          "Name": "SourcePath",
          "DisplayName": "Source Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_path",
          "EnumDisplayNames": null,
          "StableId": "source_path"
        },
        "Children": []
      },
      {
        "Segment": "TargetPath",
        "DisplayName": "Target Path",
        "Property": {
          "Name": "TargetPath",
          "DisplayName": "Target Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "target_path",
          "EnumDisplayNames": null,
          "StableId": "target_path"
        },
        "Children": []
      },
      {
        "Segment": "ItemType",
        "DisplayName": "Item Type",
        "Property": {
          "Name": "ItemType",
          "DisplayName": "Item Type",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.Steps.FileSystemItemType",
          "EnumValues": [
            "File",
            "Directory",
            "Multiple"
          ],
          "Id": "item_type",
          "EnumDisplayNames": null,
          "StableId": "item_type"
        },
        "Children": []
      },
      {
        "Segment": "AffectedCount",
        "DisplayName": "Affected Count",
        "Property": {
          "Name": "AffectedCount",
          "DisplayName": "Affected Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_count",
          "EnumDisplayNames": null,
          "StableId": "affected_count"
        },
        "Children": []
      },
      {
        "Segment": "AffectedFileCount",
        "DisplayName": "Affected File Count",
        "Property": {
          "Name": "AffectedFileCount",
          "DisplayName": "Affected File Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_file_count",
          "EnumDisplayNames": null,
          "StableId": "affected_file_count"
        },
        "Children": []
      },
      {
        "Segment": "AffectedDirectoryCount",
        "DisplayName": "Affected Directory Count",
        "Property": {
          "Name": "AffectedDirectoryCount",
          "DisplayName": "Affected Directory Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_directory_count",
          "EnumDisplayNames": null,
          "StableId": "affected_directory_count"
        },
        "Children": []
      },
      {
        "Segment": "AffectedBytes",
        "DisplayName": "Affected Bytes",
        "Property": {
          "Name": "AffectedBytes",
          "DisplayName": "Affected Bytes",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_bytes",
          "EnumDisplayNames": null,
          "StableId": "affected_bytes"
        },
        "Children": []
      },
      {
        "Segment": "AffectedPaths",
        "DisplayName": "Affected Paths",
        "Property": {
          "Name": "AffectedPaths",
          "DisplayName": "Affected Paths",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "affected_paths",
          "EnumDisplayNames": null,
          "StableId": "affected_paths"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AffectedPaths.Count",
              "DisplayName": "Affected Paths / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "affected_paths.count",
              "EnumDisplayNames": null,
              "StableId": "affected_paths.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "CompletedAtUtc",
        "DisplayName": "Completed At Utc",
        "Property": {
          "Name": "CompletedAtUtc",
          "DisplayName": "Completed At Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "completed_at_utc",
          "EnumDisplayNames": null,
          "StableId": "completed_at_utc"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: FileSystemPathQueryResult

ID: FileSystemPathQueryResult
Website: /doku/werte/FileSystemPathQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag FileSystemPathQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.path

Pfad des abgefragten Dateisystemobjekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.value

Der von dieser Windows-Abfrage gelieferte fachliche Wert; die Typ- und Kardinalitätsspalten beschreiben seine Darstellung. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "FileSystemPathQueryResult",
  "name": "FileSystemPathQueryResult",
  "result": {
    "TypeName": "FileSystemPathQueryResult",
    "DisplayName": "FileSystemPathQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Path",
        "DisplayName": "Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "path",
        "EnumDisplayNames": null,
        "StableId": "path"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Value",
        "DisplayName": "Value",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "value",
        "EnumDisplayNames": null,
        "StableId": "value"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Path",
        "DisplayName": "Path",
        "Property": {
          "Name": "Path",
          "DisplayName": "Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "path",
          "EnumDisplayNames": null,
          "StableId": "path"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Value",
        "DisplayName": "Value",
        "Property": {
          "Name": "Value",
          "DisplayName": "Value",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "value",
          "EnumDisplayNames": null,
          "StableId": "value"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: FocusProcessResult

ID: FocusProcessResult
Website: /doku/werte/FocusProcessResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag FocusProcessResult. Wird von Fenster anzeigen oder minimieren geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "FocusProcessResult",
  "name": "FocusProcessResult",
  "result": {
    "TypeName": "FocusProcessResult",
    "DisplayName": "FocusProcessResult",
    "Properties": [
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: ForegroundWindowQueryResult

ID: ForegroundWindowQueryResult
Website: /doku/werte/ForegroundWindowQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ForegroundWindowQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.id

System-/Geräteidentität des jeweiligen Ergebnisobjekts. Ihre Lebensdauer und Form hängen von der abgefragten Windows-Funktion ab. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ForegroundWindowQueryResult",
  "name": "ForegroundWindowQueryResult",
  "result": {
    "TypeName": "ForegroundWindowQueryResult",
    "DisplayName": "ForegroundWindowQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "id",
        "EnumDisplayNames": null,
        "StableId": "id"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "id",
          "EnumDisplayNames": null,
          "StableId": "id"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: GetProcessResult

ID: GetProcessResult
Website: /doku/werte/GetProcessResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag GetProcessResult. Wird von Laufenden Prozess suchen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "GetProcessResult",
  "name": "GetProcessResult",
  "result": {
    "TypeName": "GetProcessResult",
    "DisplayName": "GetProcessResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: InputControlResult

ID: InputControlResult
Website: /doku/werte/InputControlResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag InputControlResult. Wird von Eingaben blockieren, Eingaben freigeben geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "InputControlResult",
  "name": "InputControlResult",
  "result": {
    "TypeName": "InputControlResult",
    "DisplayName": "InputControlResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: InputIdleQueryResult

ID: InputIdleQueryResult
Website: /doku/werte/InputIdleQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag InputIdleQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.percentage

Aktueller Akkuladestand als Prozentwert, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.value

Der von dieser Windows-Abfrage gelieferte fachliche Wert; die Typ- und Kardinalitätsspalten beschreiben seine Darstellung. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "InputIdleQueryResult",
  "name": "InputIdleQueryResult",
  "result": {
    "TypeName": "InputIdleQueryResult",
    "DisplayName": "InputIdleQueryResult",
    "Properties": [
      {
        "Name": "IdleMilliseconds",
        "DisplayName": "Idle Milliseconds",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "value",
        "EnumDisplayNames": null,
        "StableId": "value"
      },
      {
        "Name": "IdleSeconds",
        "DisplayName": "Idle Seconds",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "percentage",
        "EnumDisplayNames": null,
        "StableId": "percentage"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IdleMilliseconds",
        "DisplayName": "Idle Milliseconds",
        "Property": {
          "Name": "IdleMilliseconds",
          "DisplayName": "Idle Milliseconds",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "value",
          "EnumDisplayNames": null,
          "StableId": "value"
        },
        "Children": []
      },
      {
        "Segment": "IdleSeconds",
        "DisplayName": "Idle Seconds",
        "Property": {
          "Name": "IdleSeconds",
          "DisplayName": "Idle Seconds",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "percentage",
          "EnumDisplayNames": null,
          "StableId": "percentage"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: JobExecutionResult

ID: JobExecutionResult
Website: /doku/werte/JobExecutionResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag JobExecutionResult. Wird von Job ausführen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "JobExecutionResult",
  "name": "JobExecutionResult",
  "result": {
    "TypeName": "JobExecutionResult",
    "DisplayName": "JobExecutionResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: KeyPointMatchingResult

ID: KeyPointMatchingResult
Website: /doku/werte/KeyPointMatchingResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag KeyPointMatchingResult. Wird von Bildmerkmale vergleichen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "KeyPointMatchingResult",
  "name": "KeyPointMatchingResult",
  "result": {
    "TypeName": "KeyPointMatchingResult",
    "DisplayName": "KeyPointMatchingResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: KlickOnPoint3DResult

ID: KlickOnPoint3DResult
Website: /doku/werte/KlickOnPoint3DResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag KlickOnPoint3DResult. Wird von 3D-Ziel anklicken geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.click_on_point_3d.applied_delta_x

Tatsächlich angewendeter ganzzahliger horizontaler Mausversatz nach Skalierung und Rundung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.applied_delta_y

Tatsächlich angewendeter ganzzahliger vertikaler Mausversatz nach Skalierung und Rundung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.delta_x

Horizontale Abweichung beziehungsweise Bewegungsanteil in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.delta_y

Vertikale Abweichung beziehungsweise Bewegungsanteil in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.movement_blocked

Ob die 3D-Eingabe wegen Bewegungstoleranz oder nicht neuerem Quell-Frame unterdrückt wurde. Es wurde dabei keine neue Bewegung und kein Klick gesendet. Einzelwert dieses Ergebnisses.

### result.click_on_point_3d.movement_factor_x

Horizontaler Skalierungsfaktor, der für diese Eingabe verwendet wurde. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.click_on_point_3d.movement_factor_y

Vertikaler Skalierungsfaktor, der für diese Eingabe verwendet wurde. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "KlickOnPoint3DResult",
  "name": "KlickOnPoint3DResult",
  "result": {
    "TypeName": "KlickOnPoint3DResult",
    "DisplayName": "KlickOnPoint3DResult",
    "Properties": [
      {
        "Name": "DeltaX",
        "DisplayName": "Delta X",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.delta_x",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.delta_x"
      },
      {
        "Name": "DeltaY",
        "DisplayName": "Delta Y",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.delta_y",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.delta_y"
      },
      {
        "Name": "MovementFactorX",
        "DisplayName": "Movement Factor X",
        "DataType": "Number",
        "Description": "Number, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.movement_factor_x",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.movement_factor_x"
      },
      {
        "Name": "MovementFactorY",
        "DisplayName": "Movement Factor Y",
        "DataType": "Number",
        "Description": "Number, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.movement_factor_y",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.movement_factor_y"
      },
      {
        "Name": "AppliedDeltaX",
        "DisplayName": "Applied Delta X",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.applied_delta_x",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.applied_delta_x"
      },
      {
        "Name": "AppliedDeltaY",
        "DisplayName": "Applied Delta Y",
        "DataType": "Integer",
        "Description": "Integer, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.applied_delta_y",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.applied_delta_y"
      },
      {
        "Name": "MovementBlocked",
        "DisplayName": "Movement Blocked",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "click_on_point_3d.movement_blocked",
        "EnumDisplayNames": null,
        "StableId": "click_on_point_3d.movement_blocked"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "DeltaX",
        "DisplayName": "Delta X",
        "Property": {
          "Name": "DeltaX",
          "DisplayName": "Delta X",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.delta_x",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.delta_x"
        },
        "Children": []
      },
      {
        "Segment": "DeltaY",
        "DisplayName": "Delta Y",
        "Property": {
          "Name": "DeltaY",
          "DisplayName": "Delta Y",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.delta_y",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.delta_y"
        },
        "Children": []
      },
      {
        "Segment": "MovementFactorX",
        "DisplayName": "Movement Factor X",
        "Property": {
          "Name": "MovementFactorX",
          "DisplayName": "Movement Factor X",
          "DataType": "Number",
          "Description": "Number, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.movement_factor_x",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.movement_factor_x"
        },
        "Children": []
      },
      {
        "Segment": "MovementFactorY",
        "DisplayName": "Movement Factor Y",
        "Property": {
          "Name": "MovementFactorY",
          "DisplayName": "Movement Factor Y",
          "DataType": "Number",
          "Description": "Number, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.movement_factor_y",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.movement_factor_y"
        },
        "Children": []
      },
      {
        "Segment": "AppliedDeltaX",
        "DisplayName": "Applied Delta X",
        "Property": {
          "Name": "AppliedDeltaX",
          "DisplayName": "Applied Delta X",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.applied_delta_x",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.applied_delta_x"
        },
        "Children": []
      },
      {
        "Segment": "AppliedDeltaY",
        "DisplayName": "Applied Delta Y",
        "Property": {
          "Name": "AppliedDeltaY",
          "DisplayName": "Applied Delta Y",
          "DataType": "Integer",
          "Description": "Integer, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.applied_delta_y",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.applied_delta_y"
        },
        "Children": []
      },
      {
        "Segment": "MovementBlocked",
        "DisplayName": "Movement Blocked",
        "Property": {
          "Name": "MovementBlocked",
          "DisplayName": "Movement Blocked",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "click_on_point_3d.movement_blocked",
          "EnumDisplayNames": null,
          "StableId": "click_on_point_3d.movement_blocked"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: KlickOnPointResult

ID: KlickOnPointResult
Website: /doku/werte/KlickOnPointResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag KlickOnPointResult. Wird von Punkt anklicken geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "KlickOnPointResult",
  "name": "KlickOnPointResult",
  "result": {
    "TypeName": "KlickOnPointResult",
    "DisplayName": "KlickOnPointResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: MakroExecutionResult

ID: MakroExecutionResult
Website: /doku/werte/MakroExecutionResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag MakroExecutionResult. Wird von Makro ausführen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "MakroExecutionResult",
  "name": "MakroExecutionResult",
  "result": {
    "TypeName": "MakroExecutionResult",
    "DisplayName": "MakroExecutionResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: MonitorCollectionQueryResult

ID: MonitorCollectionQueryResult
Website: /doku/werte/MonitorCollectionQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag MonitorCollectionQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "MonitorCollectionQueryResult",
  "name": "MonitorCollectionQueryResult",
  "result": {
    "TypeName": "MonitorCollectionQueryResult",
    "DisplayName": "MonitorCollectionQueryResult",
    "Properties": [
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: NetworkConnectivityQueryResult

ID: NetworkConnectivityQueryResult
Website: /doku/werte/NetworkConnectivityQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag NetworkConnectivityQueryResult. Wird von Windows-Zustand abfragen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.connection_type

Art der ermittelten Netzwerkverbindung, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.connection_type.option.Ethernet

Kabelgebundene Ethernet-Verbindung.

### result.connection_type.option.Mobile

Mobilfunkverbindung.

### result.connection_type.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.connection_type.option.Virtual

Virtueller Netzwerkadapter beziehungsweise virtuelle Verbindung.

### result.connection_type.option.WiFi

Drahtlose WLAN-Verbindung.

### result.connectivity

Vom Netzwerkprovider gemeldete Verbindungsqualität beziehungsweise Konnektivität. Einzelwert dieses Ergebnisses.

### result.connectivity.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.connectivity.option.Internet

Windows meldet Internetkonnektivität.

### result.connectivity.option.LocalNetwork

Windows meldet lokale Netzwerkkonnektivität ohne belegten Internetzugang.

### result.connectivity.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "NetworkConnectivityQueryResult",
  "name": "NetworkConnectivityQueryResult",
  "result": {
    "TypeName": "NetworkConnectivityQueryResult",
    "DisplayName": "NetworkConnectivityQueryResult",
    "Properties": [
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Connectivity",
        "DisplayName": "Connectivity",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectivity",
        "EnumValues": [
          "Unknown",
          "Disconnected",
          "LocalNetwork",
          "Internet"
        ],
        "Id": "connectivity",
        "EnumDisplayNames": null,
        "StableId": "connectivity"
      },
      {
        "Name": "ConnectionType",
        "DisplayName": "Connection Type",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectionType",
        "EnumValues": [
          "Unknown",
          "Ethernet",
          "WiFi",
          "Mobile",
          "Virtual"
        ],
        "Id": "connection_type",
        "EnumDisplayNames": null,
        "StableId": "connection_type"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Connectivity",
        "DisplayName": "Connectivity",
        "Property": {
          "Name": "Connectivity",
          "DisplayName": "Connectivity",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectivity",
          "EnumValues": [
            "Unknown",
            "Disconnected",
            "LocalNetwork",
            "Internet"
          ],
          "Id": "connectivity",
          "EnumDisplayNames": null,
          "StableId": "connectivity"
        },
        "Children": []
      },
      {
        "Segment": "ConnectionType",
        "DisplayName": "Connection Type",
        "Property": {
          "Name": "ConnectionType",
          "DisplayName": "Connection Type",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectionType",
          "EnumValues": [
            "Unknown",
            "Ethernet",
            "WiFi",
            "Mobile",
            "Virtual"
          ],
          "Id": "connection_type",
          "EnumDisplayNames": null,
          "StableId": "connection_type"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: OcrResult

ID: OcrResult
Website: /doku/werte/OcrResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag OcrResult. Wird von Text erkennen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.line_count

Anzahl erkannter Textzeilen der OCR-Auswertung. Einzelwert dieses Ergebnisses.

### result.lines.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.lines.position

Position des Punktes/Fensters im Ergebnis-Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.lines.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.minimum_confidence

Für diese Berechnung verwendete Mindestkonfidenz als Anteil von 0 bis 1. Einzelwert dieses Ergebnisses.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### result.word_count

Anzahl erkannter Wörter im betrachteten Textbereich. Einzelwert dieses Ergebnisses.

### result.words.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.words.line_position

Position beziehungsweise Zuordnung des OCR-Treffers innerhalb seiner Zeile. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.position

Position des Punktes/Fensters im Ergebnis-Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.words.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "OcrResult",
  "name": "OcrResult",
  "result": {
    "TypeName": "OcrResult",
    "DisplayName": "OcrResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "MinimumConfidence",
        "DisplayName": "Minimum Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "minimum_confidence",
        "EnumDisplayNames": null,
        "StableId": "minimum_confidence"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "LineCount",
        "DisplayName": "Line Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "line_count",
        "EnumDisplayNames": null,
        "StableId": "line_count"
      },
      {
        "Name": "WordCount",
        "DisplayName": "Word Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "word_count",
        "EnumDisplayNames": null,
        "StableId": "word_count"
      },
      {
        "Name": "Lines.Count",
        "DisplayName": "Lines / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.count",
        "EnumDisplayNames": null,
        "StableId": "lines.count"
      },
      {
        "Name": "Lines[].Text",
        "DisplayName": "Lines[] / Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.text",
        "EnumDisplayNames": null,
        "StableId": "lines.text"
      },
      {
        "Name": "Lines[].Confidence",
        "DisplayName": "Lines[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.confidence",
        "EnumDisplayNames": null,
        "StableId": "lines.confidence"
      },
      {
        "Name": "Lines[].BoundingBox",
        "DisplayName": "Lines[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box"
      },
      {
        "Name": "Lines[].BoundingBox.X",
        "DisplayName": "Lines[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.x"
      },
      {
        "Name": "Lines[].BoundingBox.Y",
        "DisplayName": "Lines[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.y"
      },
      {
        "Name": "Lines[].BoundingBox.Width",
        "DisplayName": "Lines[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.width"
      },
      {
        "Name": "Lines[].BoundingBox.Height",
        "DisplayName": "Lines[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.height"
      },
      {
        "Name": "Lines[].BoundingBox.Left",
        "DisplayName": "Lines[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.left"
      },
      {
        "Name": "Lines[].BoundingBox.Top",
        "DisplayName": "Lines[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.top"
      },
      {
        "Name": "Lines[].BoundingBox.Right",
        "DisplayName": "Lines[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.right"
      },
      {
        "Name": "Lines[].BoundingBox.Bottom",
        "DisplayName": "Lines[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.bottom"
      },
      {
        "Name": "Lines[].BoundingBox.IsEmpty",
        "DisplayName": "Lines[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.is_empty"
      },
      {
        "Name": "Lines[].BoundingBox.Location",
        "DisplayName": "Lines[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.location"
      },
      {
        "Name": "Lines[].BoundingBox.Location.X",
        "DisplayName": "Lines[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.location.x"
      },
      {
        "Name": "Lines[].BoundingBox.Location.Y",
        "DisplayName": "Lines[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.location.y"
      },
      {
        "Name": "Lines[].BoundingBox.Center",
        "DisplayName": "Lines[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.center"
      },
      {
        "Name": "Lines[].BoundingBox.Center.X",
        "DisplayName": "Lines[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.center.x"
      },
      {
        "Name": "Lines[].BoundingBox.Center.Y",
        "DisplayName": "Lines[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "lines.bounding_box.center.y"
      },
      {
        "Name": "Lines[].Position",
        "DisplayName": "Lines[] / Position",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "lines.position",
        "EnumDisplayNames": null,
        "StableId": "lines.position"
      },
      {
        "Name": "Words.Count",
        "DisplayName": "Words / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.count",
        "EnumDisplayNames": null,
        "StableId": "words.count"
      },
      {
        "Name": "Words[].Text",
        "DisplayName": "Words[] / Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.text",
        "EnumDisplayNames": null,
        "StableId": "words.text"
      },
      {
        "Name": "Words[].Confidence",
        "DisplayName": "Words[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.confidence",
        "EnumDisplayNames": null,
        "StableId": "words.confidence"
      },
      {
        "Name": "Words[].BoundingBox",
        "DisplayName": "Words[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box"
      },
      {
        "Name": "Words[].BoundingBox.X",
        "DisplayName": "Words[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.x"
      },
      {
        "Name": "Words[].BoundingBox.Y",
        "DisplayName": "Words[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.y"
      },
      {
        "Name": "Words[].BoundingBox.Width",
        "DisplayName": "Words[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.width"
      },
      {
        "Name": "Words[].BoundingBox.Height",
        "DisplayName": "Words[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.height"
      },
      {
        "Name": "Words[].BoundingBox.Left",
        "DisplayName": "Words[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.left"
      },
      {
        "Name": "Words[].BoundingBox.Top",
        "DisplayName": "Words[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.top"
      },
      {
        "Name": "Words[].BoundingBox.Right",
        "DisplayName": "Words[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.right"
      },
      {
        "Name": "Words[].BoundingBox.Bottom",
        "DisplayName": "Words[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.bottom"
      },
      {
        "Name": "Words[].BoundingBox.IsEmpty",
        "DisplayName": "Words[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.is_empty"
      },
      {
        "Name": "Words[].BoundingBox.Location",
        "DisplayName": "Words[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.location"
      },
      {
        "Name": "Words[].BoundingBox.Location.X",
        "DisplayName": "Words[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.location.x"
      },
      {
        "Name": "Words[].BoundingBox.Location.Y",
        "DisplayName": "Words[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.location.y"
      },
      {
        "Name": "Words[].BoundingBox.Center",
        "DisplayName": "Words[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.center"
      },
      {
        "Name": "Words[].BoundingBox.Center.X",
        "DisplayName": "Words[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.center.x"
      },
      {
        "Name": "Words[].BoundingBox.Center.Y",
        "DisplayName": "Words[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "words.bounding_box.center.y"
      },
      {
        "Name": "Words[].Position",
        "DisplayName": "Words[] / Position",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.position",
        "EnumDisplayNames": null,
        "StableId": "words.position"
      },
      {
        "Name": "Words[].LinePosition",
        "DisplayName": "Words[] / Line Position",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "words.line_position",
        "EnumDisplayNames": null,
        "StableId": "words.line_position"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "MinimumConfidence",
        "DisplayName": "Minimum Confidence",
        "Property": {
          "Name": "MinimumConfidence",
          "DisplayName": "Minimum Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "minimum_confidence",
          "EnumDisplayNames": null,
          "StableId": "minimum_confidence"
        },
        "Children": []
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "LineCount",
        "DisplayName": "Line Count",
        "Property": {
          "Name": "LineCount",
          "DisplayName": "Line Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "line_count",
          "EnumDisplayNames": null,
          "StableId": "line_count"
        },
        "Children": []
      },
      {
        "Segment": "WordCount",
        "DisplayName": "Word Count",
        "Property": {
          "Name": "WordCount",
          "DisplayName": "Word Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "word_count",
          "EnumDisplayNames": null,
          "StableId": "word_count"
        },
        "Children": []
      },
      {
        "Segment": "Lines",
        "DisplayName": "Lines",
        "Property": null,
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Lines.Count",
              "DisplayName": "Lines / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.count",
              "EnumDisplayNames": null,
              "StableId": "lines.count"
            },
            "Children": []
          },
          {
            "Segment": "Text",
            "DisplayName": "Text",
            "Property": {
              "Name": "Lines[].Text",
              "DisplayName": "Lines[] / Text",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.text",
              "EnumDisplayNames": null,
              "StableId": "lines.text"
            },
            "Children": []
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "Lines[].Confidence",
              "DisplayName": "Lines[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.confidence",
              "EnumDisplayNames": null,
              "StableId": "lines.confidence"
            },
            "Children": []
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "Lines[].BoundingBox",
              "DisplayName": "Lines[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "lines.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Lines[].BoundingBox.X",
                  "DisplayName": "Lines[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Lines[].BoundingBox.Y",
                  "DisplayName": "Lines[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "Lines[].BoundingBox.Width",
                  "DisplayName": "Lines[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "Lines[].BoundingBox.Height",
                  "DisplayName": "Lines[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "Lines[].BoundingBox.Left",
                  "DisplayName": "Lines[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "Lines[].BoundingBox.Top",
                  "DisplayName": "Lines[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "Lines[].BoundingBox.Right",
                  "DisplayName": "Lines[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "Lines[].BoundingBox.Bottom",
                  "DisplayName": "Lines[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "Lines[].BoundingBox.IsEmpty",
                  "DisplayName": "Lines[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "Lines[].BoundingBox.Location",
                  "DisplayName": "Lines[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Location.X",
                      "DisplayName": "Lines[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Location.Y",
                      "DisplayName": "Lines[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "Lines[].BoundingBox.Center",
                  "DisplayName": "Lines[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "lines.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "lines.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Center.X",
                      "DisplayName": "Lines[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Lines[].BoundingBox.Center.Y",
                      "DisplayName": "Lines[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "lines.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "lines.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Position",
            "DisplayName": "Position",
            "Property": {
              "Name": "Lines[].Position",
              "DisplayName": "Lines[] / Position",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "lines.position",
              "EnumDisplayNames": null,
              "StableId": "lines.position"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Words",
        "DisplayName": "Words",
        "Property": null,
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Words.Count",
              "DisplayName": "Words / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.count",
              "EnumDisplayNames": null,
              "StableId": "words.count"
            },
            "Children": []
          },
          {
            "Segment": "Text",
            "DisplayName": "Text",
            "Property": {
              "Name": "Words[].Text",
              "DisplayName": "Words[] / Text",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.text",
              "EnumDisplayNames": null,
              "StableId": "words.text"
            },
            "Children": []
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "Words[].Confidence",
              "DisplayName": "Words[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.confidence",
              "EnumDisplayNames": null,
              "StableId": "words.confidence"
            },
            "Children": []
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "Words[].BoundingBox",
              "DisplayName": "Words[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "words.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "Words[].BoundingBox.X",
                  "DisplayName": "Words[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "Words[].BoundingBox.Y",
                  "DisplayName": "Words[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "Words[].BoundingBox.Width",
                  "DisplayName": "Words[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "Words[].BoundingBox.Height",
                  "DisplayName": "Words[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "Words[].BoundingBox.Left",
                  "DisplayName": "Words[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "Words[].BoundingBox.Top",
                  "DisplayName": "Words[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "Words[].BoundingBox.Right",
                  "DisplayName": "Words[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "Words[].BoundingBox.Bottom",
                  "DisplayName": "Words[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "Words[].BoundingBox.IsEmpty",
                  "DisplayName": "Words[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "Words[].BoundingBox.Location",
                  "DisplayName": "Words[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Words[].BoundingBox.Location.X",
                      "DisplayName": "Words[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Words[].BoundingBox.Location.Y",
                      "DisplayName": "Words[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "Words[].BoundingBox.Center",
                  "DisplayName": "Words[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "words.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "words.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "Words[].BoundingBox.Center.X",
                      "DisplayName": "Words[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "Words[].BoundingBox.Center.Y",
                      "DisplayName": "Words[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "words.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "words.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Position",
            "DisplayName": "Position",
            "Property": {
              "Name": "Words[].Position",
              "DisplayName": "Words[] / Position",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.position",
              "EnumDisplayNames": null,
              "StableId": "words.position"
            },
            "Children": []
          },
          {
            "Segment": "LinePosition",
            "DisplayName": "Line Position",
            "Property": {
              "Name": "Words[].LinePosition",
              "DisplayName": "Words[] / Line Position",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "words.line_position",
              "EnumDisplayNames": null,
              "StableId": "words.line_position"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: PointComparisonResult

ID: PointComparisonResult
Website: /doku/werte/PointComparisonResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag PointComparisonResult. Wird von Punkte vergleichen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.match_count

Anzahl passender Prozesse oder Merkmalszuordnungen im konkreten Ergebnis; der Ergebnis-Typ bestimmt, was gezählt wird. Einzelwert dieses Ergebnisses.

### result.matches

Einzelne OCR-/Punktvergleichstreffer mit ihren Detailwerten. Der Ergebnis-Typ bestimmt die Elementstruktur. Einzelwert dieses Ergebnisses.

### result.total_count

Gesamtzahl der im konkreten Abfrageergebnis gelieferten Einträge. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "PointComparisonResult",
  "name": "PointComparisonResult",
  "result": {
    "TypeName": "PointComparisonResult",
    "DisplayName": "PointComparisonResult",
    "Properties": [
      {
        "Name": "Matches",
        "DisplayName": "Matches",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "matches",
        "EnumDisplayNames": null,
        "StableId": "matches"
      },
      {
        "Name": "MatchCount",
        "DisplayName": "Match Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "match_count",
        "EnumDisplayNames": null,
        "StableId": "match_count"
      },
      {
        "Name": "TotalCount",
        "DisplayName": "Total Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "total_count",
        "EnumDisplayNames": null,
        "StableId": "total_count"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Matches",
        "DisplayName": "Matches",
        "Property": {
          "Name": "Matches",
          "DisplayName": "Matches",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "matches",
          "EnumDisplayNames": null,
          "StableId": "matches"
        },
        "Children": []
      },
      {
        "Segment": "MatchCount",
        "DisplayName": "Match Count",
        "Property": {
          "Name": "MatchCount",
          "DisplayName": "Match Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "match_count",
          "EnumDisplayNames": null,
          "StableId": "match_count"
        },
        "Children": []
      },
      {
        "Segment": "TotalCount",
        "DisplayName": "Total Count",
        "Property": {
          "Name": "TotalCount",
          "DisplayName": "Total Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "total_count",
          "EnumDisplayNames": null,
          "StableId": "total_count"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: PowerStatusQueryResult

ID: PowerStatusQueryResult
Website: /doku/werte/PowerStatusQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag PowerStatusQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_charging

Ob das System ein Laden des Akkus meldet. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.percentage

Aktueller Akkuladestand als Prozentwert, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.power_source

Gemeldete Energiequelle, etwa Netzbetrieb oder Akkubetrieb. Einzelwert dieses Ergebnisses.

### result.power_source.option.Ac

Stromversorgung über Netzstrom.

### result.power_source.option.Battery

Stromversorgung über Akku.

### result.power_source.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "PowerStatusQueryResult",
  "name": "PowerStatusQueryResult",
  "result": {
    "TypeName": "PowerStatusQueryResult",
    "DisplayName": "PowerStatusQueryResult",
    "Properties": [
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "IsCharging",
        "DisplayName": "Is Charging",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_charging",
        "EnumDisplayNames": null,
        "StableId": "is_charging"
      },
      {
        "Name": "Percentage",
        "DisplayName": "Percentage",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "percentage",
        "EnumDisplayNames": null,
        "StableId": "percentage"
      },
      {
        "Name": "PowerSource",
        "DisplayName": "Power Source",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsPowerSource",
        "EnumValues": [
          "Unknown",
          "Ac",
          "Battery"
        ],
        "Id": "power_source",
        "EnumDisplayNames": null,
        "StableId": "power_source"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "IsCharging",
        "DisplayName": "Is Charging",
        "Property": {
          "Name": "IsCharging",
          "DisplayName": "Is Charging",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_charging",
          "EnumDisplayNames": null,
          "StableId": "is_charging"
        },
        "Children": []
      },
      {
        "Segment": "Percentage",
        "DisplayName": "Percentage",
        "Property": {
          "Name": "Percentage",
          "DisplayName": "Percentage",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "percentage",
          "EnumDisplayNames": null,
          "StableId": "percentage"
        },
        "Children": []
      },
      {
        "Segment": "PowerSource",
        "DisplayName": "Power Source",
        "Property": {
          "Name": "PowerSource",
          "DisplayName": "Power Source",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsPowerSource",
          "EnumValues": [
            "Unknown",
            "Ac",
            "Battery"
          ],
          "Id": "power_source",
          "EnumDisplayNames": null,
          "StableId": "power_source"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: PredictMovementResult

ID: PredictMovementResult
Website: /doku/werte/PredictMovementResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag PredictMovementResult. Wird von Bewegung vorhersagen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.is_predicted

Ob ein Vorhersagemodell genügend geeignete Messwerte für eine gültige Prognose hatte. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.predicted_for_utc

UTC-Zielzeitpunkt, für den die vorhergesagte Position gilt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "PredictMovementResult",
  "name": "PredictMovementResult",
  "result": {
    "TypeName": "PredictMovementResult",
    "DisplayName": "PredictMovementResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "IsPredicted",
        "DisplayName": "Is Predicted",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_predicted",
        "EnumDisplayNames": null,
        "StableId": "is_predicted"
      },
      {
        "Name": "PredictedForUtc",
        "DisplayName": "Predicted For Utc",
        "DataType": "DateTime",
        "Description": "DateTime, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "predicted_for_utc",
        "EnumDisplayNames": null,
        "StableId": "predicted_for_utc"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "IsPredicted",
        "DisplayName": "Is Predicted",
        "Property": {
          "Name": "IsPredicted",
          "DisplayName": "Is Predicted",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_predicted",
          "EnumDisplayNames": null,
          "StableId": "is_predicted"
        },
        "Children": []
      },
      {
        "Segment": "PredictedForUtc",
        "DisplayName": "Predicted For Utc",
        "Property": {
          "Name": "PredictedForUtc",
          "DisplayName": "Predicted For Utc",
          "DataType": "DateTime",
          "Description": "DateTime, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "predicted_for_utc",
          "EnumDisplayNames": null,
          "StableId": "predicted_for_utc"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: PrinterStatusQueryResult

ID: PrinterStatusQueryResult
Website: /doku/werte/PrinterStatusQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag PrinterStatusQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "PrinterStatusQueryResult",
  "name": "PrinterStatusQueryResult",
  "result": {
    "TypeName": "PrinterStatusQueryResult",
    "DisplayName": "PrinterStatusQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: ProcessRunningQueryResult

ID: ProcessRunningQueryResult
Website: /doku/werte/ProcessRunningQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ProcessRunningQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.id

System-/Geräteidentität des jeweiligen Ergebnisobjekts. Ihre Lebensdauer und Form hängen von der abgefragten Windows-Funktion ab. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ProcessRunningQueryResult",
  "name": "ProcessRunningQueryResult",
  "result": {
    "TypeName": "ProcessRunningQueryResult",
    "DisplayName": "ProcessRunningQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "id",
        "EnumDisplayNames": null,
        "StableId": "id"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "id",
          "EnumDisplayNames": null,
          "StableId": "id"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: SaveImageResult

ID: SaveImageResult
Website: /doku/werte/SaveImageResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag SaveImageResult. Wird von Bild speichern geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.file_name

Name der erzeugten Datei ohne zwingend den ganzen Verzeichnispfad. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.file_path

Pfad der erzeugten Bild-/Videodatei auf dem ausführenden Rechner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.file_size_bytes

Größe der gespeicherten Datei in Bytes. Einzelwert dieses Ergebnisses.

### result.format

Ausgabeformat der Bild-/Videodatei. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.height

Höhe des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### result.saved_at_utc

UTC-Zeitpunkt der Speicherung/Finalisierung. Einzelwert dieses Ergebnisses.

### result.width

Breite des Ergebnisrechtecks in Pixeln. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "SaveImageResult",
  "name": "SaveImageResult",
  "result": {
    "TypeName": "SaveImageResult",
    "DisplayName": "SaveImageResult",
    "Properties": [
      {
        "Name": "FilePath",
        "DisplayName": "File Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "file_path",
        "EnumDisplayNames": null,
        "StableId": "file_path"
      },
      {
        "Name": "FileName",
        "DisplayName": "File Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "file_name",
        "EnumDisplayNames": null,
        "StableId": "file_name"
      },
      {
        "Name": "Format",
        "DisplayName": "Format",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "format",
        "EnumDisplayNames": null,
        "StableId": "format"
      },
      {
        "Name": "Width",
        "DisplayName": "Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "width",
        "EnumDisplayNames": null,
        "StableId": "width"
      },
      {
        "Name": "Height",
        "DisplayName": "Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "height",
        "EnumDisplayNames": null,
        "StableId": "height"
      },
      {
        "Name": "FileSizeBytes",
        "DisplayName": "File Size Bytes",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "file_size_bytes",
        "EnumDisplayNames": null,
        "StableId": "file_size_bytes"
      },
      {
        "Name": "SavedAtUtc",
        "DisplayName": "Saved At Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "saved_at_utc",
        "EnumDisplayNames": null,
        "StableId": "saved_at_utc"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "FilePath",
        "DisplayName": "File Path",
        "Property": {
          "Name": "FilePath",
          "DisplayName": "File Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "file_path",
          "EnumDisplayNames": null,
          "StableId": "file_path"
        },
        "Children": []
      },
      {
        "Segment": "FileName",
        "DisplayName": "File Name",
        "Property": {
          "Name": "FileName",
          "DisplayName": "File Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "file_name",
          "EnumDisplayNames": null,
          "StableId": "file_name"
        },
        "Children": []
      },
      {
        "Segment": "Format",
        "DisplayName": "Format",
        "Property": {
          "Name": "Format",
          "DisplayName": "Format",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "format",
          "EnumDisplayNames": null,
          "StableId": "format"
        },
        "Children": []
      },
      {
        "Segment": "Width",
        "DisplayName": "Width",
        "Property": {
          "Name": "Width",
          "DisplayName": "Width",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "width",
          "EnumDisplayNames": null,
          "StableId": "width"
        },
        "Children": []
      },
      {
        "Segment": "Height",
        "DisplayName": "Height",
        "Property": {
          "Name": "Height",
          "DisplayName": "Height",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "height",
          "EnumDisplayNames": null,
          "StableId": "height"
        },
        "Children": []
      },
      {
        "Segment": "FileSizeBytes",
        "DisplayName": "File Size Bytes",
        "Property": {
          "Name": "FileSizeBytes",
          "DisplayName": "File Size Bytes",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "file_size_bytes",
          "EnumDisplayNames": null,
          "StableId": "file_size_bytes"
        },
        "Children": []
      },
      {
        "Segment": "SavedAtUtc",
        "DisplayName": "Saved At Utc",
        "Property": {
          "Name": "SavedAtUtc",
          "DisplayName": "Saved At Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "saved_at_utc",
          "EnumDisplayNames": null,
          "StableId": "saved_at_utc"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: ScriptExecutionResult

ID: ScriptExecutionResult
Website: /doku/werte/ScriptExecutionResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ScriptExecutionResult. Wird von Skript ausführen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ScriptExecutionResult",
  "name": "ScriptExecutionResult",
  "result": {
    "TypeName": "ScriptExecutionResult",
    "DisplayName": "ScriptExecutionResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: SecurityStatusQueryResult

ID: SecurityStatusQueryResult
Website: /doku/werte/SecurityStatusQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag SecurityStatusQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.is_enabled

Ob die abgefragte Funktion/Hardware vom System als aktiviert gemeldet wird. Einzelwert dieses Ergebnisses.

### result.on_off_state

Ein-/Aus-Zustand der entsprechenden Gerätefunktion gemäß Ergebnisvertrag. Einzelwert dieses Ergebnisses.

### result.on_off_state.option.Off

Der abgefragte Schalter ist ausgeschaltet.

### result.on_off_state.option.On

Der abgefragte Schalter ist eingeschaltet.

### result.on_off_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "SecurityStatusQueryResult",
  "name": "SecurityStatusQueryResult",
  "result": {
    "TypeName": "SecurityStatusQueryResult",
    "DisplayName": "SecurityStatusQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsEnabled",
        "DisplayName": "Is Enabled",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_enabled",
        "EnumDisplayNames": null,
        "StableId": "is_enabled"
      },
      {
        "Name": "OnOffState",
        "DisplayName": "On Off State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
        "EnumValues": [
          "Unknown",
          "Off",
          "On"
        ],
        "Id": "on_off_state",
        "EnumDisplayNames": null,
        "StableId": "on_off_state"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsEnabled",
        "DisplayName": "Is Enabled",
        "Property": {
          "Name": "IsEnabled",
          "DisplayName": "Is Enabled",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_enabled",
          "EnumDisplayNames": null,
          "StableId": "is_enabled"
        },
        "Children": []
      },
      {
        "Segment": "OnOffState",
        "DisplayName": "On Off State",
        "Property": {
          "Name": "OnOffState",
          "DisplayName": "On Off State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
          "EnumValues": [
            "Unknown",
            "Off",
            "On"
          ],
          "Id": "on_off_state",
          "EnumDisplayNames": null,
          "StableId": "on_off_state"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: SessionStateQueryResult

ID: SessionStateQueryResult
Website: /doku/werte/SessionStateQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag SessionStateQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.id

System-/Geräteidentität des jeweiligen Ergebnisobjekts. Ihre Lebensdauer und Form hängen von der abgefragten Windows-Funktion ab. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_active

Ob das geprüfte Fenster zum Abfragezeitpunkt im Vordergrund ist. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.session_state

Aktueller Zustand der Windows-Sitzung, etwa gesperrt oder entsperrt gemäß Systemmeldung. Einzelwert dieses Ergebnisses.

### result.session_state.option.Active

Die Windows-Sitzung ist aktiv.

### result.session_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.session_state.option.Locked

Die Windows-Sitzung ist gesperrt.

### result.session_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "SessionStateQueryResult",
  "name": "SessionStateQueryResult",
  "result": {
    "TypeName": "SessionStateQueryResult",
    "DisplayName": "SessionStateQueryResult",
    "Properties": [
      {
        "Name": "IsActive",
        "DisplayName": "Is Active",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_active",
        "EnumDisplayNames": null,
        "StableId": "is_active"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "id",
        "EnumDisplayNames": null,
        "StableId": "id"
      },
      {
        "Name": "SessionState",
        "DisplayName": "Session State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsSessionState",
        "EnumValues": [
          "Unknown",
          "Active",
          "Locked",
          "Disconnected"
        ],
        "Id": "session_state",
        "EnumDisplayNames": null,
        "StableId": "session_state"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsActive",
        "DisplayName": "Is Active",
        "Property": {
          "Name": "IsActive",
          "DisplayName": "Is Active",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_active",
          "EnumDisplayNames": null,
          "StableId": "is_active"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "id",
          "EnumDisplayNames": null,
          "StableId": "id"
        },
        "Children": []
      },
      {
        "Segment": "SessionState",
        "DisplayName": "Session State",
        "Property": {
          "Name": "SessionState",
          "DisplayName": "Session State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsSessionState",
          "EnumValues": [
            "Unknown",
            "Active",
            "Locked",
            "Disconnected"
          ],
          "Id": "session_state",
          "EnumDisplayNames": null,
          "StableId": "session_state"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: ShowImageResult

ID: ShowImageResult
Website: /doku/werte/ShowImageResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ShowImageResult. Wird von Bild anzeigen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ShowImageResult",
  "name": "ShowImageResult",
  "result": {
    "TypeName": "ShowImageResult",
    "DisplayName": "ShowImageResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: ShowOnDesktopResult

ID: ShowOnDesktopResult
Website: /doku/werte/ShowOnDesktopResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ShowOnDesktopResult. Wird von Auf Desktop anzeigen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ShowOnDesktopResult",
  "name": "ShowOnDesktopResult",
  "result": {
    "TypeName": "ShowOnDesktopResult",
    "DisplayName": "ShowOnDesktopResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: ShowTextResult

ID: ShowTextResult
Website: /doku/werte/ShowTextResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag ShowTextResult. Wird von Text auf Desktop anzeigen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "ShowTextResult",
  "name": "ShowTextResult",
  "result": {
    "TypeName": "ShowTextResult",
    "DisplayName": "ShowTextResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: StartProcessResult

ID: StartProcessResult
Website: /doku/werte/StartProcessResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag StartProcessResult. Wird von Prozess starten geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.process

Konkrete Prozessreferenz mit Identität und optionalen Programmdaten. Bei keinem Treffer kann sie fehlen; nicht nur process_name als Instanzidentität verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.executable_path

Ermittelter Pfad des Programms. Bei fehlenden Rechten oder fehlender Information kann ein optionaler Wert leer sein. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_id

Windows-Prozess-ID. PIDs können später wiederverwendet werden; die Prozessreferenz ergänzt daher gegebenenfalls Startzeit und weitere Merkmale. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.process_name

Vom System ermittelter Prozessname, nicht notwendigerweise der sichtbare Fenstertitel. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.start_time_utc

UTC-Startzeit der Prozessinstanz zur Unterscheidung wiederverwendeter PIDs. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.process.window_handle

Native Fensterkennung der Programminstanz. Sie gilt im laufenden System und ist kein stabiler Dateipfad oder dauerhafter Job-Bezeichner. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "StartProcessResult",
  "name": "StartProcessResult",
  "result": {
    "TypeName": "StartProcessResult",
    "DisplayName": "StartProcessResult",
    "Properties": [
      {
        "Name": "Process",
        "DisplayName": "Process",
        "DataType": "ProcessReference",
        "Description": "ProcessReference, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process",
        "EnumDisplayNames": null,
        "StableId": "process"
      },
      {
        "Name": "Process.ProcessId",
        "DisplayName": "Process / Process Id",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_id",
        "EnumDisplayNames": null,
        "StableId": "process.process_id"
      },
      {
        "Name": "Process.StartTimeUtc",
        "DisplayName": "Process / Start Time Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.start_time_utc",
        "EnumDisplayNames": null,
        "StableId": "process.start_time_utc"
      },
      {
        "Name": "Process.ProcessName",
        "DisplayName": "Process / Process Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.process_name",
        "EnumDisplayNames": null,
        "StableId": "process.process_name"
      },
      {
        "Name": "Process.ExecutablePath",
        "DisplayName": "Process / Executable Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.executable_path",
        "EnumDisplayNames": null,
        "StableId": "process.executable_path"
      },
      {
        "Name": "Process.WindowHandle",
        "DisplayName": "Process / Window Handle",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "process.window_handle",
        "EnumDisplayNames": null,
        "StableId": "process.window_handle"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Process",
        "DisplayName": "Process",
        "Property": {
          "Name": "Process",
          "DisplayName": "Process",
          "DataType": "ProcessReference",
          "Description": "ProcessReference, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "process",
          "EnumDisplayNames": null,
          "StableId": "process"
        },
        "Children": [
          {
            "Segment": "ProcessId",
            "DisplayName": "Process Id",
            "Property": {
              "Name": "Process.ProcessId",
              "DisplayName": "Process / Process Id",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_id",
              "EnumDisplayNames": null,
              "StableId": "process.process_id"
            },
            "Children": []
          },
          {
            "Segment": "StartTimeUtc",
            "DisplayName": "Start Time Utc",
            "Property": {
              "Name": "Process.StartTimeUtc",
              "DisplayName": "Process / Start Time Utc",
              "DataType": "DateTime",
              "Description": "DateTime",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.start_time_utc",
              "EnumDisplayNames": null,
              "StableId": "process.start_time_utc"
            },
            "Children": []
          },
          {
            "Segment": "ProcessName",
            "DisplayName": "Process Name",
            "Property": {
              "Name": "Process.ProcessName",
              "DisplayName": "Process / Process Name",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.process_name",
              "EnumDisplayNames": null,
              "StableId": "process.process_name"
            },
            "Children": []
          },
          {
            "Segment": "ExecutablePath",
            "DisplayName": "Executable Path",
            "Property": {
              "Name": "Process.ExecutablePath",
              "DisplayName": "Process / Executable Path",
              "DataType": "Text",
              "Description": "Text, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.executable_path",
              "EnumDisplayNames": null,
              "StableId": "process.executable_path"
            },
            "Children": []
          },
          {
            "Segment": "WindowHandle",
            "DisplayName": "Window Handle",
            "Property": {
              "Name": "Process.WindowHandle",
              "DisplayName": "Process / Window Handle",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "process.window_handle",
              "EnumDisplayNames": null,
              "StableId": "process.window_handle"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: StorageDrivesQueryResult

ID: StorageDrivesQueryResult
Website: /doku/werte/StorageDrivesQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag StorageDrivesQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.free_space_gb

Vom Speicherprovider ermittelter freier Speicher in Gigabyte. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "StorageDrivesQueryResult",
  "name": "StorageDrivesQueryResult",
  "result": {
    "TypeName": "StorageDrivesQueryResult",
    "DisplayName": "StorageDrivesQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "FreeSpaceGb",
        "DisplayName": "Free Space Gb",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "free_space_gb",
        "EnumDisplayNames": null,
        "StableId": "free_space_gb"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "FreeSpaceGb",
        "DisplayName": "Free Space Gb",
        "Property": {
          "Name": "FreeSpaceGb",
          "DisplayName": "Free Space Gb",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "free_space_gb",
          "EnumDisplayNames": null,
          "StableId": "free_space_gb"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: SystemLifecycleQueryResult

ID: SystemLifecycleQueryResult
Website: /doku/werte/SystemLifecycleQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag SystemLifecycleQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.percentage

Aktueller Akkuladestand als Prozentwert, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.value

Der von dieser Windows-Abfrage gelieferte fachliche Wert; die Typ- und Kardinalitätsspalten beschreiben seine Darstellung. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "SystemLifecycleQueryResult",
  "name": "SystemLifecycleQueryResult",
  "result": {
    "TypeName": "SystemLifecycleQueryResult",
    "DisplayName": "SystemLifecycleQueryResult",
    "Properties": [
      {
        "Name": "UptimeMilliseconds",
        "DisplayName": "Uptime Milliseconds",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "value",
        "EnumDisplayNames": null,
        "StableId": "value"
      },
      {
        "Name": "UptimeSeconds",
        "DisplayName": "Uptime Seconds",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "percentage",
        "EnumDisplayNames": null,
        "StableId": "percentage"
      },
      {
        "Name": "OperatingSystemVersion",
        "DisplayName": "Operating System Version",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "UptimeMilliseconds",
        "DisplayName": "Uptime Milliseconds",
        "Property": {
          "Name": "UptimeMilliseconds",
          "DisplayName": "Uptime Milliseconds",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "value",
          "EnumDisplayNames": null,
          "StableId": "value"
        },
        "Children": []
      },
      {
        "Segment": "UptimeSeconds",
        "DisplayName": "Uptime Seconds",
        "Property": {
          "Name": "UptimeSeconds",
          "DisplayName": "Uptime Seconds",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "percentage",
          "EnumDisplayNames": null,
          "StableId": "percentage"
        },
        "Children": []
      },
      {
        "Segment": "OperatingSystemVersion",
        "DisplayName": "Operating System Version",
        "Property": {
          "Name": "OperatingSystemVersion",
          "DisplayName": "Operating System Version",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: SystemSettingsQueryResult

ID: SystemSettingsQueryResult
Website: /doku/werte/SystemSettingsQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag SystemSettingsQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_enabled

Ob die abgefragte Funktion/Hardware vom System als aktiviert gemeldet wird. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "SystemSettingsQueryResult",
  "name": "SystemSettingsQueryResult",
  "result": {
    "TypeName": "SystemSettingsQueryResult",
    "DisplayName": "SystemSettingsQueryResult",
    "Properties": [
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "IsEnabled",
        "DisplayName": "Is Enabled",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_enabled",
        "EnumDisplayNames": null,
        "StableId": "is_enabled"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "IsEnabled",
        "DisplayName": "Is Enabled",
        "Property": {
          "Name": "IsEnabled",
          "DisplayName": "Is Enabled",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_enabled",
          "EnumDisplayNames": null,
          "StableId": "is_enabled"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: TemplateMatchingResult

ID: TemplateMatchingResult
Website: /doku/werte/TemplateMatchingResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag TemplateMatchingResult. Wird von Bildvorlage erkennen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "TemplateMatchingResult",
  "name": "TemplateMatchingResult",
  "result": {
    "TypeName": "TemplateMatchingResult",
    "DisplayName": "TemplateMatchingResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: TerminateProcessResult

ID: TerminateProcessResult
Website: /doku/werte/TerminateProcessResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag TerminateProcessResult. Wird von Prozess beenden geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "TerminateProcessResult",
  "name": "TerminateProcessResult",
  "result": {
    "TypeName": "TerminateProcessResult",
    "DisplayName": "TerminateProcessResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: TimeoutResult

ID: TimeoutResult
Website: /doku/werte/TimeoutResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag TimeoutResult. Wird von Warten geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "TimeoutResult",
  "name": "TimeoutResult",
  "result": {
    "TypeName": "TimeoutResult",
    "DisplayName": "TimeoutResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: UnsupportedWindowsQueryResult

ID: UnsupportedWindowsQueryResult
Website: /doku/werte/UnsupportedWindowsQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag UnsupportedWindowsQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "UnsupportedWindowsQueryResult",
  "name": "UnsupportedWindowsQueryResult",
  "result": {
    "TypeName": "UnsupportedWindowsQueryResult",
    "DisplayName": "UnsupportedWindowsQueryResult",
    "Properties": [
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: UserChoiceResult

ID: UserChoiceResult
Website: /doku/werte/UserChoiceResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag UserChoiceResult. Wird von Benutzerauswahl abfragen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.selected_index

Index der gewählten Antwort, nullbasiert. Vor Verwendung was_cancelled prüfen. Einzelwert dieses Ergebnisses.

### result.selected_label

Sichtbarer Text der gewählten Antwort, geeignet für eine verständliche Rückmeldung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.selected_option_id

Stabile ID der gewählten Antwort; sie ist vom sichtbaren Label und vom fachlichen Textwert getrennt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.selected_value

Weitergereichter fachlicher Textwert der Antwort, geeignet für nachfolgende Vergleiche. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.was_cancelled

Ob der Benutzer das Auswahlfenster ohne Antwort abgebrochen hat. Dies allein bedeutet nicht, dass der komplette Job gestoppt wurde. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "UserChoiceResult",
  "name": "UserChoiceResult",
  "result": {
    "TypeName": "UserChoiceResult",
    "DisplayName": "UserChoiceResult",
    "Properties": [
      {
        "Name": "SelectedOptionId",
        "DisplayName": "Selected Option Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "selected_option_id",
        "EnumDisplayNames": null,
        "StableId": "selected_option_id"
      },
      {
        "Name": "SelectedLabel",
        "DisplayName": "Selected Label",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "selected_label",
        "EnumDisplayNames": null,
        "StableId": "selected_label"
      },
      {
        "Name": "SelectedValue",
        "DisplayName": "Selected Value",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "selected_value",
        "EnumDisplayNames": null,
        "StableId": "selected_value"
      },
      {
        "Name": "SelectedIndex",
        "DisplayName": "Selected Index",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "selected_index",
        "EnumDisplayNames": null,
        "StableId": "selected_index"
      },
      {
        "Name": "WasCancelled",
        "DisplayName": "Was Cancelled",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "was_cancelled",
        "EnumDisplayNames": null,
        "StableId": "was_cancelled"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "SelectedOptionId",
        "DisplayName": "Selected Option Id",
        "Property": {
          "Name": "SelectedOptionId",
          "DisplayName": "Selected Option Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "selected_option_id",
          "EnumDisplayNames": null,
          "StableId": "selected_option_id"
        },
        "Children": []
      },
      {
        "Segment": "SelectedLabel",
        "DisplayName": "Selected Label",
        "Property": {
          "Name": "SelectedLabel",
          "DisplayName": "Selected Label",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "selected_label",
          "EnumDisplayNames": null,
          "StableId": "selected_label"
        },
        "Children": []
      },
      {
        "Segment": "SelectedValue",
        "DisplayName": "Selected Value",
        "Property": {
          "Name": "SelectedValue",
          "DisplayName": "Selected Value",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "selected_value",
          "EnumDisplayNames": null,
          "StableId": "selected_value"
        },
        "Children": []
      },
      {
        "Segment": "SelectedIndex",
        "DisplayName": "Selected Index",
        "Property": {
          "Name": "SelectedIndex",
          "DisplayName": "Selected Index",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "selected_index",
          "EnumDisplayNames": null,
          "StableId": "selected_index"
        },
        "Children": []
      },
      {
        "Segment": "WasCancelled",
        "DisplayName": "Was Cancelled",
        "Property": {
          "Name": "WasCancelled",
          "DisplayName": "Was Cancelled",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "was_cancelled",
          "EnumDisplayNames": null,
          "StableId": "was_cancelled"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: VideoCreationResult

ID: VideoCreationResult
Website: /doku/werte/VideoCreationResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag VideoCreationResult. Wird von Video erstellen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "VideoCreationResult",
  "name": "VideoCreationResult",
  "result": {
    "TypeName": "VideoCreationResult",
    "DisplayName": "VideoCreationResult",
    "Properties": [],
    "PropertyTree": []
  }
}
```

## Werte und Ergebnisse: WindowsSettingChangeResult

ID: WindowsSettingChangeResult
Website: /doku/werte/WindowsSettingChangeResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag WindowsSettingChangeResult. Wird von Windows-Einstellung ändern geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.windows_setting.applied_value

Vom Windows-Provider gemeldeter angewendeter Wert nach der Änderung. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.previous_value

Vor der Windows-Änderung beobachteter Wert. Für eine Wiederherstellung nur mit derselben Funktion und kompatibler Darstellung verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.restart_required

Ob die abgefragte Funktion beziehungsweise Windows Update einen Neustartbedarf meldet. Einzelwert dieses Ergebnisses.

### result.windows_setting.setting_id

Kennung der geänderten Windows-Funktion. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.windows_setting.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.windows_setting.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.windows_setting.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.windows_setting.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.windows_setting.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.windows_setting.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "WindowsSettingChangeResult",
  "name": "WindowsSettingChangeResult",
  "result": {
    "TypeName": "WindowsSettingChangeResult",
    "DisplayName": "WindowsSettingChangeResult",
    "Properties": [
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "windows_setting.status",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.status"
      },
      {
        "Name": "SettingId",
        "DisplayName": "Einstellung",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.setting_id",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.setting_id"
      },
      {
        "Name": "PreviousValue",
        "DisplayName": "Vorheriger Wert",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.previous_value",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.previous_value"
      },
      {
        "Name": "AppliedValue",
        "DisplayName": "Angewendeter Wert",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.applied_value",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.applied_value"
      },
      {
        "Name": "RestartRequired",
        "DisplayName": "Neustart erforderlich",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.restart_required",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.restart_required"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Fehlercode",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "windows_setting.error_code",
        "EnumDisplayNames": null,
        "StableId": "windows_setting.error_code"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "windows_setting.status",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.status"
        },
        "Children": []
      },
      {
        "Segment": "SettingId",
        "DisplayName": "Einstellung",
        "Property": {
          "Name": "SettingId",
          "DisplayName": "Einstellung",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.setting_id",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.setting_id"
        },
        "Children": []
      },
      {
        "Segment": "PreviousValue",
        "DisplayName": "Vorheriger Wert",
        "Property": {
          "Name": "PreviousValue",
          "DisplayName": "Vorheriger Wert",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.previous_value",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.previous_value"
        },
        "Children": []
      },
      {
        "Segment": "AppliedValue",
        "DisplayName": "Angewendeter Wert",
        "Property": {
          "Name": "AppliedValue",
          "DisplayName": "Angewendeter Wert",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.applied_value",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.applied_value"
        },
        "Children": []
      },
      {
        "Segment": "RestartRequired",
        "DisplayName": "Neustart erforderlich",
        "Property": {
          "Name": "RestartRequired",
          "DisplayName": "Neustart erforderlich",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.restart_required",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.restart_required"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Fehlercode",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Fehlercode",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "windows_setting.error_code",
          "EnumDisplayNames": null,
          "StableId": "windows_setting.error_code"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: WindowsUpdateStatusQueryResult

ID: WindowsUpdateStatusQueryResult
Website: /doku/werte/WindowsUpdateStatusQueryResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag WindowsUpdateStatusQueryResult. Wird von der zugehörigen Windows-Abfrage geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.pending_restart

Ob Windows Update noch einen Neustart verlangt. Einzelwert dieses Ergebnisses.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "WindowsUpdateStatusQueryResult",
  "name": "WindowsUpdateStatusQueryResult",
  "result": {
    "TypeName": "WindowsUpdateStatusQueryResult",
    "DisplayName": "WindowsUpdateStatusQueryResult",
    "Properties": [
      {
        "Name": "PendingRestart",
        "DisplayName": "Pending Restart",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "pending_restart",
        "EnumDisplayNames": null,
        "StableId": "pending_restart"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "PendingRestart",
        "DisplayName": "Pending Restart",
        "Property": {
          "Name": "PendingRestart",
          "DisplayName": "Pending Restart",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "pending_restart",
          "EnumDisplayNames": null,
          "StableId": "pending_restart"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: YOLODetectionResult

ID: YOLODetectionResult
Website: /doku/werte/YOLODetectionResult/

### errors

Ein konfigurierte Quelle hat noch nicht zwingend einen Wert geliefert. Prüfe den fachlichen Erfolgswert, fehlende optionale Eigenschaften und den Ausführungszustand des Produzenten. Nur DynamicRoi besitzt die dokumentierte Ausnahme für späteres Feedback; andere Verbraucher dürfen keine beliebigen Vorwärtsreferenzen verwenden.

### example

Eine Ergebnisreferenz verwendet provider_id=step_result und source_id=v1/<kodierte-Step-ID>/<kodierte-Ergebnis-ID>. Die Anleitung „Werte verbinden“ zeigt eine vollständige Verbindung. Prüfe Typ und Kardinalität vor der Verwendung in einer Bedingung oder Folgeaktion.

### purpose

Typisierter Ergebnisvertrag YOLODetectionResult. Wird von Objekte erkennen geliefert. Die stabilen Ergebnis-IDs unten sind unabhängig von CLR-Namen und UI-Übersetzungen. Wähle im Ergebnis-Auswahldialog eine kompatible Eigenschaft statt das ganze Objekt ungeprüft als Text zu verwenden.

### result.all_detections

Liste einzelner Erkennungen mit eigenen Punkten, Rechtecken und Konfidenzen. Die Anzahl ist nicht gleich einer pauschalen Erfolgsbewertung. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.left

Linke Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.top

Obere Rechteckkante in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.all_detections.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.applied_roi

Tatsächlich angewendeter Suchbereich. Damit lässt sich prüfen, ob eine direkte oder dynamische Eingrenzung aktiv war. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.applied_roi.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box

Begrenzendes Rechteck eines Treffers; bei fehlender Erkennung kann ein optionales Rechteck fehlen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.bottom

Untere Rechteckkante in Pixeln, aus Ursprung und Höhe abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center

Mittelpunkt einer einzelnen Erkennung in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.center.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.height

Höhe des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.is_empty

Ob die Zwischenablage im abgefragten Kontext leer ist. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.left

Linke Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location

Pixelposition/-bereich eines erkannten Wortes oder Trefferobjekts; verwende den im Ergebnis ausgewiesenen Koordinatenraum. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.location.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.right

Rechte Rechteckkante in Pixeln, aus Ursprung und Breite abgeleitet. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.top

Obere Rechteckkante in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.width

Breite des Ergebnisrechtecks in Pixeln. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.bounding_box.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.confidence

Normalisierte Trefferkonfidenz zwischen 0 und 1. 0.9 entspricht 90 %; mehrere Treffer können unterschiedliche Konfidenzen besitzen. Einzelwert dieses Ergebnisses.

### result.found

Ob die Erkennung/Suche in diesem Lauf einen passenden Treffer geliefert hat. false ist ein fachliches Ergebnis und nicht automatisch ein Step-Fehler. Einzelwert dieses Ergebnisses.

### result.point

Ermittelter Zielpunkt. Bei Bildschirmquellen ist der Quelle-zu-Desktop-Versatz bereits entsprechend dem Ergebnisvertrag berücksichtigt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.x

Horizontale Punkt-/Versatzkoordinate in Pixeln; den im übergeordneten Ergebnis beschriebenen Koordinatenraum beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.point.y

Vertikale Punkt-/Versatzkoordinate in Pixeln; nicht ungeprüft bildlokale und globale Werte mischen. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.source_capture_is_fresh

Frischezustand der verwendeten Aufnahme, unverändert in das Erkennungsergebnis übernommen. Einzelwert dieses Ergebnisses.

### result.source_capture_timestamp_utc

UTC-Aufnahmezeit der Bildquelle, aus der dieses Ergebnis berechnet wurde. Einzelwert dieses Ergebnisses.

### result.source_frame_timestamp

Monotoner Zeitstempel des zugrunde liegenden Frames. 0 bedeutet unbekannte zeitliche Herkunft. Einzelwert dieses Ergebnisses.

### result.source_frame_version

Frame-Identität der verwendeten Bildquelle; auch ein Erkennungsfehlschlag behält die Herkunftsinformation. Einzelwert dieses Ergebnisses.

### result.used_dynamic_roi

Ob für diese Auswertung ein dynamischer Suchbereich verwendet wurde. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "YOLODetectionResult",
  "name": "YOLODetectionResult",
  "result": {
    "TypeName": "YOLODetectionResult",
    "DisplayName": "YOLODetectionResult",
    "Properties": [
      {
        "Name": "Found",
        "DisplayName": "Found",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "found",
        "EnumDisplayNames": null,
        "StableId": "found"
      },
      {
        "Name": "Point",
        "DisplayName": "Point",
        "DataType": "Point",
        "Description": "Point, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point",
        "EnumDisplayNames": null,
        "StableId": "point"
      },
      {
        "Name": "Point.X",
        "DisplayName": "Point / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.x",
        "EnumDisplayNames": null,
        "StableId": "point.x"
      },
      {
        "Name": "Point.Y",
        "DisplayName": "Point / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "point.y",
        "EnumDisplayNames": null,
        "StableId": "point.y"
      },
      {
        "Name": "BoundingBox",
        "DisplayName": "Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box",
        "EnumDisplayNames": null,
        "StableId": "bounding_box"
      },
      {
        "Name": "BoundingBox.X",
        "DisplayName": "Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.x"
      },
      {
        "Name": "BoundingBox.Y",
        "DisplayName": "Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.y"
      },
      {
        "Name": "BoundingBox.Width",
        "DisplayName": "Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.width"
      },
      {
        "Name": "BoundingBox.Height",
        "DisplayName": "Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.height"
      },
      {
        "Name": "BoundingBox.Left",
        "DisplayName": "Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.left"
      },
      {
        "Name": "BoundingBox.Top",
        "DisplayName": "Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.top"
      },
      {
        "Name": "BoundingBox.Right",
        "DisplayName": "Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.right"
      },
      {
        "Name": "BoundingBox.Bottom",
        "DisplayName": "Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.bottom"
      },
      {
        "Name": "BoundingBox.IsEmpty",
        "DisplayName": "Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.is_empty"
      },
      {
        "Name": "BoundingBox.Location",
        "DisplayName": "Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location"
      },
      {
        "Name": "BoundingBox.Location.X",
        "DisplayName": "Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.x"
      },
      {
        "Name": "BoundingBox.Location.Y",
        "DisplayName": "Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.location.y"
      },
      {
        "Name": "BoundingBox.Center",
        "DisplayName": "Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center"
      },
      {
        "Name": "BoundingBox.Center.X",
        "DisplayName": "Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.x"
      },
      {
        "Name": "BoundingBox.Center.Y",
        "DisplayName": "Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "bounding_box.center.y"
      },
      {
        "Name": "Confidence",
        "DisplayName": "Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "confidence",
        "EnumDisplayNames": null,
        "StableId": "confidence"
      },
      {
        "Name": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_is_fresh",
        "EnumDisplayNames": null,
        "StableId": "source_capture_is_fresh"
      },
      {
        "Name": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_capture_timestamp_utc",
        "EnumDisplayNames": null,
        "StableId": "source_capture_timestamp_utc"
      },
      {
        "Name": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_version",
        "EnumDisplayNames": null,
        "StableId": "source_frame_version"
      },
      {
        "Name": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "source_frame_timestamp",
        "EnumDisplayNames": null,
        "StableId": "source_frame_timestamp"
      },
      {
        "Name": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": "{X=10,Y=20,Width=300,Height=200}",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi",
        "EnumDisplayNames": null,
        "StableId": "applied_roi"
      },
      {
        "Name": "AppliedRoi.X",
        "DisplayName": "Applied Roi / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.x"
      },
      {
        "Name": "AppliedRoi.Y",
        "DisplayName": "Applied Roi / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.y"
      },
      {
        "Name": "AppliedRoi.Width",
        "DisplayName": "Applied Roi / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.width",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.width"
      },
      {
        "Name": "AppliedRoi.Height",
        "DisplayName": "Applied Roi / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.height",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.height"
      },
      {
        "Name": "AppliedRoi.Left",
        "DisplayName": "Applied Roi / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.left",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.left"
      },
      {
        "Name": "AppliedRoi.Top",
        "DisplayName": "Applied Roi / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.top",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.top"
      },
      {
        "Name": "AppliedRoi.Right",
        "DisplayName": "Applied Roi / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.right",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.right"
      },
      {
        "Name": "AppliedRoi.Bottom",
        "DisplayName": "Applied Roi / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.bottom",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.bottom"
      },
      {
        "Name": "AppliedRoi.IsEmpty",
        "DisplayName": "Applied Roi / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.is_empty",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.is_empty"
      },
      {
        "Name": "AppliedRoi.Location",
        "DisplayName": "Applied Roi / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location"
      },
      {
        "Name": "AppliedRoi.Location.X",
        "DisplayName": "Applied Roi / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.x"
      },
      {
        "Name": "AppliedRoi.Location.Y",
        "DisplayName": "Applied Roi / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.location.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.location.y"
      },
      {
        "Name": "AppliedRoi.Center",
        "DisplayName": "Applied Roi / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center"
      },
      {
        "Name": "AppliedRoi.Center.X",
        "DisplayName": "Applied Roi / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.x",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.x"
      },
      {
        "Name": "AppliedRoi.Center.Y",
        "DisplayName": "Applied Roi / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "applied_roi.center.y",
        "EnumDisplayNames": null,
        "StableId": "applied_roi.center.y"
      },
      {
        "Name": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "used_dynamic_roi",
        "EnumDisplayNames": null,
        "StableId": "used_dynamic_roi"
      },
      {
        "Name": "AllDetections",
        "DisplayName": "All Detections",
        "DataType": "Detection",
        "Description": "Detection",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections",
        "EnumDisplayNames": null,
        "StableId": "all_detections"
      },
      {
        "Name": "AllDetections.Count",
        "DisplayName": "All Detections / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.count",
        "EnumDisplayNames": null,
        "StableId": "all_detections.count"
      },
      {
        "Name": "AllDetections[].Center",
        "DisplayName": "All Detections[] / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center"
      },
      {
        "Name": "AllDetections[].Center.X",
        "DisplayName": "All Detections[] / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.x"
      },
      {
        "Name": "AllDetections[].Center.Y",
        "DisplayName": "All Detections[] / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.center.y"
      },
      {
        "Name": "AllDetections[].BoundingBox",
        "DisplayName": "All Detections[] / Bounding Box",
        "DataType": "Rectangle",
        "Description": "Rectangle, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box"
      },
      {
        "Name": "AllDetections[].BoundingBox.X",
        "DisplayName": "All Detections[] / Bounding Box / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Y",
        "DisplayName": "All Detections[] / Bounding Box / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Width",
        "DisplayName": "All Detections[] / Bounding Box / Width",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.width",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.width"
      },
      {
        "Name": "AllDetections[].BoundingBox.Height",
        "DisplayName": "All Detections[] / Bounding Box / Height",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.height",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.height"
      },
      {
        "Name": "AllDetections[].BoundingBox.Left",
        "DisplayName": "All Detections[] / Bounding Box / Left",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.left",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.left"
      },
      {
        "Name": "AllDetections[].BoundingBox.Top",
        "DisplayName": "All Detections[] / Bounding Box / Top",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.top",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.top"
      },
      {
        "Name": "AllDetections[].BoundingBox.Right",
        "DisplayName": "All Detections[] / Bounding Box / Right",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.right",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.right"
      },
      {
        "Name": "AllDetections[].BoundingBox.Bottom",
        "DisplayName": "All Detections[] / Bounding Box / Bottom",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.bottom",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.bottom"
      },
      {
        "Name": "AllDetections[].BoundingBox.IsEmpty",
        "DisplayName": "All Detections[] / Bounding Box / Is Empty",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.is_empty",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.is_empty"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location",
        "DisplayName": "All Detections[] / Bounding Box / Location",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.X",
        "DisplayName": "All Detections[] / Bounding Box / Location / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Location.Y",
        "DisplayName": "All Detections[] / Bounding Box / Location / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.location.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.location.y"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center",
        "DisplayName": "All Detections[] / Bounding Box / Center",
        "DataType": "Point",
        "Description": "Point",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.X",
        "DisplayName": "All Detections[] / Bounding Box / Center / X",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.x",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.x"
      },
      {
        "Name": "AllDetections[].BoundingBox.Center.Y",
        "DisplayName": "All Detections[] / Bounding Box / Center / Y",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.bounding_box.center.y",
        "EnumDisplayNames": null,
        "StableId": "all_detections.bounding_box.center.y"
      },
      {
        "Name": "AllDetections[].Confidence",
        "DisplayName": "All Detections[] / Confidence",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "all_detections.confidence",
        "EnumDisplayNames": null,
        "StableId": "all_detections.confidence"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Found",
        "DisplayName": "Found",
        "Property": {
          "Name": "Found",
          "DisplayName": "Found",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "found",
          "EnumDisplayNames": null,
          "StableId": "found"
        },
        "Children": []
      },
      {
        "Segment": "Point",
        "DisplayName": "Point",
        "Property": {
          "Name": "Point",
          "DisplayName": "Point",
          "DataType": "Point",
          "Description": "Point, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "point",
          "EnumDisplayNames": null,
          "StableId": "point"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "Point.X",
              "DisplayName": "Point / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.x",
              "EnumDisplayNames": null,
              "StableId": "point.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "Point.Y",
              "DisplayName": "Point / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "point.y",
              "EnumDisplayNames": null,
              "StableId": "point.y"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "BoundingBox",
        "DisplayName": "Bounding Box",
        "Property": {
          "Name": "BoundingBox",
          "DisplayName": "Bounding Box",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "bounding_box",
          "EnumDisplayNames": null,
          "StableId": "bounding_box"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "BoundingBox.X",
              "DisplayName": "Bounding Box / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.x",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "BoundingBox.Y",
              "DisplayName": "Bounding Box / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.y",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "BoundingBox.Width",
              "DisplayName": "Bounding Box / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.width",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "BoundingBox.Height",
              "DisplayName": "Bounding Box / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.height",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "BoundingBox.Left",
              "DisplayName": "Bounding Box / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.left",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "BoundingBox.Top",
              "DisplayName": "Bounding Box / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.top",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "BoundingBox.Right",
              "DisplayName": "Bounding Box / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.right",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "BoundingBox.Bottom",
              "DisplayName": "Bounding Box / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.bottom",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "BoundingBox.IsEmpty",
              "DisplayName": "Bounding Box / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.is_empty",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "BoundingBox.Location",
              "DisplayName": "Bounding Box / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.location",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Location.X",
                  "DisplayName": "Bounding Box / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Location.Y",
                  "DisplayName": "Bounding Box / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "BoundingBox.Center",
              "DisplayName": "Bounding Box / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "bounding_box.center",
              "EnumDisplayNames": null,
              "StableId": "bounding_box.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "BoundingBox.Center.X",
                  "DisplayName": "Bounding Box / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "BoundingBox.Center.Y",
                  "DisplayName": "Bounding Box / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "bounding_box.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "bounding_box.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "Confidence",
        "DisplayName": "Confidence",
        "Property": {
          "Name": "Confidence",
          "DisplayName": "Confidence",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "confidence",
          "EnumDisplayNames": null,
          "StableId": "confidence"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureIsFresh",
        "DisplayName": "Source Capture Is Fresh",
        "Property": {
          "Name": "SourceCaptureIsFresh",
          "DisplayName": "Source Capture Is Fresh",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_is_fresh",
          "EnumDisplayNames": null,
          "StableId": "source_capture_is_fresh"
        },
        "Children": []
      },
      {
        "Segment": "SourceCaptureTimestampUtc",
        "DisplayName": "Source Capture Timestamp Utc",
        "Property": {
          "Name": "SourceCaptureTimestampUtc",
          "DisplayName": "Source Capture Timestamp Utc",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_capture_timestamp_utc",
          "EnumDisplayNames": null,
          "StableId": "source_capture_timestamp_utc"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameVersion",
        "DisplayName": "Source Frame Version",
        "Property": {
          "Name": "SourceFrameVersion",
          "DisplayName": "Source Frame Version",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_version",
          "EnumDisplayNames": null,
          "StableId": "source_frame_version"
        },
        "Children": []
      },
      {
        "Segment": "SourceFrameTimestamp",
        "DisplayName": "Source Frame Timestamp",
        "Property": {
          "Name": "SourceFrameTimestamp",
          "DisplayName": "Source Frame Timestamp",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "source_frame_timestamp",
          "EnumDisplayNames": null,
          "StableId": "source_frame_timestamp"
        },
        "Children": []
      },
      {
        "Segment": "AppliedRoi",
        "DisplayName": "Applied Roi",
        "Property": {
          "Name": "AppliedRoi",
          "DisplayName": "Applied Roi",
          "DataType": "Rectangle",
          "Description": "Rectangle, kann leer sein",
          "IsNullable": true,
          "Example": "{X=10,Y=20,Width=300,Height=200}",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "applied_roi",
          "EnumDisplayNames": null,
          "StableId": "applied_roi"
        },
        "Children": [
          {
            "Segment": "X",
            "DisplayName": "X",
            "Property": {
              "Name": "AppliedRoi.X",
              "DisplayName": "Applied Roi / X",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.x",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.x"
            },
            "Children": []
          },
          {
            "Segment": "Y",
            "DisplayName": "Y",
            "Property": {
              "Name": "AppliedRoi.Y",
              "DisplayName": "Applied Roi / Y",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.y",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.y"
            },
            "Children": []
          },
          {
            "Segment": "Width",
            "DisplayName": "Width",
            "Property": {
              "Name": "AppliedRoi.Width",
              "DisplayName": "Applied Roi / Width",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.width",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.width"
            },
            "Children": []
          },
          {
            "Segment": "Height",
            "DisplayName": "Height",
            "Property": {
              "Name": "AppliedRoi.Height",
              "DisplayName": "Applied Roi / Height",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.height",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.height"
            },
            "Children": []
          },
          {
            "Segment": "Left",
            "DisplayName": "Left",
            "Property": {
              "Name": "AppliedRoi.Left",
              "DisplayName": "Applied Roi / Left",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.left",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.left"
            },
            "Children": []
          },
          {
            "Segment": "Top",
            "DisplayName": "Top",
            "Property": {
              "Name": "AppliedRoi.Top",
              "DisplayName": "Applied Roi / Top",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.top",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.top"
            },
            "Children": []
          },
          {
            "Segment": "Right",
            "DisplayName": "Right",
            "Property": {
              "Name": "AppliedRoi.Right",
              "DisplayName": "Applied Roi / Right",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.right",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.right"
            },
            "Children": []
          },
          {
            "Segment": "Bottom",
            "DisplayName": "Bottom",
            "Property": {
              "Name": "AppliedRoi.Bottom",
              "DisplayName": "Applied Roi / Bottom",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.bottom",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.bottom"
            },
            "Children": []
          },
          {
            "Segment": "IsEmpty",
            "DisplayName": "Is Empty",
            "Property": {
              "Name": "AppliedRoi.IsEmpty",
              "DisplayName": "Applied Roi / Is Empty",
              "DataType": "Boolean",
              "Description": "Boolean",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.is_empty",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.is_empty"
            },
            "Children": []
          },
          {
            "Segment": "Location",
            "DisplayName": "Location",
            "Property": {
              "Name": "AppliedRoi.Location",
              "DisplayName": "Applied Roi / Location",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.location",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.location"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Location.X",
                  "DisplayName": "Applied Roi / Location / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Location.Y",
                  "DisplayName": "Applied Roi / Location / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.location.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.location.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AppliedRoi.Center",
              "DisplayName": "Applied Roi / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "OptionalSingle",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "applied_roi.center",
              "EnumDisplayNames": null,
              "StableId": "applied_roi.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AppliedRoi.Center.X",
                  "DisplayName": "Applied Roi / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AppliedRoi.Center.Y",
                  "DisplayName": "Applied Roi / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "OptionalSingle",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "applied_roi.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "applied_roi.center.y"
                },
                "Children": []
              }
            ]
          }
        ]
      },
      {
        "Segment": "UsedDynamicRoi",
        "DisplayName": "Used Dynamic Roi",
        "Property": {
          "Name": "UsedDynamicRoi",
          "DisplayName": "Used Dynamic Roi",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "used_dynamic_roi",
          "EnumDisplayNames": null,
          "StableId": "used_dynamic_roi"
        },
        "Children": []
      },
      {
        "Segment": "AllDetections",
        "DisplayName": "All Detections",
        "Property": {
          "Name": "AllDetections",
          "DisplayName": "All Detections",
          "DataType": "Detection",
          "Description": "Detection",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "all_detections",
          "EnumDisplayNames": null,
          "StableId": "all_detections"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "AllDetections.Count",
              "DisplayName": "All Detections / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.count",
              "EnumDisplayNames": null,
              "StableId": "all_detections.count"
            },
            "Children": []
          },
          {
            "Segment": "Center",
            "DisplayName": "Center",
            "Property": {
              "Name": "AllDetections[].Center",
              "DisplayName": "All Detections[] / Center",
              "DataType": "Point",
              "Description": "Point",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.center",
              "EnumDisplayNames": null,
              "StableId": "all_detections.center"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].Center.X",
                  "DisplayName": "All Detections[] / Center / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].Center.Y",
                  "DisplayName": "All Detections[] / Center / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.center.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.center.y"
                },
                "Children": []
              }
            ]
          },
          {
            "Segment": "BoundingBox",
            "DisplayName": "Bounding Box",
            "Property": {
              "Name": "AllDetections[].BoundingBox",
              "DisplayName": "All Detections[] / Bounding Box",
              "DataType": "Rectangle",
              "Description": "Rectangle, kann leer sein",
              "IsNullable": true,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.bounding_box",
              "EnumDisplayNames": null,
              "StableId": "all_detections.bounding_box"
            },
            "Children": [
              {
                "Segment": "X",
                "DisplayName": "X",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.X",
                  "DisplayName": "All Detections[] / Bounding Box / X",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.x",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.x"
                },
                "Children": []
              },
              {
                "Segment": "Y",
                "DisplayName": "Y",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Y",
                  "DisplayName": "All Detections[] / Bounding Box / Y",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.y",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.y"
                },
                "Children": []
              },
              {
                "Segment": "Width",
                "DisplayName": "Width",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Width",
                  "DisplayName": "All Detections[] / Bounding Box / Width",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.width",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.width"
                },
                "Children": []
              },
              {
                "Segment": "Height",
                "DisplayName": "Height",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Height",
                  "DisplayName": "All Detections[] / Bounding Box / Height",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.height",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.height"
                },
                "Children": []
              },
              {
                "Segment": "Left",
                "DisplayName": "Left",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Left",
                  "DisplayName": "All Detections[] / Bounding Box / Left",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.left",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.left"
                },
                "Children": []
              },
              {
                "Segment": "Top",
                "DisplayName": "Top",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Top",
                  "DisplayName": "All Detections[] / Bounding Box / Top",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.top",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.top"
                },
                "Children": []
              },
              {
                "Segment": "Right",
                "DisplayName": "Right",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Right",
                  "DisplayName": "All Detections[] / Bounding Box / Right",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.right",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.right"
                },
                "Children": []
              },
              {
                "Segment": "Bottom",
                "DisplayName": "Bottom",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Bottom",
                  "DisplayName": "All Detections[] / Bounding Box / Bottom",
                  "DataType": "Integer",
                  "Description": "Integer",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.bottom",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.bottom"
                },
                "Children": []
              },
              {
                "Segment": "IsEmpty",
                "DisplayName": "Is Empty",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.IsEmpty",
                  "DisplayName": "All Detections[] / Bounding Box / Is Empty",
                  "DataType": "Boolean",
                  "Description": "Boolean",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.is_empty",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.is_empty"
                },
                "Children": []
              },
              {
                "Segment": "Location",
                "DisplayName": "Location",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Location",
                  "DisplayName": "All Detections[] / Bounding Box / Location",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.location",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.location"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.X",
                      "DisplayName": "All Detections[] / Bounding Box / Location / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Location.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Location / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.location.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.location.y"
                    },
                    "Children": []
                  }
                ]
              },
              {
                "Segment": "Center",
                "DisplayName": "Center",
                "Property": {
                  "Name": "AllDetections[].BoundingBox.Center",
                  "DisplayName": "All Detections[] / Bounding Box / Center",
                  "DataType": "Point",
                  "Description": "Point",
                  "IsNullable": false,
                  "Example": null,
                  "Cardinality": "Collection",
                  "EnumTypeName": null,
                  "EnumValues": null,
                  "Id": "all_detections.bounding_box.center",
                  "EnumDisplayNames": null,
                  "StableId": "all_detections.bounding_box.center"
                },
                "Children": [
                  {
                    "Segment": "X",
                    "DisplayName": "X",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.X",
                      "DisplayName": "All Detections[] / Bounding Box / Center / X",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.x",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.x"
                    },
                    "Children": []
                  },
                  {
                    "Segment": "Y",
                    "DisplayName": "Y",
                    "Property": {
                      "Name": "AllDetections[].BoundingBox.Center.Y",
                      "DisplayName": "All Detections[] / Bounding Box / Center / Y",
                      "DataType": "Integer",
                      "Description": "Integer",
                      "IsNullable": false,
                      "Example": null,
                      "Cardinality": "Collection",
                      "EnumTypeName": null,
                      "EnumValues": null,
                      "Id": "all_detections.bounding_box.center.y",
                      "EnumDisplayNames": null,
                      "StableId": "all_detections.bounding_box.center.y"
                    },
                    "Children": []
                  }
                ]
              }
            ]
          },
          {
            "Segment": "Confidence",
            "DisplayName": "Confidence",
            "Property": {
              "Name": "AllDetections[].Confidence",
              "DisplayName": "All Detections[] / Confidence",
              "DataType": "Number",
              "Description": "Number",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Collection",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "all_detections.confidence",
              "EnumDisplayNames": null,
              "StableId": "all_detections.confidence"
            },
            "Children": []
          }
        ]
      }
    ]
  }
}
```

## Werte und Ergebnisse: audio.default_input

ID: audio.default_input
Website: /doku/werte/audio.default_input/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.default_input im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.device_name

Name eines auf dem Zielrechner vorhandenen Audiogeräts. Die dynamische Auswahl des Editors berücksichtigt Ausgabe- beziehungsweise Eingabegeräte.

### purpose

Wählt ein vorhandenes Standard-Mikrofon über dessen Gerätenamen. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.default_input",
  "name": "audio.default_input",
  "fields": [
    {
      "id": "device_name",
      "name": "Mikrofon",
      "type": "Text",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: audio.default_output

ID: audio.default_output
Website: /doku/werte/audio.default_output/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.default_output im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.device_name

Name eines auf dem Zielrechner vorhandenen Audiogeräts. Die dynamische Auswahl des Editors berücksichtigt Ausgabe- beziehungsweise Eingabegeräte.

### purpose

Wählt ein vorhandenes Standard-Ausgabegerät über dessen Gerätenamen. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.default_output",
  "name": "audio.default_output",
  "fields": [
    {
      "id": "device_name",
      "name": "Ausgabegerät",
      "type": "Text",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogerät hinzugefügt

ID: audio.device.added
Website: /doku/werte/audio.device.added/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.added als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Audiogerät hinzugefügt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.added",
  "name": "Audiogerät hinzugefügt",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogerät geändert

ID: audio.device.changed
Website: /doku/werte/audio.device.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Audiogerät geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.changed",
  "name": "Audiogerät geändert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogerät verbunden

ID: audio.device.connected
Website: /doku/werte/audio.device.connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Audiogerät verbunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.connected",
  "name": "Audiogerät verbunden",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Standard-Audiogerät geändert

ID: audio.device.default_changed
Website: /doku/werte/audio.device.default_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.default_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Standard-Audiogerät geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.default_changed",
  "name": "Standard-Audiogerät geändert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogerät getrennt

ID: audio.device.disconnected
Website: /doku/werte/audio.device.disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Audiogerät getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.disconnected",
  "name": "Audiogerät getrennt",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogeräteeigenschaft geändert

ID: audio.device.property_changed
Website: /doku/werte/audio.device.property_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.property_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Audiogeräteeigenschaft geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.property_changed",
  "name": "Audiogeräteeigenschaft geändert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogerät entfernt

ID: audio.device.removed
Website: /doku/werte/audio.device.removed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.removed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Audiogerät entfernt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.removed",
  "name": "Audiogerät entfernt",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogerätestatus geändert

ID: audio.device.state_changed
Website: /doku/werte/audio.device.state_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.device.state_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Audiogerätestatus geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.device.state_changed",
  "name": "Audiogerätestatus geändert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Audiogeräte

ID: audio.devices
Website: /doku/werte/audio.devices/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.devices im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Audiogeräte. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.devices",
  "name": "Audiogeräte",
  "fields": [],
  "result": {
    "TypeName": "AudioDevicesQueryResult",
    "DisplayName": "AudioDevicesQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: audio.master_volume

ID: audio.master_volume
Website: /doku/werte/audio.master_volume/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.master_volume im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.value

Neuer Hauptlautstärke-Wert als Prozentzahl von 0 bis 100.

### purpose

Ändert die Hauptlautstärke der Audioausgabe; value ist ein Prozentwert. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.master_volume",
  "name": "audio.master_volume",
  "fields": [
    {
      "id": "value",
      "name": "Lautstärke (0–100)",
      "type": "Integer",
      "Required": true,
      "defaultValue": "50",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: audio.mute

ID: audio.mute
Website: /doku/werte/audio.mute/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.mute im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.state

Gewünschte Stummschaltung: true aktiviert sie, false hebt sie auf.

### field.state.option.off

Den angegebenen Schalter ausschalten.

### field.state.option.on

Den angegebenen Schalter einschalten.

### field.state.option.toggle

Den aktuellen Schalterzustand umkehren.

### purpose

Schaltet die Audioausgabe über state stumm oder hebt die Stummschaltung auf. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.mute",
  "name": "audio.mute",
  "fields": [
    {
      "id": "state",
      "name": "Stummschaltung",
      "type": "Enum",
      "Required": true,
      "defaultValue": "on",
      "options": [
        "on",
        "off",
        "toggle"
      ]
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Lautstärke und Stummschaltung

ID: audio.volume
Website: /doku/werte/audio.volume/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.volume im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Lautstärke und Stummschaltung. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.device_exists

Ob das gefilterte Hardwaregerät in der aktuellen Abfrage vorhanden ist. Einzelwert dieses Ergebnisses.

### result.device_id

Vom System ermittelte Geräte-ID; sie ist kein frei gewählter Anzeigename. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_muted

Ob die Audioausgabe stummgeschaltet ist. Einzelwert dieses Ergebnisses.

### result.on_off_state

Ein-/Aus-Zustand der entsprechenden Gerätefunktion gemäß Ergebnisvertrag. Einzelwert dieses Ergebnisses.

### result.on_off_state.option.Off

Der abgefragte Schalter ist ausgeschaltet.

### result.on_off_state.option.On

Der abgefragte Schalter ist eingeschaltet.

### result.on_off_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.volume_percentage

Aktuelle Lautstärke als Prozentwert von 0 bis 100; dies ist anders als Erkennungskonfidenzen bereits eine Prozentskala. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.volume",
  "name": "Lautstärke und Stummschaltung",
  "fields": [],
  "result": {
    "TypeName": "AudioVolumeQueryResult",
    "DisplayName": "AudioVolumeQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "device_exists",
        "EnumDisplayNames": null,
        "StableId": "device_exists"
      },
      {
        "Name": "IsMuted",
        "DisplayName": "Is Muted",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_muted",
        "EnumDisplayNames": null,
        "StableId": "is_muted"
      },
      {
        "Name": "Percentage",
        "DisplayName": "Percentage",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "volume_percentage",
        "EnumDisplayNames": null,
        "StableId": "volume_percentage"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "device_id",
        "EnumDisplayNames": null,
        "StableId": "device_id"
      },
      {
        "Name": "OnOffState",
        "DisplayName": "On Off State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
        "EnumValues": [
          "Unknown",
          "Off",
          "On"
        ],
        "Id": "on_off_state",
        "EnumDisplayNames": null,
        "StableId": "on_off_state"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "device_exists",
          "EnumDisplayNames": null,
          "StableId": "device_exists"
        },
        "Children": []
      },
      {
        "Segment": "IsMuted",
        "DisplayName": "Is Muted",
        "Property": {
          "Name": "IsMuted",
          "DisplayName": "Is Muted",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_muted",
          "EnumDisplayNames": null,
          "StableId": "is_muted"
        },
        "Children": []
      },
      {
        "Segment": "Percentage",
        "DisplayName": "Percentage",
        "Property": {
          "Name": "Percentage",
          "DisplayName": "Percentage",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "volume_percentage",
          "EnumDisplayNames": null,
          "StableId": "volume_percentage"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "device_id",
          "EnumDisplayNames": null,
          "StableId": "device_id"
        },
        "Children": []
      },
      {
        "Segment": "OnOffState",
        "DisplayName": "On Off State",
        "Property": {
          "Name": "OnOffState",
          "DisplayName": "On Off State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
          "EnumValues": [
            "Unknown",
            "Off",
            "On"
          ],
          "Id": "on_off_state",
          "EnumDisplayNames": null,
          "StableId": "on_off_state"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Lautstärke geändert

ID: audio.volume.changed
Website: /doku/werte/audio.volume.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.volume.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Lautstärke geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.volume.changed",
  "name": "Lautstärke geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Lautstärke geändert

ID: audio.volume.level_changed
Website: /doku/werte/audio.volume.level_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.volume.level_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Lautstärke geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.volume.level_changed",
  "name": "Lautstärke geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Audio stummgeschaltet

ID: audio.volume.muted
Website: /doku/werte/audio.volume.muted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.volume.muted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Audio stummgeschaltet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.volume.muted",
  "name": "Audio stummgeschaltet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Stummschaltung aufgehoben

ID: audio.volume.unmuted
Website: /doku/werte/audio.volume.unmuted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle audio.volume.unmuted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Stummschaltung aufgehoben. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "audio.volume.unmuted",
  "name": "Stummschaltung aufgehoben",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bluetooth-Geräte

ID: bluetooth.devices
Website: /doku/werte/bluetooth.devices/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle bluetooth.devices im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Zustandsabfrage: Bluetooth-Geräte. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "bluetooth.devices",
  "name": "Bluetooth-Geräte",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": {
    "TypeName": "DeviceCollectionQueryResult",
    "DisplayName": "DeviceCollectionQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Bluetooth-Geräteliste geändert

ID: bluetooth.state.changed
Website: /doku/werte/bluetooth.state.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle bluetooth.state.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Bluetooth-Geräteliste geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "bluetooth.state.changed",
  "name": "Bluetooth-Geräteliste geändert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Zwischenablage geändert

ID: clipboard.changed
Website: /doku/werte/clipboard.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle clipboard.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Zwischenablage geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "clipboard.changed",
  "name": "Zwischenablage geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Zwischenablage geleert

ID: clipboard.cleared
Website: /doku/werte/clipboard.cleared/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle clipboard.cleared als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Zwischenablage geleert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "clipboard.cleared",
  "name": "Zwischenablage geleert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Zwischenablageninhalt

ID: clipboard.content
Website: /doku/werte/clipboard.content/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle clipboard.content im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Zwischenablageninhalt. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "clipboard.content",
  "name": "Zwischenablageninhalt",
  "fields": [],
  "result": {
    "TypeName": "ClipboardContentQueryResult",
    "DisplayName": "ClipboardContentQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Zwischenablageninhalt geändert

ID: clipboard.content_changed
Website: /doku/werte/clipboard.content_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle clipboard.content_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Zwischenablageninhalt geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "clipboard.content_changed",
  "name": "Zwischenablageninhalt geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Dateien in Zwischenablage

ID: clipboard.files_changed
Website: /doku/werte/clipboard.files_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle clipboard.files_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Dateien in Zwischenablage. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "clipboard.files_changed",
  "name": "Dateien in Zwischenablage",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bild in Zwischenablage

ID: clipboard.image_changed
Website: /doku/werte/clipboard.image_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle clipboard.image_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bild in Zwischenablage. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "clipboard.image_changed",
  "name": "Bild in Zwischenablage",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Text in Zwischenablage

ID: clipboard.text_changed
Website: /doku/werte/clipboard.text_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle clipboard.text_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Text in Zwischenablage. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "clipboard.text_changed",
  "name": "Text in Zwischenablage",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Hardwaregeräte

ID: device.hardware
Website: /doku/werte/device.hardware/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.hardware im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Zustandsabfrage: Hardwaregeräte. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.hardware",
  "name": "Hardwaregeräte",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": {
    "TypeName": "DeviceCollectionQueryResult",
    "DisplayName": "DeviceCollectionQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Hardwaregerät geändert

ID: device.hardware.changed
Website: /doku/werte/device.hardware.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.hardware.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Hardwaregerät geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.hardware.changed",
  "name": "Hardwaregerät geändert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Hardwaregerät verbunden

ID: device.hardware.connected
Website: /doku/werte/device.hardware.connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.hardware.connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Hardwaregerät verbunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.hardware.connected",
  "name": "Hardwaregerät verbunden",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Hardwaregerät getrennt

ID: device.hardware.disconnected
Website: /doku/werte/device.hardware.disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.hardware.disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Hardwaregerät getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.hardware.disconnected",
  "name": "Hardwaregerät getrennt",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Hardwarekonfiguration aktualisiert

ID: device.hardware.updated
Website: /doku/werte/device.hardware.updated/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.hardware.updated als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: Hardwarekonfiguration aktualisiert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.hardware.updated",
  "name": "Hardwarekonfiguration aktualisiert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: USB-Geräte

ID: device.usb
Website: /doku/werte/device.usb/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.usb im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Zustandsabfrage: USB-Geräte. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.usb",
  "name": "USB-Geräte",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": {
    "TypeName": "DeviceCollectionQueryResult",
    "DisplayName": "DeviceCollectionQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: USB-Gerät geändert

ID: device.usb.changed
Website: /doku/werte/device.usb.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.usb.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: USB-Gerät geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.usb.changed",
  "name": "USB-Gerät geändert",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: USB-Gerät verbunden

ID: device.usb.connected
Website: /doku/werte/device.usb.connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.usb.connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: USB-Gerät verbunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.usb.connected",
  "name": "USB-Gerät verbunden",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: USB-Gerät getrennt

ID: device.usb.disconnected
Website: /doku/werte/device.usb.disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle device.usb.disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.filter_value

Optionaler Textfilter für die angebotene Geräteabfrage beziehungsweise Ereignisquelle. Seine konkrete Wirkung hängt vom Geräteprovider ab.

### purpose

Ereignis: USB-Gerät getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "device.usb.disconnected",
  "name": "USB-Gerät getrennt",
  "fields": [
    {
      "id": "filter_value",
      "name": "Filter",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Bildschirmkonfiguration geändert

ID: display.configuration.changed
Website: /doku/werte/display.configuration.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.configuration.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bildschirmkonfiguration geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.configuration.changed",
  "name": "Bildschirmkonfiguration geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bildschirm verbunden

ID: display.connected
Website: /doku/werte/display.connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bildschirm verbunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.connected",
  "name": "Bildschirm verbunden",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bildschirm getrennt

ID: display.disconnected
Website: /doku/werte/display.disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bildschirm getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.disconnected",
  "name": "Bildschirm getrennt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: display.mode

ID: display.mode
Website: /doku/werte/display.mode/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.mode im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.mode

Konkreter Betriebs-/Projektions- beziehungsweise Nicht-stören-Modus; exakt eine der für diese Funktion angebotenen Optionen verwenden.

### field.mode.option.duplicate

Bildschirme duplizieren.

### field.mode.option.extend

Desktop über Bildschirme erweitern.

### field.mode.option.external

Nur den externen Bildschirm verwenden.

### field.mode.option.internal

Nur den internen Bildschirm verwenden.

### purpose

Ändert den Bildschirm-Betriebsmodus auf eine vom Katalog angebotene Projektionsart. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.mode",
  "name": "display.mode",
  "fields": [
    {
      "id": "mode",
      "name": "Bildschirmmodus",
      "type": "Enum",
      "Required": true,
      "defaultValue": "extend",
      "options": [
        "extend",
        "duplicate",
        "internal",
        "external"
      ]
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Angeschlossene Monitore

ID: display.monitors
Website: /doku/werte/display.monitors/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.monitors im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Angeschlossene Monitore. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.monitors",
  "name": "Angeschlossene Monitore",
  "fields": [],
  "result": {
    "TypeName": "MonitorCollectionQueryResult",
    "DisplayName": "MonitorCollectionQueryResult",
    "Properties": [
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Bildschirmausrichtung geändert

ID: display.orientation_changed
Website: /doku/werte/display.orientation_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.orientation_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bildschirmausrichtung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.orientation_changed",
  "name": "Bildschirmausrichtung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: display.primary

ID: display.primary
Website: /doku/werte/display.primary/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.primary im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.display_name

Systemname eines vorhandenen Displays, etwa \\.\DISPLAY2, nicht ein frei formulierter Fenstertitel.

### purpose

Wählt den vorhandenen Bildschirm mit display_name als Hauptbildschirm. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.primary",
  "name": "display.primary",
  "fields": [
    {
      "id": "display_name",
      "name": "Hauptbildschirm",
      "type": "Text",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Hauptbildschirm geändert

ID: display.primary_changed
Website: /doku/werte/display.primary_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.primary_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Hauptbildschirm geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.primary_changed",
  "name": "Hauptbildschirm geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bildschirmauflösung geändert

ID: display.resolution_changed
Website: /doku/werte/display.resolution_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.resolution_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bildschirmauflösung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.resolution_changed",
  "name": "Bildschirmauflösung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bildschirmeinstellungen geändert

ID: display.settings.changed
Website: /doku/werte/display.settings.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle display.settings.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bildschirmeinstellungen geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "display.settings.changed",
  "name": "Bildschirmeinstellungen geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Datei oder Ordner geändert

ID: filesystem.changed
Website: /doku/werte/filesystem.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle filesystem.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.include_subdirectories

Bei Dateisystemereignissen auch Unterordner beobachten.

### field.path

Lokaler Datei-/Ordnerpfad beziehungsweise vorhandene Hintergrundbilddatei, entsprechend der Funktion.

### purpose

Ereignis: Datei oder Ordner geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "filesystem.changed",
  "name": "Datei oder Ordner geändert",
  "fields": [
    {
      "id": "path",
      "name": "Datei oder Ordner",
      "type": "FilePath",
      "Required": true,
      "defaultValue": null,
      "options": []
    },
    {
      "id": "include_subdirectories",
      "name": "Unterordner",
      "type": "Boolean",
      "Required": false,
      "defaultValue": "false",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Datei oder Ordner erstellt

ID: filesystem.created
Website: /doku/werte/filesystem.created/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle filesystem.created als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.include_subdirectories

Bei Dateisystemereignissen auch Unterordner beobachten.

### field.path

Lokaler Datei-/Ordnerpfad beziehungsweise vorhandene Hintergrundbilddatei, entsprechend der Funktion.

### purpose

Ereignis: Datei oder Ordner erstellt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "filesystem.created",
  "name": "Datei oder Ordner erstellt",
  "fields": [
    {
      "id": "path",
      "name": "Datei oder Ordner",
      "type": "FilePath",
      "Required": true,
      "defaultValue": null,
      "options": []
    },
    {
      "id": "include_subdirectories",
      "name": "Unterordner",
      "type": "Boolean",
      "Required": false,
      "defaultValue": "false",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Datei oder Ordner gelöscht

ID: filesystem.deleted
Website: /doku/werte/filesystem.deleted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle filesystem.deleted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.include_subdirectories

Bei Dateisystemereignissen auch Unterordner beobachten.

### field.path

Lokaler Datei-/Ordnerpfad beziehungsweise vorhandene Hintergrundbilddatei, entsprechend der Funktion.

### purpose

Ereignis: Datei oder Ordner gelöscht. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "filesystem.deleted",
  "name": "Datei oder Ordner gelöscht",
  "fields": [
    {
      "id": "path",
      "name": "Datei oder Ordner",
      "type": "FilePath",
      "Required": true,
      "defaultValue": null,
      "options": []
    },
    {
      "id": "include_subdirectories",
      "name": "Unterordner",
      "type": "Boolean",
      "Required": false,
      "defaultValue": "false",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Datei- oder Ordnerzustand

ID: filesystem.path
Website: /doku/werte/filesystem.path/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle filesystem.path im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### field.path

Lokaler Datei-/Ordnerpfad beziehungsweise vorhandene Hintergrundbilddatei, entsprechend der Funktion.

### purpose

Zustandsabfrage: Datei- oder Ordnerzustand. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.path

Pfad des abgefragten Dateisystemobjekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.value

Der von dieser Windows-Abfrage gelieferte fachliche Wert; die Typ- und Kardinalitätsspalten beschreiben seine Darstellung. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "filesystem.path",
  "name": "Datei- oder Ordnerzustand",
  "fields": [
    {
      "id": "path",
      "name": "Datei oder Ordner",
      "type": "FilePath",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": {
    "TypeName": "FileSystemPathQueryResult",
    "DisplayName": "FileSystemPathQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Path",
        "DisplayName": "Path",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "path",
        "EnumDisplayNames": null,
        "StableId": "path"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Value",
        "DisplayName": "Value",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "value",
        "EnumDisplayNames": null,
        "StableId": "value"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Path",
        "DisplayName": "Path",
        "Property": {
          "Name": "Path",
          "DisplayName": "Path",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "path",
          "EnumDisplayNames": null,
          "StableId": "path"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Value",
        "DisplayName": "Value",
        "Property": {
          "Name": "Value",
          "DisplayName": "Value",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "value",
          "EnumDisplayNames": null,
          "StableId": "value"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Datei oder Ordner umbenannt

ID: filesystem.renamed
Website: /doku/werte/filesystem.renamed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle filesystem.renamed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.include_subdirectories

Bei Dateisystemereignissen auch Unterordner beobachten.

### field.path

Lokaler Datei-/Ordnerpfad beziehungsweise vorhandene Hintergrundbilddatei, entsprechend der Funktion.

### purpose

Ereignis: Datei oder Ordner umbenannt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "filesystem.renamed",
  "name": "Datei oder Ordner umbenannt",
  "fields": [
    {
      "id": "path",
      "name": "Datei oder Ordner",
      "type": "FilePath",
      "Required": true,
      "defaultValue": null,
      "options": []
    },
    {
      "id": "include_subdirectories",
      "name": "Unterordner",
      "type": "Boolean",
      "Required": false,
      "defaultValue": "false",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Zeit seit letzter Eingabe

ID: input.idle
Website: /doku/werte/input.idle/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle input.idle im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Zeit seit letzter Eingabe. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.percentage

Aktueller Akkuladestand als Prozentwert, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.value

Der von dieser Windows-Abfrage gelieferte fachliche Wert; die Typ- und Kardinalitätsspalten beschreiben seine Darstellung. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "input.idle",
  "name": "Zeit seit letzter Eingabe",
  "fields": [],
  "result": {
    "TypeName": "InputIdleQueryResult",
    "DisplayName": "InputIdleQueryResult",
    "Properties": [
      {
        "Name": "IdleMilliseconds",
        "DisplayName": "Idle Milliseconds",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "value",
        "EnumDisplayNames": null,
        "StableId": "value"
      },
      {
        "Name": "IdleSeconds",
        "DisplayName": "Idle Seconds",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "percentage",
        "EnumDisplayNames": null,
        "StableId": "percentage"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IdleMilliseconds",
        "DisplayName": "Idle Milliseconds",
        "Property": {
          "Name": "IdleMilliseconds",
          "DisplayName": "Idle Milliseconds",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "value",
          "EnumDisplayNames": null,
          "StableId": "value"
        },
        "Children": []
      },
      {
        "Segment": "IdleSeconds",
        "DisplayName": "Idle Seconds",
        "Property": {
          "Name": "IdleSeconds",
          "DisplayName": "Idle Seconds",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "percentage",
          "EnumDisplayNames": null,
          "StableId": "percentage"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Leerlaufgrenze erreicht oder verlassen

ID: input.idle.changed
Website: /doku/werte/input.idle.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle input.idle.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.threshold_ms

Leerlaufgrenze in Millisekunden; 60000 entspricht einer Minute ohne Eingabe.

### purpose

Ereignis: Leerlaufgrenze erreicht oder verlassen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "input.idle.changed",
  "name": "Leerlaufgrenze erreicht oder verlassen",
  "fields": [
    {
      "id": "threshold_ms",
      "name": "Leerlaufgrenze (ms)",
      "type": "Duration",
      "Required": true,
      "defaultValue": "60000",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Leerlaufgrenze erreicht

ID: input.idle.entered
Website: /doku/werte/input.idle.entered/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle input.idle.entered als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.threshold_ms

Leerlaufgrenze in Millisekunden; 60000 entspricht einer Minute ohne Eingabe.

### purpose

Ereignis: Leerlaufgrenze erreicht. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "input.idle.entered",
  "name": "Leerlaufgrenze erreicht",
  "fields": [
    {
      "id": "threshold_ms",
      "name": "Leerlaufgrenze (ms)",
      "type": "Duration",
      "Required": true,
      "defaultValue": "60000",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Leerlauf beendet

ID: input.idle.left
Website: /doku/werte/input.idle.left/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle input.idle.left als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.threshold_ms

Leerlaufgrenze in Millisekunden; 60000 entspricht einer Minute ohne Eingabe.

### purpose

Ereignis: Leerlauf beendet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "input.idle.left",
  "name": "Leerlauf beendet",
  "fields": [
    {
      "id": "threshold_ms",
      "name": "Leerlaufgrenze (ms)",
      "type": "Duration",
      "Required": true,
      "defaultValue": "60000",
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Netzwerkadresse geändert

ID: network.address.changed
Website: /doku/werte/network.address.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.address.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Netzwerkadresse geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.address.changed",
  "name": "Netzwerkadresse geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Netzwerkverfügbarkeit geändert

ID: network.availability.changed
Website: /doku/werte/network.availability.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.availability.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Netzwerkverfügbarkeit geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.availability.changed",
  "name": "Netzwerkverfügbarkeit geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Netzwerk verfügbar

ID: network.connected
Website: /doku/werte/network.connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Netzwerk verfügbar. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.connected",
  "name": "Netzwerk verfügbar",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Aktuelle Netzwerkverbindung

ID: network.connectivity
Website: /doku/werte/network.connectivity/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.connectivity im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Aktuelle Netzwerkverbindung. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.connection_type

Art der ermittelten Netzwerkverbindung, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.connection_type.option.Ethernet

Kabelgebundene Ethernet-Verbindung.

### result.connection_type.option.Mobile

Mobilfunkverbindung.

### result.connection_type.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.connection_type.option.Virtual

Virtueller Netzwerkadapter beziehungsweise virtuelle Verbindung.

### result.connection_type.option.WiFi

Drahtlose WLAN-Verbindung.

### result.connectivity

Vom Netzwerkprovider gemeldete Verbindungsqualität beziehungsweise Konnektivität. Einzelwert dieses Ergebnisses.

### result.connectivity.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.connectivity.option.Internet

Windows meldet Internetkonnektivität.

### result.connectivity.option.LocalNetwork

Windows meldet lokale Netzwerkkonnektivität ohne belegten Internetzugang.

### result.connectivity.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.connectivity",
  "name": "Aktuelle Netzwerkverbindung",
  "fields": [],
  "result": {
    "TypeName": "NetworkConnectivityQueryResult",
    "DisplayName": "NetworkConnectivityQueryResult",
    "Properties": [
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Connectivity",
        "DisplayName": "Connectivity",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectivity",
        "EnumValues": [
          "Unknown",
          "Disconnected",
          "LocalNetwork",
          "Internet"
        ],
        "Id": "connectivity",
        "EnumDisplayNames": null,
        "StableId": "connectivity"
      },
      {
        "Name": "ConnectionType",
        "DisplayName": "Connection Type",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectionType",
        "EnumValues": [
          "Unknown",
          "Ethernet",
          "WiFi",
          "Mobile",
          "Virtual"
        ],
        "Id": "connection_type",
        "EnumDisplayNames": null,
        "StableId": "connection_type"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Connectivity",
        "DisplayName": "Connectivity",
        "Property": {
          "Name": "Connectivity",
          "DisplayName": "Connectivity",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectivity",
          "EnumValues": [
            "Unknown",
            "Disconnected",
            "LocalNetwork",
            "Internet"
          ],
          "Id": "connectivity",
          "EnumDisplayNames": null,
          "StableId": "connectivity"
        },
        "Children": []
      },
      {
        "Segment": "ConnectionType",
        "DisplayName": "Connection Type",
        "Property": {
          "Name": "ConnectionType",
          "DisplayName": "Connection Type",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsConnectionType",
          "EnumValues": [
            "Unknown",
            "Ethernet",
            "WiFi",
            "Mobile",
            "Virtual"
          ],
          "Id": "connection_type",
          "EnumDisplayNames": null,
          "StableId": "connection_type"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Netzwerk nicht verfügbar

ID: network.disconnected
Website: /doku/werte/network.disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Netzwerk nicht verfügbar. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.disconnected",
  "name": "Netzwerk nicht verfügbar",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: network.vpn_connection

ID: network.vpn_connection
Website: /doku/werte/network.vpn_connection/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.vpn_connection im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.action

connect verbindet das bestehende Profil/die Verbindung, disconnect trennt sie.

### field.action.option.connect

Mit dem angegebenen vorhandenen Profil verbinden.

### field.action.option.disconnect

Die angegebene Verbindung trennen.

### field.connection_name

Name einer bereits eingerichteten VPN-Verbindung.

### purpose

Verbindet oder trennt eine vorhandene VPN-Verbindung über connection_name. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.vpn_connection",
  "name": "network.vpn_connection",
  "fields": [
    {
      "id": "action",
      "name": "Aktion",
      "type": "Enum",
      "Required": true,
      "defaultValue": "connect",
      "options": [
        "connect",
        "disconnect"
      ]
    },
    {
      "id": "connection_name",
      "name": "VPN-Verbindung",
      "type": "Text",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: network.wifi_connection

ID: network.wifi_connection
Website: /doku/werte/network.wifi_connection/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi_connection im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.action

connect verbindet das bestehende Profil/die Verbindung, disconnect trennt sie.

### field.action.option.connect

Mit dem angegebenen vorhandenen Profil verbinden.

### field.action.option.disconnect

Die angegebene Verbindung trennen.

### field.profile

Name eines bereits vorhandenen WLAN-Profils. Die Funktion legt nicht automatisch ein neues Profil mit Zugangsdaten an.

### purpose

Verbindet ein bestehendes WLAN-Profil oder trennt die Verbindung entsprechend action. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi_connection",
  "name": "network.wifi_connection",
  "fields": [
    {
      "id": "action",
      "name": "Aktion",
      "type": "Enum",
      "Required": true,
      "defaultValue": "connect",
      "options": [
        "connect",
        "disconnect"
      ]
    },
    {
      "id": "profile",
      "name": "WLAN-Profil",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Schnittstelle hinzugefügt oder aktiviert

ID: network.wifi.adapter_added
Website: /doku/werte/network.wifi.adapter_added/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.adapter_added als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Schnittstelle hinzugefügt oder aktiviert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.adapter_added",
  "name": "WLAN-Schnittstelle hinzugefügt oder aktiviert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Schnittstelle entfernt oder deaktiviert

ID: network.wifi.adapter_removed
Website: /doku/werte/network.wifi.adapter_removed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.adapter_removed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Schnittstelle entfernt oder deaktiviert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.adapter_removed",
  "name": "WLAN-Schnittstelle entfernt oder deaktiviert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN zugeordnet

ID: network.wifi.associated
Website: /doku/werte/network.wifi.associated/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.associated als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN zugeordnet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.associated",
  "name": "WLAN zugeordnet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Zuordnung wird aufgebaut

ID: network.wifi.associating
Website: /doku/werte/network.wifi.associating/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.associating als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Zuordnung wird aufgebaut. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.associating",
  "name": "WLAN-Zuordnung wird aufgebaut",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN wird authentifiziert

ID: network.wifi.authenticating
Website: /doku/werte/network.wifi.authenticating/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.authenticating als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN wird authentifiziert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.authenticating",
  "name": "WLAN wird authentifiziert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Autokonfiguration deaktiviert

ID: network.wifi.autoconfig_disabled
Website: /doku/werte/network.wifi.autoconfig_disabled/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.autoconfig_disabled als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Autokonfiguration deaktiviert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.autoconfig_disabled",
  "name": "WLAN-Autokonfiguration deaktiviert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Autokonfiguration aktiviert

ID: network.wifi.autoconfig_enabled
Website: /doku/werte/network.wifi.autoconfig_enabled/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.autoconfig_enabled als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Autokonfiguration aktiviert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.autoconfig_enabled",
  "name": "WLAN-Autokonfiguration aktiviert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Ereignis

ID: network.wifi.changed
Website: /doku/werte/network.wifi.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Ereignis. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.changed",
  "name": "WLAN-Ereignis",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN verbunden

ID: network.wifi.connected
Website: /doku/werte/network.wifi.connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.ssid

Optionaler WLAN-Netzname zum Eingrenzen der dafür angebotenen WLAN-Ereignisse.

### purpose

Ereignis: WLAN verbunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.connected",
  "name": "WLAN verbunden",
  "fields": [
    {
      "id": "ssid",
      "name": "WLAN-Name (SSID)",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Verbindung wird aufgebaut

ID: network.wifi.connecting
Website: /doku/werte/network.wifi.connecting/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.connecting als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.ssid

Optionaler WLAN-Netzname zum Eingrenzen der dafür angebotenen WLAN-Ereignisse.

### purpose

Ereignis: WLAN-Verbindung wird aufgebaut. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.connecting",
  "name": "WLAN-Verbindung wird aufgebaut",
  "fields": [
    {
      "id": "ssid",
      "name": "WLAN-Name (SSID)",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Verbindung fehlgeschlagen

ID: network.wifi.connection_failed
Website: /doku/werte/network.wifi.connection_failed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.connection_failed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.ssid

Optionaler WLAN-Netzname zum Eingrenzen der dafür angebotenen WLAN-Ereignisse.

### purpose

Ereignis: WLAN-Verbindung fehlgeschlagen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.connection_failed",
  "name": "WLAN-Verbindung fehlgeschlagen",
  "fields": [
    {
      "id": "ssid",
      "name": "WLAN-Name (SSID)",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Verbindung getrennt

ID: network.wifi.disconnected
Website: /doku/werte/network.wifi.disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.ssid

Optionaler WLAN-Netzname zum Eingrenzen der dafür angebotenen WLAN-Ereignisse.

### purpose

Ereignis: WLAN-Verbindung getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.disconnected",
  "name": "WLAN-Verbindung getrennt",
  "fields": [
    {
      "id": "ssid",
      "name": "WLAN-Name (SSID)",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: WLAN wird getrennt

ID: network.wifi.disconnecting
Website: /doku/werte/network.wifi.disconnecting/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.disconnecting als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.ssid

Optionaler WLAN-Netzname zum Eingrenzen der dafür angebotenen WLAN-Ereignisse.

### purpose

Ereignis: WLAN wird getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.disconnecting",
  "name": "WLAN wird getrennt",
  "fields": [
    {
      "id": "ssid",
      "name": "WLAN-Name (SSID)",
      "type": "Text",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Netzwerk verfügbar

ID: network.wifi.network_available
Website: /doku/werte/network.wifi.network_available/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.network_available als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Netzwerk verfügbar. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.network_available",
  "name": "WLAN-Netzwerk verfügbar",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Netzwerk nicht verfügbar

ID: network.wifi.network_unavailable
Website: /doku/werte/network.wifi.network_unavailable/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.network_unavailable als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Netzwerk nicht verfügbar. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.network_unavailable",
  "name": "WLAN-Netzwerk nicht verfügbar",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Profil geändert

ID: network.wifi.profile_changed
Website: /doku/werte/network.wifi.profile_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.profile_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Profil geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.profile_changed",
  "name": "WLAN-Profil geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Funkstatus geändert

ID: network.wifi.radio_state_changed
Website: /doku/werte/network.wifi.radio_state_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.radio_state_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Funkstatus geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.radio_state_changed",
  "name": "WLAN-Funkstatus geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Roaming abgeschlossen

ID: network.wifi.roaming_completed
Website: /doku/werte/network.wifi.roaming_completed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.roaming_completed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Roaming abgeschlossen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.roaming_completed",
  "name": "WLAN-Roaming abgeschlossen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Roaming gestartet

ID: network.wifi.roaming_started
Website: /doku/werte/network.wifi.roaming_started/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.roaming_started als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Roaming gestartet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.roaming_started",
  "name": "WLAN-Roaming gestartet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Suche abgeschlossen

ID: network.wifi.scan_completed
Website: /doku/werte/network.wifi.scan_completed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.scan_completed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Suche abgeschlossen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.scan_completed",
  "name": "WLAN-Suche abgeschlossen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Suche fehlgeschlagen

ID: network.wifi.scan_failed
Website: /doku/werte/network.wifi.scan_failed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.scan_failed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Suche fehlgeschlagen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.scan_failed",
  "name": "WLAN-Suche fehlgeschlagen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: WLAN-Signalstärke geändert

ID: network.wifi.signal_quality_changed
Website: /doku/werte/network.wifi.signal_quality_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle network.wifi.signal_quality_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: WLAN-Signalstärke geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "network.wifi.signal_quality_changed",
  "name": "WLAN-Signalstärke geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: notifications.focus_mode

ID: notifications.focus_mode
Website: /doku/werte/notifications.focus_mode/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle notifications.focus_mode im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.mode

Konkreter Betriebs-/Projektions- beziehungsweise Nicht-stören-Modus; exakt eine der für diese Funktion angebotenen Optionen verwenden.

### field.mode.option.off

Den angegebenen Schalter ausschalten.

### field.mode.option.on

Den angegebenen Schalter einschalten.

### purpose

Ändert die unterstützte Nicht-stören-Einstellung mit mode=on oder off. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "notifications.focus_mode",
  "name": "notifications.focus_mode",
  "fields": [
    {
      "id": "mode",
      "name": "Nicht stören",
      "type": "Enum",
      "Required": true,
      "defaultValue": "off",
      "options": [
        "off",
        "on"
      ]
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: personalization.theme

ID: personalization.theme
Website: /doku/werte/personalization.theme/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle personalization.theme im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.theme

Gewünschte Windows-Theme-Option aus der angebotenen Liste.

### field.theme.option.dark

Windows-Farbmodus Dunkel auswählen.

### field.theme.option.light

Windows-Farbmodus Hell auswählen.

### purpose

Ändert die unterstützte Windows-Farb-/Theme-Einstellung entsprechend theme. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "personalization.theme",
  "name": "personalization.theme",
  "fields": [
    {
      "id": "theme",
      "name": "Darstellung",
      "type": "Enum",
      "Required": true,
      "defaultValue": "dark",
      "options": [
        "light",
        "dark"
      ]
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: personalization.wallpaper

ID: personalization.wallpaper
Website: /doku/werte/personalization.wallpaper/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle personalization.wallpaper im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.path

Lokaler Datei-/Ordnerpfad beziehungsweise vorhandene Hintergrundbilddatei, entsprechend der Funktion.

### purpose

Setzt die vorhandene Bilddatei aus path als Desktop-Hintergrund. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "personalization.wallpaper",
  "name": "personalization.wallpaper",
  "fields": [
    {
      "id": "path",
      "name": "Hintergrundbild",
      "type": "FilePath",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Netzteil angeschlossen

ID: power.ac_connected
Website: /doku/werte/power.ac_connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.ac_connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Netzteil angeschlossen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.ac_connected",
  "name": "Netzteil angeschlossen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Netzteil getrennt

ID: power.ac_disconnected
Website: /doku/werte/power.ac_disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.ac_disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Netzteil getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.ac_disconnected",
  "name": "Netzteil getrennt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Akkustand geändert

ID: power.battery_level_changed
Website: /doku/werte/power.battery_level_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.battery_level_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Akkustand geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.battery_level_changed",
  "name": "Akkustand geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Laden begonnen

ID: power.charging_started
Website: /doku/werte/power.charging_started/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.charging_started als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Laden begonnen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.charging_started",
  "name": "Laden begonnen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Laden beendet

ID: power.charging_stopped
Website: /doku/werte/power.charging_stopped/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.charging_stopped als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Laden beendet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.charging_stopped",
  "name": "Laden beendet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: power.display_timeout

ID: power.display_timeout
Website: /doku/werte/power.display_timeout/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.display_timeout im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.minutes

Zeit bis zur Energieaktion in Minuten. Die vom Katalog angegebenen Grenzen und die gewählte Energiequelle beachten.

### field.power_source

Energiequelle, für die die Einstellung gilt, gemäß den angebotenen Optionen.

### field.power_source.option.ac

Die Änderung gilt bei Netzstrom.

### field.power_source.option.both

Die Änderung gilt bei Netzstrom und Akkubetrieb.

### field.power_source.option.dc

Die Änderung gilt bei Akkubetrieb.

### purpose

Ändert die Bildschirm-Ausschaltzeit in Minuten für die angegebene Energiequelle. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.display_timeout",
  "name": "power.display_timeout",
  "fields": [
    {
      "id": "minutes",
      "name": "Bildschirm-Timeout (Minuten)",
      "type": "Integer",
      "Required": true,
      "defaultValue": "10",
      "options": []
    },
    {
      "id": "power_source",
      "name": "Stromquelle",
      "type": "Enum",
      "Required": true,
      "defaultValue": "both",
      "options": [
        "both",
        "ac",
        "dc"
      ]
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Energiemodus geändert

ID: power.mode.changed
Website: /doku/werte/power.mode.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.mode.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Energiemodus geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.mode.changed",
  "name": "Energiemodus geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Standby beendet

ID: power.resumed
Website: /doku/werte/power.resumed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.resumed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Standby beendet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.resumed",
  "name": "Standby beendet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: power.scheme

ID: power.scheme
Website: /doku/werte/power.scheme/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.scheme im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.scheme

Kennung eines vorhandenen Energiesparplans; keine beliebige Bezeichnung eines neuen Plans.

### field.scheme.option.balanced

Den vorhandenen ausgewogenen Energiesparplan aktivieren.

### field.scheme.option.high_performance

Den vorhandenen Hochleistungsplan aktivieren.

### field.scheme.option.power_saver

Den vorhandenen Energiesparplan aktivieren.

### purpose

Aktiviert den angegebenen vorhandenen Energiesparplan. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.scheme",
  "name": "power.scheme",
  "fields": [
    {
      "id": "scheme",
      "name": "Energieschema",
      "type": "Enum",
      "Required": true,
      "defaultValue": "balanced",
      "options": [
        "balanced",
        "high_performance",
        "power_saver"
      ]
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: power.sleep_timeout

ID: power.sleep_timeout
Website: /doku/werte/power.sleep_timeout/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.sleep_timeout im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.minutes

Zeit bis zur Energieaktion in Minuten. Die vom Katalog angegebenen Grenzen und die gewählte Energiequelle beachten.

### field.power_source

Energiequelle, für die die Einstellung gilt, gemäß den angebotenen Optionen.

### field.power_source.option.ac

Die Änderung gilt bei Netzstrom.

### field.power_source.option.both

Die Änderung gilt bei Netzstrom und Akkubetrieb.

### field.power_source.option.dc

Die Änderung gilt bei Akkubetrieb.

### purpose

Ändert die Standby-Zeit in Minuten für die angegebene Energiequelle. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.sleep_timeout",
  "name": "power.sleep_timeout",
  "fields": [
    {
      "id": "minutes",
      "name": "Standby-Timeout (Minuten)",
      "type": "Integer",
      "Required": true,
      "defaultValue": "30",
      "options": []
    },
    {
      "id": "power_source",
      "name": "Stromquelle",
      "type": "Enum",
      "Required": true,
      "defaultValue": "both",
      "options": [
        "both",
        "ac",
        "dc"
      ]
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Akku und Energiequelle

ID: power.status
Website: /doku/werte/power.status/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.status im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Akku und Energiequelle. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_charging

Ob das System ein Laden des Akkus meldet. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.percentage

Aktueller Akkuladestand als Prozentwert, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.power_source

Gemeldete Energiequelle, etwa Netzbetrieb oder Akkubetrieb. Einzelwert dieses Ergebnisses.

### result.power_source.option.Ac

Stromversorgung über Netzstrom.

### result.power_source.option.Battery

Stromversorgung über Akku.

### result.power_source.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.status",
  "name": "Akku und Energiequelle",
  "fields": [],
  "result": {
    "TypeName": "PowerStatusQueryResult",
    "DisplayName": "PowerStatusQueryResult",
    "Properties": [
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "IsCharging",
        "DisplayName": "Is Charging",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_charging",
        "EnumDisplayNames": null,
        "StableId": "is_charging"
      },
      {
        "Name": "Percentage",
        "DisplayName": "Percentage",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "percentage",
        "EnumDisplayNames": null,
        "StableId": "percentage"
      },
      {
        "Name": "PowerSource",
        "DisplayName": "Power Source",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsPowerSource",
        "EnumValues": [
          "Unknown",
          "Ac",
          "Battery"
        ],
        "Id": "power_source",
        "EnumDisplayNames": null,
        "StableId": "power_source"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "IsCharging",
        "DisplayName": "Is Charging",
        "Property": {
          "Name": "IsCharging",
          "DisplayName": "Is Charging",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_charging",
          "EnumDisplayNames": null,
          "StableId": "is_charging"
        },
        "Children": []
      },
      {
        "Segment": "Percentage",
        "DisplayName": "Percentage",
        "Property": {
          "Name": "Percentage",
          "DisplayName": "Percentage",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "percentage",
          "EnumDisplayNames": null,
          "StableId": "percentage"
        },
        "Children": []
      },
      {
        "Segment": "PowerSource",
        "DisplayName": "Power Source",
        "Property": {
          "Name": "PowerSource",
          "DisplayName": "Power Source",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsPowerSource",
          "EnumValues": [
            "Unknown",
            "Ac",
            "Battery"
          ],
          "Id": "power_source",
          "EnumDisplayNames": null,
          "StableId": "power_source"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Energiestatus geändert

ID: power.status.changed
Website: /doku/werte/power.status.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.status.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Energiestatus geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.status.changed",
  "name": "Energiestatus geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Standby gestartet

ID: power.suspended
Website: /doku/werte/power.suspended/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle power.suspended als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Standby gestartet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "power.suspended",
  "name": "Standby gestartet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Drucker hinzugefügt

ID: printer.added
Website: /doku/werte/printer.added/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.added als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Drucker hinzugefügt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.added",
  "name": "Drucker hinzugefügt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Druckerverbindung fehlgeschlagen

ID: printer.connection_failed
Website: /doku/werte/printer.connection_failed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.connection_failed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Druckerverbindung fehlgeschlagen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.connection_failed",
  "name": "Druckerverbindung fehlgeschlagen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: printer.default

ID: printer.default
Website: /doku/werte/printer.default/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.default im Step „Windows-Einstellung ändern“, wähle ein vorhandenes Systemziel und prüfe danach previous_value und applied_value.

### field.printer_name

Name eines auf diesem Rechner installierten Druckers.

### purpose

Setzt den installierten Drucker mit printer_name als Standarddrucker. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.default",
  "name": "printer.default",
  "fields": [
    {
      "id": "printer_name",
      "name": "Standarddrucker",
      "type": "Text",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Druckauftrag hinzugefügt

ID: printer.job.added
Website: /doku/werte/printer.job.added/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.job.added als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Druckauftrag hinzugefügt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.job.added",
  "name": "Druckauftrag hinzugefügt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Druckauftrag geändert

ID: printer.job.changed
Website: /doku/werte/printer.job.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.job.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Druckauftrag geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.job.changed",
  "name": "Druckauftrag geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Druckauftrag entfernt

ID: printer.job.deleted
Website: /doku/werte/printer.job.deleted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.job.deleted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Druckauftrag entfernt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.job.deleted",
  "name": "Druckauftrag entfernt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Druckerwarteschlange geändert

ID: printer.queue.changed
Website: /doku/werte/printer.queue.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.queue.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Druckerwarteschlange geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.queue.changed",
  "name": "Druckerwarteschlange geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Drucker entfernt

ID: printer.removed
Website: /doku/werte/printer.removed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.removed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Drucker entfernt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.removed",
  "name": "Drucker entfernt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Druckerstatus oder Einstellungen geändert

ID: printer.settings_changed
Website: /doku/werte/printer.settings_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.settings_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Druckerstatus oder Einstellungen geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.settings_changed",
  "name": "Druckerstatus oder Einstellungen geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Weiteres Druckerereignis

ID: printer.state.changed
Website: /doku/werte/printer.state.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.state.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Weiteres Druckerereignis. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.state.changed",
  "name": "Weiteres Druckerereignis",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Druckerstatus

ID: printer.status
Website: /doku/werte/printer.status/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle printer.status im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Druckerstatus. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.device_state

Vom Windows-Geräteprovider gemeldeter Gerätezustand. Einzelwert dieses Ergebnisses.

### result.device_state.option.Connected

Das Gerät beziehungsweise die Verbindung ist verbunden.

### result.device_state.option.Disabled

Das Gerät ist deaktiviert.

### result.device_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.device_state.option.Error

Fehlerbeobachtung; den tatsächlichen Laufabschluss zusätzlich über Outcome prüfen.

### result.device_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "printer.status",
  "name": "Druckerstatus",
  "fields": [],
  "result": {
    "TypeName": "PrinterStatusQueryResult",
    "DisplayName": "PrinterStatusQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "DeviceState",
        "DisplayName": "Device State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
        "EnumValues": [
          "Unknown",
          "Connected",
          "Disconnected",
          "Disabled",
          "Error"
        ],
        "Id": "device_state",
        "EnumDisplayNames": null,
        "StableId": "device_state"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "DeviceState",
        "DisplayName": "Device State",
        "Property": {
          "Name": "DeviceState",
          "DisplayName": "Device State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsDeviceState",
          "EnumValues": [
            "Unknown",
            "Connected",
            "Disconnected",
            "Disabled",
            "Error"
          ],
          "Id": "device_state",
          "EnumDisplayNames": null,
          "StableId": "device_state"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Prozess beendet

ID: process.exited
Website: /doku/werte/process.exited/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle process.exited als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.name

Prozessname (etwa notepad) beziehungsweise Laufwerksname (etwa C:), entsprechend der Windows-Funktion.

### purpose

Ereignis: Prozess beendet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "process.exited",
  "name": "Prozess beendet",
  "fields": [
    {
      "id": "name",
      "name": "Prozessname",
      "type": "ProcessName",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Läuft ein Prozess?

ID: process.running
Website: /doku/werte/process.running/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle process.running im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### field.name

Prozessname (etwa notepad) beziehungsweise Laufwerksname (etwa C:), entsprechend der Windows-Funktion.

### purpose

Zustandsabfrage: Läuft ein Prozess?. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.id

System-/Geräteidentität des jeweiligen Ergebnisobjekts. Ihre Lebensdauer und Form hängen von der abgefragten Windows-Funktion ab. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "process.running",
  "name": "Läuft ein Prozess?",
  "fields": [
    {
      "id": "name",
      "name": "Prozessname",
      "type": "ProcessName",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": {
    "TypeName": "ProcessRunningQueryResult",
    "DisplayName": "ProcessRunningQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "id",
        "EnumDisplayNames": null,
        "StableId": "id"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "id",
          "EnumDisplayNames": null,
          "StableId": "id"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Prozess gestartet

ID: process.started
Website: /doku/werte/process.started/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle process.started als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.name

Prozessname (etwa notepad) beziehungsweise Laufwerksname (etwa C:), entsprechend der Windows-Funktion.

### purpose

Ereignis: Prozess gestartet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "process.started",
  "name": "Prozess gestartet",
  "fields": [
    {
      "id": "name",
      "name": "Prozessname",
      "type": "ProcessName",
      "Required": true,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Sicherheitseinstellung geändert

ID: security.settings.changed
Website: /doku/werte/security.settings.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle security.settings.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Sicherheitseinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Administratorrechte sind erforderlich.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "security.settings.changed",
  "name": "Sicherheitseinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Windows-Sicherheit geändert

ID: security.state.changed
Website: /doku/werte/security.state.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle security.state.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Windows-Sicherheit geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Administratorrechte sind erforderlich.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "security.state.changed",
  "name": "Windows-Sicherheit geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Windows-Sicherheitsstatus

ID: security.status
Website: /doku/werte/security.status/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle security.status im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Windows-Sicherheitsstatus. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Administratorrechte sind erforderlich.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.is_enabled

Ob die abgefragte Funktion/Hardware vom System als aktiviert gemeldet wird. Einzelwert dieses Ergebnisses.

### result.on_off_state

Ein-/Aus-Zustand der entsprechenden Gerätefunktion gemäß Ergebnisvertrag. Einzelwert dieses Ergebnisses.

### result.on_off_state.option.Off

Der abgefragte Schalter ist ausgeschaltet.

### result.on_off_state.option.On

Der abgefragte Schalter ist eingeschaltet.

### result.on_off_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "security.status",
  "name": "Windows-Sicherheitsstatus",
  "fields": [],
  "result": {
    "TypeName": "SecurityStatusQueryResult",
    "DisplayName": "SecurityStatusQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsEnabled",
        "DisplayName": "Is Enabled",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_enabled",
        "EnumDisplayNames": null,
        "StableId": "is_enabled"
      },
      {
        "Name": "OnOffState",
        "DisplayName": "On Off State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
        "EnumValues": [
          "Unknown",
          "Off",
          "On"
        ],
        "Id": "on_off_state",
        "EnumDisplayNames": null,
        "StableId": "on_off_state"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsEnabled",
        "DisplayName": "Is Enabled",
        "Property": {
          "Name": "IsEnabled",
          "DisplayName": "Is Enabled",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_enabled",
          "EnumDisplayNames": null,
          "StableId": "is_enabled"
        },
        "Children": []
      },
      {
        "Segment": "OnOffState",
        "DisplayName": "On Off State",
        "Property": {
          "Name": "OnOffState",
          "DisplayName": "On Off State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsOnOffState",
          "EnumValues": [
            "Unknown",
            "Off",
            "On"
          ],
          "Id": "on_off_state",
          "EnumDisplayNames": null,
          "StableId": "on_off_state"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Sicherheitsmaßnahme ausgeführt

ID: security.threat.action_taken
Website: /doku/werte/security.threat.action_taken/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle security.threat.action_taken als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Sicherheitsmaßnahme ausgeführt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Administratorrechte sind erforderlich.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "security.threat.action_taken",
  "name": "Sicherheitsmaßnahme ausgeführt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bedrohung erkannt

ID: security.threat.detected
Website: /doku/werte/security.threat.detected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle security.threat.detected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bedrohung erkannt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Administratorrechte sind erforderlich.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "security.threat.detected",
  "name": "Bedrohung erkannt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Konsolensitzung verbunden

ID: session.console_connected
Website: /doku/werte/session.console_connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.console_connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Konsolensitzung verbunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.console_connected",
  "name": "Konsolensitzung verbunden",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Konsolensitzung getrennt

ID: session.console_disconnected
Website: /doku/werte/session.console_disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.console_disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Konsolensitzung getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.console_disconnected",
  "name": "Konsolensitzung getrennt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Sitzung gesperrt

ID: session.locked
Website: /doku/werte/session.locked/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.locked als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Sitzung gesperrt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.locked",
  "name": "Sitzung gesperrt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Benutzer abgemeldet

ID: session.logged_off
Website: /doku/werte/session.logged_off/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.logged_off als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Benutzer abgemeldet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.logged_off",
  "name": "Benutzer abgemeldet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Benutzer angemeldet

ID: session.logged_on
Website: /doku/werte/session.logged_on/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.logged_on als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Benutzer angemeldet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.logged_on",
  "name": "Benutzer angemeldet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Remotesitzung verbunden

ID: session.remote_connected
Website: /doku/werte/session.remote_connected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.remote_connected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Remotesitzung verbunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.remote_connected",
  "name": "Remotesitzung verbunden",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Remotesitzung getrennt

ID: session.remote_disconnected
Website: /doku/werte/session.remote_disconnected/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.remote_disconnected als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Remotesitzung getrennt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.remote_disconnected",
  "name": "Remotesitzung getrennt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Aktuelle Windows-Sitzung

ID: session.state
Website: /doku/werte/session.state/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.state im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Aktuelle Windows-Sitzung. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.id

System-/Geräteidentität des jeweiligen Ergebnisobjekts. Ihre Lebensdauer und Form hängen von der abgefragten Windows-Funktion ab. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_active

Ob das geprüfte Fenster zum Abfragezeitpunkt im Vordergrund ist. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.session_state

Aktueller Zustand der Windows-Sitzung, etwa gesperrt oder entsperrt gemäß Systemmeldung. Einzelwert dieses Ergebnisses.

### result.session_state.option.Active

Die Windows-Sitzung ist aktiv.

### result.session_state.option.Disconnected

Verbindung getrennt beziehungsweise Sitzung nicht verbunden; Bedeutung ergibt sich aus dem jeweiligen Ergebnisfeld.

### result.session_state.option.Locked

Die Windows-Sitzung ist gesperrt.

### result.session_state.option.Unknown

Die vorhandenen Daten erlauben keinen eindeutigeren Zustand.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.state",
  "name": "Aktuelle Windows-Sitzung",
  "fields": [],
  "result": {
    "TypeName": "SessionStateQueryResult",
    "DisplayName": "SessionStateQueryResult",
    "Properties": [
      {
        "Name": "IsActive",
        "DisplayName": "Is Active",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_active",
        "EnumDisplayNames": null,
        "StableId": "is_active"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "id",
        "EnumDisplayNames": null,
        "StableId": "id"
      },
      {
        "Name": "SessionState",
        "DisplayName": "Session State",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsSessionState",
        "EnumValues": [
          "Unknown",
          "Active",
          "Locked",
          "Disconnected"
        ],
        "Id": "session_state",
        "EnumDisplayNames": null,
        "StableId": "session_state"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "IsActive",
        "DisplayName": "Is Active",
        "Property": {
          "Name": "IsActive",
          "DisplayName": "Is Active",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_active",
          "EnumDisplayNames": null,
          "StableId": "is_active"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "id",
          "EnumDisplayNames": null,
          "StableId": "id"
        },
        "Children": []
      },
      {
        "Segment": "SessionState",
        "DisplayName": "Session State",
        "Property": {
          "Name": "SessionState",
          "DisplayName": "Session State",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsSessionState",
          "EnumValues": [
            "Unknown",
            "Active",
            "Locked",
            "Disconnected"
          ],
          "Id": "session_state",
          "EnumDisplayNames": null,
          "StableId": "session_state"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Windows-Sitzung geändert

ID: session.state.changed
Website: /doku/werte/session.state.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.state.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Windows-Sitzung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.state.changed",
  "name": "Windows-Sitzung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Sitzung entsperrt

ID: session.unlocked
Website: /doku/werte/session.unlocked/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle session.unlocked als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Sitzung entsperrt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "session.unlocked",
  "name": "Sitzung entsperrt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Laufwerk geändert

ID: storage.drive.changed
Website: /doku/werte/storage.drive.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle storage.drive.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.name

Prozessname (etwa notepad) beziehungsweise Laufwerksname (etwa C:), entsprechend der Windows-Funktion.

### purpose

Ereignis: Laufwerk geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "storage.drive.changed",
  "name": "Laufwerk geändert",
  "fields": [
    {
      "id": "name",
      "name": "Laufwerk",
      "type": "Drive",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Laufwerk eingebunden

ID: storage.drive.mounted
Website: /doku/werte/storage.drive.mounted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle storage.drive.mounted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.name

Prozessname (etwa notepad) beziehungsweise Laufwerksname (etwa C:), entsprechend der Windows-Funktion.

### purpose

Ereignis: Laufwerk eingebunden. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "storage.drive.mounted",
  "name": "Laufwerk eingebunden",
  "fields": [
    {
      "id": "name",
      "name": "Laufwerk",
      "type": "Drive",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Laufwerk entfernt

ID: storage.drive.unmounted
Website: /doku/werte/storage.drive.unmounted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle storage.drive.unmounted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### field.name

Prozessname (etwa notepad) beziehungsweise Laufwerksname (etwa C:), entsprechend der Windows-Funktion.

### purpose

Ereignis: Laufwerk entfernt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "storage.drive.unmounted",
  "name": "Laufwerk entfernt",
  "fields": [
    {
      "id": "name",
      "name": "Laufwerk",
      "type": "Drive",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": null
}
```

## Werte und Ergebnisse: Laufwerke und freier Speicher

ID: storage.drives
Website: /doku/werte/storage.drives/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle storage.drives im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### field.name

Prozessname (etwa notepad) beziehungsweise Laufwerksname (etwa C:), entsprechend der Windows-Funktion.

### purpose

Zustandsabfrage: Laufwerke und freier Speicher. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.free_space_gb

Vom Speicherprovider ermittelter freier Speicher in Gigabyte. Einzelwert dieses Ergebnisses.

### result.is_connected

Ob die Verbindung zum Zeitpunkt der Abfrage hergestellt war. Einzelwert dieses Ergebnisses.

### result.items

Liste abgefragter Objekte, zum Beispiel Geräte, Monitore, Drucker oder Laufwerke. Mitglieder besitzen die in dieser Referenz aufgeführten Unterwerte. Geordnete Liste; ein Verbraucher entscheidet gemäß seinem Eingabevertrag über erstes Element oder alle Elemente.

### result.items.count

Anzahl der Elemente der referenzierten Sammlung, automatisch als zusätzlicher Ergebniswert verfügbar. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "storage.drives",
  "name": "Laufwerke und freier Speicher",
  "fields": [
    {
      "id": "name",
      "name": "Laufwerk",
      "type": "Drive",
      "Required": false,
      "defaultValue": null,
      "options": []
    }
  ],
  "result": {
    "TypeName": "StorageDrivesQueryResult",
    "DisplayName": "StorageDrivesQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "IsConnected",
        "DisplayName": "Is Connected",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_connected",
        "EnumDisplayNames": null,
        "StableId": "is_connected"
      },
      {
        "Name": "Count",
        "DisplayName": "Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "count",
        "EnumDisplayNames": null,
        "StableId": "count"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "FreeSpaceGb",
        "DisplayName": "Free Space Gb",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "free_space_gb",
        "EnumDisplayNames": null,
        "StableId": "free_space_gb"
      },
      {
        "Name": "Items",
        "DisplayName": "Items",
        "DataType": "Text",
        "Description": "Text",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Collection",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items",
        "EnumDisplayNames": null,
        "StableId": "items"
      },
      {
        "Name": "Items.Count",
        "DisplayName": "Items / Count",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "items.count",
        "EnumDisplayNames": null,
        "StableId": "items.count"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "IsConnected",
        "DisplayName": "Is Connected",
        "Property": {
          "Name": "IsConnected",
          "DisplayName": "Is Connected",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_connected",
          "EnumDisplayNames": null,
          "StableId": "is_connected"
        },
        "Children": []
      },
      {
        "Segment": "Count",
        "DisplayName": "Count",
        "Property": {
          "Name": "Count",
          "DisplayName": "Count",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "count",
          "EnumDisplayNames": null,
          "StableId": "count"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "FreeSpaceGb",
        "DisplayName": "Free Space Gb",
        "Property": {
          "Name": "FreeSpaceGb",
          "DisplayName": "Free Space Gb",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "free_space_gb",
          "EnumDisplayNames": null,
          "StableId": "free_space_gb"
        },
        "Children": []
      },
      {
        "Segment": "Items",
        "DisplayName": "Items",
        "Property": {
          "Name": "Items",
          "DisplayName": "Items",
          "DataType": "Text",
          "Description": "Text",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Collection",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "items",
          "EnumDisplayNames": null,
          "StableId": "items"
        },
        "Children": [
          {
            "Segment": "Count",
            "DisplayName": "Count",
            "Property": {
              "Name": "Items.Count",
              "DisplayName": "Items / Count",
              "DataType": "Integer",
              "Description": "Integer",
              "IsNullable": false,
              "Example": null,
              "Cardinality": "Single",
              "EnumTypeName": null,
              "EnumValues": null,
              "Id": "items.count",
              "EnumDisplayNames": null,
              "StableId": "items.count"
            },
            "Children": []
          }
        ]
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Wechselmedium eingelegt

ID: storage.media.inserted
Website: /doku/werte/storage.media.inserted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle storage.media.inserted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Wechselmedium eingelegt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "storage.media.inserted",
  "name": "Wechselmedium eingelegt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Wechselmedium entfernt

ID: storage.media.removed
Website: /doku/werte/storage.media.removed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle storage.media.removed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Wechselmedium entfernt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "storage.media.removed",
  "name": "Wechselmedium entfernt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Systemlaufzeit

ID: system.lifecycle
Website: /doku/werte/system.lifecycle/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.lifecycle im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Systemlaufzeit. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.percentage

Aktueller Akkuladestand als Prozentwert, soweit vom System verfügbar. Einzelwert dieses Ergebnisses.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.value

Der von dieser Windows-Abfrage gelieferte fachliche Wert; die Typ- und Kardinalitätsspalten beschreiben seine Darstellung. Einzelwert dieses Ergebnisses.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.lifecycle",
  "name": "Systemlaufzeit",
  "fields": [],
  "result": {
    "TypeName": "SystemLifecycleQueryResult",
    "DisplayName": "SystemLifecycleQueryResult",
    "Properties": [
      {
        "Name": "UptimeMilliseconds",
        "DisplayName": "Uptime Milliseconds",
        "DataType": "Integer",
        "Description": "Integer",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "value",
        "EnumDisplayNames": null,
        "StableId": "value"
      },
      {
        "Name": "UptimeSeconds",
        "DisplayName": "Uptime Seconds",
        "DataType": "Number",
        "Description": "Number",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "percentage",
        "EnumDisplayNames": null,
        "StableId": "percentage"
      },
      {
        "Name": "OperatingSystemVersion",
        "DisplayName": "Operating System Version",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "UptimeMilliseconds",
        "DisplayName": "Uptime Milliseconds",
        "Property": {
          "Name": "UptimeMilliseconds",
          "DisplayName": "Uptime Milliseconds",
          "DataType": "Integer",
          "Description": "Integer",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "value",
          "EnumDisplayNames": null,
          "StableId": "value"
        },
        "Children": []
      },
      {
        "Segment": "UptimeSeconds",
        "DisplayName": "Uptime Seconds",
        "Property": {
          "Name": "UptimeSeconds",
          "DisplayName": "Uptime Seconds",
          "DataType": "Number",
          "Description": "Number",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "percentage",
          "EnumDisplayNames": null,
          "StableId": "percentage"
        },
        "Children": []
      },
      {
        "Segment": "OperatingSystemVersion",
        "DisplayName": "Operating System Version",
        "Property": {
          "Name": "OperatingSystemVersion",
          "DisplayName": "Operating System Version",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Abmelden oder Herunterfahren

ID: system.lifecycle.changed
Website: /doku/werte/system.lifecycle.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.lifecycle.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Abmelden oder Herunterfahren. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.lifecycle.changed",
  "name": "Abmelden oder Herunterfahren",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Benutzer wird abgemeldet

ID: system.lifecycle.logoff
Website: /doku/werte/system.lifecycle.logoff/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.lifecycle.logoff als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Benutzer wird abgemeldet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.lifecycle.logoff",
  "name": "Benutzer wird abgemeldet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Windows wird heruntergefahren

ID: system.lifecycle.shutdown
Website: /doku/werte/system.lifecycle.shutdown/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.lifecycle.shutdown als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Windows wird heruntergefahren. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.lifecycle.shutdown",
  "name": "Windows wird heruntergefahren",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Zeit, Sprache und Darstellung

ID: system.settings
Website: /doku/werte/system.settings/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Zeit, Sprache und Darstellung. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.is_enabled

Ob die abgefragte Funktion/Hardware vom System als aktiviert gemeldet wird. Einzelwert dieses Ergebnisses.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings",
  "name": "Zeit, Sprache und Darstellung",
  "fields": [],
  "result": {
    "TypeName": "SystemSettingsQueryResult",
    "DisplayName": "SystemSettingsQueryResult",
    "Properties": [
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "IsEnabled",
        "DisplayName": "Is Enabled",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "is_enabled",
        "EnumDisplayNames": null,
        "StableId": "is_enabled"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "IsEnabled",
        "DisplayName": "Is Enabled",
        "Property": {
          "Name": "IsEnabled",
          "DisplayName": "Is Enabled",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "is_enabled",
          "EnumDisplayNames": null,
          "StableId": "is_enabled"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Systemeinstellung geändert

ID: system.settings.changed
Website: /doku/werte/system.settings.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Systemeinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.changed",
  "name": "Systemeinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Farben geändert

ID: system.settings.colors_changed
Website: /doku/werte/system.settings.colors_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.colors_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Farben geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.colors_changed",
  "name": "Farben geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Desktop-Einstellung geändert

ID: system.settings.desktop_changed
Website: /doku/werte/system.settings.desktop_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.desktop_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Desktop-Einstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.desktop_changed",
  "name": "Desktop-Einstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Allgemeine Systemeinstellung geändert

ID: system.settings.general_changed
Website: /doku/werte/system.settings.general_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.general_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Allgemeine Systemeinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.general_changed",
  "name": "Allgemeine Systemeinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Symbole geändert

ID: system.settings.icons_changed
Website: /doku/werte/system.settings.icons_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.icons_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Symbole geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.icons_changed",
  "name": "Symbole geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Tastatureinstellung geändert

ID: system.settings.keyboard_changed
Website: /doku/werte/system.settings.keyboard_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.keyboard_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Tastatureinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.keyboard_changed",
  "name": "Tastatureinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Region oder Sprache geändert

ID: system.settings.locale_changed
Website: /doku/werte/system.settings.locale_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.locale_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Region oder Sprache geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.locale_changed",
  "name": "Region oder Sprache geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Menüeinstellung geändert

ID: system.settings.menu_changed
Website: /doku/werte/system.settings.menu_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.menu_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Menüeinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.menu_changed",
  "name": "Menüeinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Mauseinstellung geändert

ID: system.settings.mouse_changed
Website: /doku/werte/system.settings.mouse_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.mouse_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Mauseinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.mouse_changed",
  "name": "Mauseinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Energieeinstellung geändert

ID: system.settings.power_changed
Website: /doku/werte/system.settings.power_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.power_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Energieeinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.power_changed",
  "name": "Energieeinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Bildschirmschoner geändert

ID: system.settings.screensaver_changed
Website: /doku/werte/system.settings.screensaver_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.screensaver_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Bildschirmschoner geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.screensaver_changed",
  "name": "Bildschirmschoner geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenstereinstellung geändert

ID: system.settings.window_changed
Website: /doku/werte/system.settings.window_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.settings.window_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenstereinstellung geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.settings.window_changed",
  "name": "Fenstereinstellung geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Systemzeit geändert

ID: system.time.changed
Website: /doku/werte/system.time.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.time.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Systemzeit geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.time.changed",
  "name": "Systemzeit geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Systemuhr angepasst

ID: system.time.clock_adjusted
Website: /doku/werte/system.time.clock_adjusted/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.time.clock_adjusted als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Systemuhr angepasst. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.time.clock_adjusted",
  "name": "Systemuhr angepasst",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Zeitzone geändert

ID: system.time.timezone_changed
Website: /doku/werte/system.time.timezone_changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle system.time.timezone_changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Zeitzone geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "system.time.timezone_changed",
  "name": "Zeitzone geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster geändert

ID: window.changed
Website: /doku/werte/window.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.changed",
  "name": "Fenster geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster geschlossen

ID: window.closed
Website: /doku/werte/window.closed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.closed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster geschlossen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.closed",
  "name": "Fenster geschlossen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster in den Vordergrund gewechselt

ID: window.focused
Website: /doku/werte/window.focused/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.focused als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster in den Vordergrund gewechselt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.focused",
  "name": "Fenster in den Vordergrund gewechselt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Aktives Fenster

ID: window.foreground
Website: /doku/werte/window.foreground/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.foreground im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Aktives Fenster. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.exists

Ob der abgefragte Datei-/Ordnerpfad zum Beobachtungszeitpunkt existiert. Einzelwert dieses Ergebnisses.

### result.id

System-/Geräteidentität des jeweiligen Ergebnisobjekts. Ihre Lebensdauer und Form hängen von der abgefragten Windows-Funktion ab. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.name

Lesbarer Name des abgefragten Geräts, Monitors, Laufwerks oder Objekts. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### result.text

Erkannter oder abgefragter Text. Er kann leer sein; Datentyp und Leerheitsprüfung vor einem nachfolgenden Vergleich beachten. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.foreground",
  "name": "Aktives Fenster",
  "fields": [],
  "result": {
    "TypeName": "ForegroundWindowQueryResult",
    "DisplayName": "ForegroundWindowQueryResult",
    "Properties": [
      {
        "Name": "Exists",
        "DisplayName": "Exists",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "exists",
        "EnumDisplayNames": null,
        "StableId": "exists"
      },
      {
        "Name": "Name",
        "DisplayName": "Name",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "name",
        "EnumDisplayNames": null,
        "StableId": "name"
      },
      {
        "Name": "Text",
        "DisplayName": "Text",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "text",
        "EnumDisplayNames": null,
        "StableId": "text"
      },
      {
        "Name": "Id",
        "DisplayName": "Id",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "id",
        "EnumDisplayNames": null,
        "StableId": "id"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "Exists",
        "DisplayName": "Exists",
        "Property": {
          "Name": "Exists",
          "DisplayName": "Exists",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "exists",
          "EnumDisplayNames": null,
          "StableId": "exists"
        },
        "Children": []
      },
      {
        "Segment": "Name",
        "DisplayName": "Name",
        "Property": {
          "Name": "Name",
          "DisplayName": "Name",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "name",
          "EnumDisplayNames": null,
          "StableId": "name"
        },
        "Children": []
      },
      {
        "Segment": "Text",
        "DisplayName": "Text",
        "Property": {
          "Name": "Text",
          "DisplayName": "Text",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "text",
          "EnumDisplayNames": null,
          "StableId": "text"
        },
        "Children": []
      },
      {
        "Segment": "Id",
        "DisplayName": "Id",
        "Property": {
          "Name": "Id",
          "DisplayName": "Id",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "id",
          "EnumDisplayNames": null,
          "StableId": "id"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

## Werte und Ergebnisse: Fenster ausgeblendet

ID: window.hidden
Website: /doku/werte/window.hidden/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.hidden als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster ausgeblendet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.hidden",
  "name": "Fenster ausgeblendet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster minimiert

ID: window.minimized
Website: /doku/werte/window.minimized/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.minimized als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster minimiert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.minimized",
  "name": "Fenster minimiert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster verschoben oder skaliert

ID: window.moved_or_resized
Website: /doku/werte/window.moved_or_resized/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.moved_or_resized als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster verschoben oder skaliert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.moved_or_resized",
  "name": "Fenster verschoben oder skaliert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster geöffnet

ID: window.opened
Website: /doku/werte/window.opened/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.opened als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster geöffnet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.opened",
  "name": "Fenster geöffnet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster wiederhergestellt

ID: window.restored
Website: /doku/werte/window.restored/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.restored als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster wiederhergestellt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.restored",
  "name": "Fenster wiederhergestellt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Fenster angezeigt

ID: window.shown
Website: /doku/werte/window.shown/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle window.shown als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Fenster angezeigt. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "window.shown",
  "name": "Fenster angezeigt",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Windows Update geändert

ID: windows_update.changed
Website: /doku/werte/windows_update.changed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle windows_update.changed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Windows Update geändert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_update.changed",
  "name": "Windows Update geändert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Update-Download gestartet

ID: windows_update.download_started
Website: /doku/werte/windows_update.download_started/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle windows_update.download_started als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Update-Download gestartet. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_update.download_started",
  "name": "Update-Download gestartet",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Update heruntergeladen

ID: windows_update.downloaded
Website: /doku/werte/windows_update.downloaded/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle windows_update.downloaded als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Update heruntergeladen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_update.downloaded",
  "name": "Update heruntergeladen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Update fehlgeschlagen

ID: windows_update.failed
Website: /doku/werte/windows_update.failed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle windows_update.failed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Update fehlgeschlagen. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_update.failed",
  "name": "Update fehlgeschlagen",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Update installiert

ID: windows_update.installed
Website: /doku/werte/windows_update.installed/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle windows_update.installed als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Update installiert. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_update.installed",
  "name": "Update installiert",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Update erfordert Neustart

ID: windows_update.restart_required
Website: /doku/werte/windows_update.restart_required/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle windows_update.restart_required als Windows-Ereignis einer deaktivierten Automation und ergänze die angebotenen Filter; teste das Ziel zunächst manuell.

### purpose

Ereignis: Update erfordert Neustart. Die Automation reagiert auf eine beobachtete Änderung; ein Ereignis ersetzt keine aktuelle Zustandsabfrage. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_update.restart_required",
  "name": "Update erfordert Neustart",
  "fields": [],
  "result": null
}
```

## Werte und Ergebnisse: Windows-Update-Status

ID: windows_update.status
Website: /doku/werte/windows_update.status/

### errors

Verfügbarkeit und Ereignisevidenz hängen von Windows-Version, installiertem Gerät/Dienst und Rechten ab. Die Abfrage ist ein zeitlicher Snapshot. Nur die im Katalog gesetzten Unterstützungsmerkmale verwenden: eine reine Änderungsfunktion liefert keinen eigenen Abfragevertrag, eine reine Abfrage ist kein Ereignistrigger. Bei Windows-Einstellungen den Erfolg und Fehlercode im Step-Ergebnis prüfen.

### example

Wähle windows_update.status im Step „Windows-Zustand abfragen“ und verbinde einen unten beschriebenen Ergebniswert mit einer Bedingung.

### purpose

Zustandsabfrage: Windows-Update-Status. Liest den aktuellen vom System angebotenen Zustand und stellt die hier aufgeführten typisierten Werte bereit. Wähle die Funktion im Windows-Auswahldialog; die verfügbaren Parameter stehen unten. Der Katalog verlangt keine erhöhte Ausführung; einzelne Systemzugriffe können dennoch Rechte voraussetzen.

### result.captured_at

Zeitpunkt der Windows-Abfrage beziehungsweise Erfassung im Ergebnis. Er zeigt den Beobachtungsstand, nicht einen garantierten späteren Systemzustand. Einzelwert dieses Ergebnisses.

### result.error_code

Maschinenlesbarer Fehlercode einer Windows-Operation; bei Erfolg entsprechend dem Vertrag leer beziehungsweise nicht gesetzt. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.error_message

Lesbare Diagnose der Windows-Operation. Für Entscheidungen vorzugsweise Status und stabilen Code verwenden. Optionaler Einzelwert: bei fehlender Information keine Eigenschaft erfinden.

### result.pending_restart

Ob Windows Update noch einen Neustart verlangt. Einzelwert dieses Ergebnisses.

### result.status

Vom zuständigen Windows-Dienst gemeldeter Zustand. Nicht durch frei erfundene Statusnamen ersetzen. Einzelwert dieses Ergebnisses.

### result.status.option.AccessDenied

Windows verweigert den Zugriff; kein negativer fachlicher Zustand, sondern fehlende Berechtigung.

### result.status.option.Failed

Lauf wegen Fehler fehlgeschlagen.

### result.status.option.Success

Windows-Aufruf erfolgreich. Erst anschließend den fachlichen Ergebniswert auswerten.

### result.status.option.Timeout

Windows-Aufruf überschritt seine Zeitgrenze; daraus keinen Systemzustand ableiten.

### result.status.option.Unsupported

Funktion auf diesem Zielsystem nicht unterstützt.

### Vertrag (Metadaten; keine Konfigurationsdatei)
```json
{
  "id": "windows_update.status",
  "name": "Windows-Update-Status",
  "fields": [],
  "result": {
    "TypeName": "WindowsUpdateStatusQueryResult",
    "DisplayName": "WindowsUpdateStatusQueryResult",
    "Properties": [
      {
        "Name": "PendingRestart",
        "DisplayName": "Pending Restart",
        "DataType": "Boolean",
        "Description": "Boolean",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "pending_restart",
        "EnumDisplayNames": null,
        "StableId": "pending_restart"
      },
      {
        "Name": "Status",
        "DisplayName": "Status",
        "DataType": "Enum",
        "Description": "Enum",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
        "EnumValues": [
          "Success",
          "Unsupported",
          "AccessDenied",
          "Timeout",
          "Failed"
        ],
        "Id": "status",
        "EnumDisplayNames": null,
        "StableId": "status"
      },
      {
        "Name": "CapturedAt",
        "DisplayName": "Captured At",
        "DataType": "DateTime",
        "Description": "DateTime",
        "IsNullable": false,
        "Example": null,
        "Cardinality": "Single",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "captured_at",
        "EnumDisplayNames": null,
        "StableId": "captured_at"
      },
      {
        "Name": "ErrorCode",
        "DisplayName": "Error Code",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": null,
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_code",
        "EnumDisplayNames": null,
        "StableId": "error_code"
      },
      {
        "Name": "ErrorMessage",
        "DisplayName": "Error Message",
        "DataType": "Text",
        "Description": "Text, kann leer sein",
        "IsNullable": true,
        "Example": "No detection point available",
        "Cardinality": "OptionalSingle",
        "EnumTypeName": null,
        "EnumValues": null,
        "Id": "error_message",
        "EnumDisplayNames": null,
        "StableId": "error_message"
      }
    ],
    "PropertyTree": [
      {
        "Segment": "PendingRestart",
        "DisplayName": "Pending Restart",
        "Property": {
          "Name": "PendingRestart",
          "DisplayName": "Pending Restart",
          "DataType": "Boolean",
          "Description": "Boolean",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "pending_restart",
          "EnumDisplayNames": null,
          "StableId": "pending_restart"
        },
        "Children": []
      },
      {
        "Segment": "Status",
        "DisplayName": "Status",
        "Property": {
          "Name": "Status",
          "DisplayName": "Status",
          "DataType": "Enum",
          "Description": "Enum",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": "TaskAutomation.WindowsIntegration.WindowsCapabilityStatus",
          "EnumValues": [
            "Success",
            "Unsupported",
            "AccessDenied",
            "Timeout",
            "Failed"
          ],
          "Id": "status",
          "EnumDisplayNames": null,
          "StableId": "status"
        },
        "Children": []
      },
      {
        "Segment": "CapturedAt",
        "DisplayName": "Captured At",
        "Property": {
          "Name": "CapturedAt",
          "DisplayName": "Captured At",
          "DataType": "DateTime",
          "Description": "DateTime",
          "IsNullable": false,
          "Example": null,
          "Cardinality": "Single",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "captured_at",
          "EnumDisplayNames": null,
          "StableId": "captured_at"
        },
        "Children": []
      },
      {
        "Segment": "ErrorCode",
        "DisplayName": "Error Code",
        "Property": {
          "Name": "ErrorCode",
          "DisplayName": "Error Code",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": null,
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_code",
          "EnumDisplayNames": null,
          "StableId": "error_code"
        },
        "Children": []
      },
      {
        "Segment": "ErrorMessage",
        "DisplayName": "Error Message",
        "Property": {
          "Name": "ErrorMessage",
          "DisplayName": "Error Message",
          "DataType": "Text",
          "Description": "Text, kann leer sein",
          "IsNullable": true,
          "Example": "No detection point available",
          "Cardinality": "OptionalSingle",
          "EnumTypeName": null,
          "EnumValues": null,
          "Id": "error_message",
          "EnumDisplayNames": null,
          "StableId": "error_message"
        },
        "Children": []
      }
    ]
  }
}
```

