{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:psm:anwendung-datensatz:1.0.0",
  "title": "PSM-Anwendungsdatensatz",
  "description": "Maschinenlesbarer Datensatz zur Dokumentation einer Anwendung eines Pflanzenschutzmittels (PSM) gemaess gesetzlicher Aufzeichnungspflicht.",
  "type": "object",
  "additionalProperties": false,
  "$defs": {
    "schema_version": {
      "type": "string",
      "const": "1.0.0",
      "description": "Konstante Versionskennung des Datensatzformats."
    }
  },
  "required": [
    "datensatz_id",
    "datensatz_erstellung_zeitpunkt",
    "datensatz_format_version",
    "anwender",
    "pflanzenschutzmittel",
    "aufwandmenge",
    "anwendung_zeitpunkt",
    "kulturart",
    "jahr",
    "art_der_verwendung",
    "behandeltes_objekt",
    "behandlungsort"
  ],
  "properties": {
    "datensatz_id": {
      "type": "string",
      "format": "uuid",
      "description": "Global eindeutige Datensatz-ID im UUIDv7-Format.",
      "examples": [
        "019e7271-637f-7412-87be-4073c257db12"
      ]
    },
    "datensatz_erstellung_zeitpunkt": {
      "type": "string",
      "format": "date-time",
      "description": "Zeitpunkt der Erstellung des Datensatzes.",
      "examples": [
        "2026-05-27T14:32:00Z"
      ]
    },
    "datensatz_format_version": {
      "$ref": "#/$defs/schema_version",
      "description": "Version des Datensatzformats/der Schema-Definition.",
      "examples": [
        "1.0.0"
      ]
    },
    "anwender": {
      "type": "array",
      "description": "Personen, die Pflanzenschutzmittel tatsaechlich angewandt haben.",
      "items": {
        "type": "object",
        "description": "Einzelne Person, die das Pflanzenschutzmittel angewandt hat.",
        "additionalProperties": false,
        "properties": {
          "nachname": {
            "type": "string",
            "description": "Nachname des Anwenders.",
            "examples": [
              "Mustermann"
            ]
          },
          "vorname": {
            "type": "string",
            "description": "Vorname des Anwenders.",
            "examples": [
              "Max"
            ]
          },
          "zusatz": {
            "type": "string",
            "description": "Zusaetzliche Angaben zur Person, typischerweise zur Funktion/Betriebsrolle (z. B. \"Betriebsleiter\", \"Mitarbeiter\", \"Lohnunternehmer\").",
            "maxLength": 50,
            "examples": [
              "Betriebsleiter"
            ]
          }
        },
        "required": [
          "nachname",
          "vorname"
        ]
      },
      "minItems": 1
    },
    "pflanzenschutzmittel": {
      "type": "object",
      "description": "Angaben zum eingesetzten Pflanzenschutzmittel.",
      "additionalProperties": false,
      "properties": {
        "handelsname": {
          "type": "string",
          "description": "Produktname gemaess BVL-Zulassungsdatenbank.",
          "examples": [
            "Abran"
          ]
        },
        "zulassungsnummer": {
          "type": "string",
          "description": "Zulassungsnummer gemaess BVL-Zulassungsdatenbank.",
          "examples": [
            "00A657-63"
          ]
        }
      },
      "required": [
        "handelsname"
      ]
    },
    "aufwandmenge": {
      "type": "object",
      "description": "Aufwandmenge des PSM bezogen auf die behandelte Einheit.",
      "additionalProperties": false,
      "properties": {
        "einheit_wert": {
          "type": "number",
          "description": "Zahlwert der Aufwandmenge.",
          "examples": [
            0.8
          ]
        },
        "einheit_kode": {
          "type": "string",
          "description": "Einheit der Aufwandmenge gemaess BVL-PSM-Datenbank.",
          "enum": [
            "Ampulle(n) je ha",
            "Dispenser je ha",
            "g",
            "g h/m³",
            "g je 10 cm Balkonkasten",
            "g je 10 m³",
            "g je 100 l",
            "g je 100 m²",
            "g je 100 m³",
            "g je 15 m³",
            "g je 33 m³",
            "g je 6 m³",
            "g je 8-10 m Ganglänge",
            "g pro 13-cm-Topf",
            "g pro Bau",
            "g pro Einheit Saatgut",
            "g pro Gang",
            "g pro Köderstelle",
            "g pro Nest",
            "g pro Pflanze",
            "g pro Pflanzloch",
            "g pro Rinde von 1 m³ Holz",
            "g pro Stamm",
            "g pro Stock",
            "g pro Topf",
            "g/ 100 m Begrünungsstreifen und je 1 m Streifenbreite",
            "g/10 m²",
            "g/100 kg Substrat",
            "g/100 m² und je m Kronenhöhe",
            "g/100 Pflanzen",
            "g/100.000 Korn Saatgut",
            "g/1000 Korn",
            "g/1000 Pflanzen",
            "g/5 l Erde",
            "g/dt",
            "g/ha",
            "g/ha und je m Kronenhöhe",
            "g/ha und je m Kronenhöhe bei maximal 2 m Kronenhöhe",
            "g/kg",
            "g/kg Saatgut",
            "g/l",
            "g/l Blumenerde",
            "g/l Erde",
            "g/l Substrat",
            "g/l Wasser je 10 l Blumenerde",
            "g/Loch",
            "g/m",
            "g/m²",
            "g/m² und je m Kronenhöhe",
            "g/m³",
            "g/m³ Erde",
            "g/m³ Kultursubstrat oder Erde",
            "g/t",
            "Gew.-%",
            "kg",
            "kg je 100 l Behandlungsflüssigkeit",
            "kg pro 1000 Pflanzen",
            "kg pro 1000 Veredelungen",
            "kg/10.000 m² Laubwandfläche",
            "kg/100 m²",
            "kg/dt",
            "kg/ha",
            "kg/ha und je m Kronenhöhe",
            "kg/m²",
            "kg/m³",
            "kg/t",
            "Körner pro Pflanzrohr",
            "l",
            "l pro 1000 Pflanzen",
            "l pro Einheit Saatgut",
            "l/ 100 t",
            "l/10.000 m² Laubwandfläche",
            "l/100 kg Substrat",
            "l/100 m²",
            "l/100 m² und je m Kronenhöhe",
            "l/100 m³",
            "l/100 Pflanzen",
            "l/dt",
            "l/ha",
            "l/ha und je m Kronenhöhe",
            "l/ha und je m Kronenhöhe bei maximal 2 m Kronenhöhe",
            "l/ha und je m Kronenhöhe bei maximal 3 m Kronenhöhe",
            "l/ha und je m Pflanzenhöhe",
            "l/m²",
            "l/m³",
            "l/t",
            "m/m²",
            "Messlöffel pro Gangöffnung",
            "mg/m²",
            "mg/m³",
            "Miniplate je 7,5 m³",
            "ml",
            "ml je 10 cm Stammumfang",
            "ml je 10 l Wasser",
            "ml je 100 l Behandlungsflüssigkeit",
            "ml je 100 l Prozesswasser",
            "ml je 100 m³",
            "ml je 100 ml",
            "ml je 1000 m³",
            "ml je 5 cm Durchmesser in Brusthöhe",
            "ml je cm Stammdurchmesser",
            "ml je l Nährlösung",
            "ml je l Substrat",
            "ml pro 100 kg Pflanzgut",
            "ml pro 100 kg Saatgut",
            "ml pro Einheit Saatgut",
            "ml pro kg Saatgut",
            "ml pro Loch",
            "ml pro Pflanze",
            "ml pro Stamm",
            "ml pro Station",
            "ml pro Stock",
            "ml pro Stück",
            "ml pro Topf",
            "ml/10 m²",
            "ml/10 m² und je m Kronenhöhe",
            "ml/100 m²",
            "ml/100 m² Laubwandfläche",
            "ml/100 m² und je m Kronenehöhe bei maximal 2 m Kronenhöhe",
            "ml/100 m² und je m Kronenhöhe",
            "ml/100 Pflanzen",
            "ml/100.000 Korn Saatgut",
            "ml/1000 Korn",
            "ml/1000 Pflanzen",
            "ml/50.000 Korn Saatgut",
            "ml/dt",
            "ml/ha",
            "ml/ha und je m Kronenhöhe",
            "ml/kg",
            "ml/l",
            "ml/l Blumenerde",
            "ml/m",
            "ml/m²",
            "ml/m² und je m Kronenehöhe bei maximal 2 m Kronenhöhe",
            "ml/m² und je m Kronenhöhe",
            "ml/m³",
            "ml/t",
            "ml/t/Tag",
            "Netze/ha",
            "Pflaster pro Haupttrieb",
            "Pflaster pro Trieb",
            "s/m²",
            "Stäbchen je l Erde",
            "Stäbchen je l Substrat",
            "Stäbchen pro Liter Hydrokultursubstrat",
            "Stäbchen pro Pflanze",
            "Stäbchen pro Topf",
            "Stück",
            "Stück je 10 m Ganglänge",
            "Stück je 10 m³",
            "Stück je 100 m Uferlänge",
            "Stück je 100 m²",
            "Stück je 100 m³",
            "Stück je 1650 m³",
            "Stück je 33 m³",
            "Stück je 3-5 m Ganglänge",
            "Stück je 40 m³",
            "Stück je 40 t",
            "Stück je 5 cm Durchmesser in Brusthöhe",
            "Stück je 50 m³",
            "Stück je 500 m³",
            "Stück je 5-7 m Ganglänge",
            "Stück je 660 m³",
            "Stück je 700 m³",
            "Stück je 80 m³",
            "Stück je 8-10 m Ganglänge",
            "Stück je ha",
            "Stück je l",
            "Stück je l Erde",
            "Stück je m²",
            "Stück je m³",
            "Stück je t",
            "Stück pro Bau",
            "Stück pro Gang",
            "Stück pro Köderstelle",
            "Stück pro Loch",
            "Stück pro Raum",
            "Tablette",
            "Tablette(n) je 2 l Substrat",
            "Tablette(n) je l",
            "Tablette(n) je l Substrat",
            "Tablette/ 10 m²",
            "Tablette/ 10 m² und je m Kronenhöhe",
            "Tablette/ 10 m³",
            "Tablette/ 12,5 m²",
            "Tablette/ 13 m²",
            "Tablette/ 20 m²",
            "Tablette/ 4 m²",
            "Tablette/ 4 Pflanzen",
            "Tablette/ 6,25 m²",
            "Tablette/ 7 m²",
            "Tablette/ 7,5 m²",
            "Tablette/ 8 Pflanzen",
            "Tablette/ 9 m²",
            "Tabletten/ha",
            "Tabletten/ha und je m Kronenhöhe",
            "Träger pro Baum",
            "Tropfen je m",
            "Tropfen pro Baum",
            "Verweis auf Sonderrezeptur",
            "Vol.-%",
            "Beutel je 100 m³",
            "Beutel je 3 m³",
            "Beutel je t",
            "Dose(n) je 1000 m³",
            "Dose(n) je 150 m³",
            "Dose(n) je 200 m³",
            "Dose(n) je 2000 m³",
            "Dose(n) je 300 m³",
            "Dose(n) je 400 m³",
            "Einheit Saatgut je ha",
            "%",
            "1 Dose / x m³",
            "1 g / x m³",
            "1 Miniplate/x m³",
            "1 s/x m²",
            "1 s/x m³",
            "1 Stück/x m³",
            "1 Stück/x t",
            "Beutel je 4 t",
            "BTTU/g",
            "cfu/kg",
            "cfu/l",
            "Code noch festzulegen",
            "DNA-Kopien/L",
            "Dose(n) je 600 m³",
            "g je 3-5 m Ganglänge",
            "g je m Ganglänge",
            "g je Verpackungseinheit",
            "g pro Dose",
            "g pro Steckling",
            "g pro Stück",
            "g/100 m² Laubwandfläche",
            "g/Pflanzlochdurchmesser",
            "Genomkopien / Virenpartikel pro L",
            "Granula je kg",
            "Granula je l",
            "IU/mg",
            "je 30 Tonnen Erntegut",
            "kg pro Stück",
            "kg/ha und je m Pflanzenhöhe",
            "kg/m",
            "l je 100 l Behandlungsflüssigkeit",
            "l je 100 l Substrat",
            "l pro Nest",
            "l pro Pflanze",
            "l pro Stamm",
            "l pro Stück",
            "l pro Stock",
            "l pro100 kg Saatgut",
            "l Wasser",
            "l Wasser pro Nest",
            "l/10 m²",
            "L/100 m² Laubwandfläche",
            "l/1000 m³",
            "l/ha je nach Gerüsthöhe",
            "l/m",
            "max. 30 ml Chrysal Plus pro 1 Liter Chrysal BVB",
            "mg",
            "mg je 100 m³",
            "mg pro Dispenser",
            "mg pro Falle",
            "mg/kg",
            "ml Behandlungsflüssigkeit pro Stock",
            "ml pro 4 Pflanzen",
            "ml pro Köderstelle",
            "ml pro Pflanzloch",
            "ml/10 m² und je m Pflanzenhöhe",
            "ml/4 m²",
            "ml/8 m²",
            "ml/Pflanzlochdurchmesser",
            "Pflaster",
            "Rebstöcke je ha",
            "Sporen je kg",
            "Sporen je l",
            "Stück je 3 m³",
            "Stück je 30 m³",
            "Stück je 35 m³",
            "Stück je 6 m³",
            "Stück je m Ganglänge",
            "Stück pro Falle",
            "Stück pro Pflanze",
            "t",
            "Teile"
          ]
        }
      },
      "required": [
        "einheit_wert",
        "einheit_kode"
      ]
    },
    "anwendung_zeitpunkt": {
      "type": "object",
      "description": "Zeitpunkt der PSM-Anwendung.",
      "additionalProperties": false,
      "properties": {
        "datum": {
          "type": "string",
          "format": "date",
          "description": "Datum der Anwendung.",
          "examples": [
            "2026-05-27"
          ]
        },
        "uhrzeit": {
          "type": "string",
          "format": "time",
          "description": "Uhrzeit der Anwendung.",
          "examples": [
            "06:15:00"
          ]
        }
      },
      "required": [
        "datum"
      ]
    },
    "kulturart": {
      "type": "object",
      "description": "Angaben zur behandelten Kultur.",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "description": "Name gemaess BVL-Zulassungsdatenbank.",
          "examples": [
            "Winterweichweizen"
          ]
        },
        "eppo_code": {
          "type": "string",
          "description": "EPPO-Code gemaess BVL-Zulassungsdatenbank.",
          "examples": [
            "TRZAW"
          ]
        },
        "bbch": {
          "type": "object",
          "description": "BBCH-Wachstumsstadium der Kultur laut Zulassung und BBCH-Monografie.",
          "additionalProperties": false,
          "properties": {
            "von": {
              "type": "string",
              "description": "Anfangs- bzw. aktuelles BBCH-Stadium in Zahlenformat oder offizieller schriftlicher Form.",
              "examples": [
                "55",
                "Mitte des Aehren-/Rispenschiebens: Basis noch in der Blattscheide"
              ]
            },
            "bis": {
              "type": "string",
              "description": "End-BBCH-Stadium, falls ein Wachstumsbereich abgebildet wird. Angabe in Zahlenformat oder offizieller schriftlicher Form. Im Falle eines einheitlichen BBCH-Stadiums entspricht 'bis' dem Wert 'von'.",
              "examples": [
                "55",
                "Mitte des Aehren-/Rispenschiebens: Basis noch in der Blattscheide",
                "59",
                "Ende des Aehren-/Rispenschiebens: Aehre/Rispe vollständig sichtbar"
              ]
            }
          }
        }
      },
      "required": [
        "name",
        "eppo_code"
      ]
    },
    "jahr": {
      "type": "string",
      "description": "Bei landwirtschaftlichen Kulturen das Erntejahr. Bei nicht-landwirtschaftlicher Anwendung (Forst, Nichtkulturland etc.) das PSM-Anwendungsjahr.",
      "examples": [
        "2026"
      ]
    },
    "art_der_verwendung": {
      "type": "object",
      "description": "Art und Bereich der Verwendung des Pflanzenschutzmittels.",
      "additionalProperties": false,
      "properties": {
        "bereich": {
          "type": "string",
          "enum": [
            "freiland",
            "raum",
            "beizung"
          ],
          "description": "Anwendungsbereich (Freiland, Raum oder Beizung)."
        },
        "art": {
          "type": "string",
          "description": "Spezifische Art der Verwendung. Zulaessige Werte richten sich nach 'bereich'."
        }
      },
      "required": [
        "bereich"
      ],
      "allOf": [
        {
          "if": {
            "properties": {
              "bereich": {
                "const": "freiland"
              }
            },
            "required": [
              "bereich"
            ]
          },
          "then": {
            "properties": {
              "art": {
                "type": "string",
                "enum": [
                  "kulturland",
                  "nicht_kulturland",
                  "flaechen_allgemeinheit"
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "bereich": {
                "const": "raum"
              }
            },
            "required": [
              "bereich"
            ]
          },
          "then": {
            "properties": {
              "art": {
                "type": "string",
                "enum": [
                  "lager",
                  "gewaechshaus",
                  "innenraum"
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "bereich": {
                "const": "beizung"
              }
            },
            "required": [
              "bereich"
            ]
          },
          "then": {
            "properties": {
              "art": {
                "type": "string",
                "enum": [
                  "beizung_saatgut",
                  "beizung_pflanzgut"
                ]
              }
            }
          }
        }
      ]
    },
    "behandeltes_objekt": {
      "type": "object",
      "description": "Behandeltes Objekt (Flaeche, Menge oder Volumen).",
      "additionalProperties": false,
      "properties": {
        "typ": {
          "type": "string",
          "enum": [
            "behandelte_flaeche",
            "behandelte_menge",
            "behandeltes_volumen"
          ],
          "description": "Art des behandelten Objekts (Flaeche, Menge oder Volumen)."
        },
        "groesse_einheit": {
          "type": "object",
          "description": "Wert und Einheit der Objektgroesse.",
          "additionalProperties": false,
          "properties": {
            "einheit_wert": {
              "type": "number",
              "description": "Zahlwert der Objektgroesse.",
              "examples": [
                4.25
              ]
            },
            "einheit_kode": {
              "type": "string",
              "description": "Einheit der Objektgroesse."
            }
          },
          "required": [
            "einheit_wert",
            "einheit_kode"
          ]
        },
        "beschreibung": {
          "type": "string",
          "description": "Zusaetzliche Beschreibung zum behandelten Objekt.",
          "maxLength": 50,
          "examples": [
            "Schlag Nordfeld"
          ]
        }
      },
      "required": [
        "typ",
        "groesse_einheit"
      ],
      "allOf": [
        {
          "if": {
            "properties": {
              "typ": {
                "const": "behandelte_flaeche"
              }
            },
            "required": [
              "typ"
            ]
          },
          "then": {
            "properties": {
              "groesse_einheit": {
                "type": "object",
                "properties": {
                  "einheit_kode": {
                    "type": "string",
                    "enum": [
                      "m²",
                      "ha"
                    ]
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "typ": {
                "const": "behandelte_menge"
              }
            },
            "required": [
              "typ"
            ]
          },
          "then": {
            "properties": {
              "groesse_einheit": {
                "type": "object",
                "properties": {
                  "einheit_kode": {
                    "type": "string",
                    "enum": [
                      "g",
                      "kg",
                      "dt",
                      "t"
                    ]
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "typ": {
                "const": "behandeltes_volumen"
              }
            },
            "required": [
              "typ"
            ]
          },
          "then": {
            "properties": {
              "groesse_einheit": {
                "type": "object",
                "properties": {
                  "einheit_kode": {
                    "type": "string",
                    "enum": [
                      "m³",
                      "l"
                    ]
                  }
                }
              }
            }
          }
        }
      ]
    },
    "behandlungsort": {
      "type": "array",
      "description": "Behandlungsorte der Anwendung. Mindestens ein Eintrag; mehrere Eintraege ermoeglichen die Beschreibung desselben Ortes ueber verschiedene Standortreferenzen.",
      "minItems": 1,
      "items": {
        "type": "object",
        "description": "Einzelner Behandlungsort. Geographische oder administrative Identifikation des Behandlungsortes.",
        "additionalProperties": false,
        "properties": {
          "standort_kennung_art": {
            "type": "string",
            "enum": [
              "standort_koordinaten",
              "flurstueckskennzeichen",
              "invekos_id",
              "flaechengeometrie",
              "gleise",
              "forst",
              "wege"
            ],
            "description": "Art der Standortreferenz."
          },
          "standort_kennung_wert": {
            "description": "Spezifischer Wert oder Unterobjekt der Standortreferenz, basierend auf der gewaehlten 'standort_kennung_art'.",
            "oneOf": [
              {
                "title": "standort_koordinaten",
                "type": "object",
                "description": "Geographische Koordinaten (WGS84) des Behandlungsortes.",
                "additionalProperties": false,
                "properties": {
                  "breitengrad": {
                    "type": "number",
                    "description": "Geographische Breite (WGS84) in Dezimalgrad.",
                    "minimum": -100,
                    "maximum": 100,
                    "examples": [
                      52.52
                    ]
                  },
                  "laengengrad": {
                    "type": "number",
                    "description": "Geographische Laenge (WGS84) in Dezimalgrad.",
                    "minimum": -50,
                    "maximum": 50,
                    "examples": [
                      13.405
                    ]
                  }
                },
                "required": [
                  "breitengrad",
                  "laengengrad"
                ]
              },
              {
                "title": "flurstueckskennzeichen",
                "type": "string",
                "pattern": "^[0-9_]{20}$",
                "description": "Amtliches ALKIS-Flurstueckskennzeichen (20-stellig).",
                "examples": [
                  "071411006000570099__"
                ]
              },
              {
                "title": "invekos_id",
                "type": "object",
                "description": "Flaechenreferenz im INVEKOS-Feldblock-/Schlag-System.",
                "additionalProperties": false,
                "properties": {
                  "flik": {
                    "type": "string",
                    "description": "FLIK (Feldblock-Identifikator) gemaess INVEKOS.",
                    "examples": [
                      "DETHLIAL50333H11"
                    ]
                  },
                  "schlag_nummer": {
                    "type": "string",
                    "description": "Schlagnummer des Betriebs, dem Feldblock (FLIK) zugeordnet. Identifiziert die konkrete, mit einer Kultur bestellte Teilflaeche innerhalb des Feldblocks.",
                    "examples": [
                      "42"
                    ]
                  },
                  "teilschlag_nummer": {
                    "type": "string",
                    "description": "Teilschlagnummer, falls der Schlag unterteilt ist."
                  }
                },
                "required": [
                  "flik"
                ]
              },
              {
                "title": "flaechengeometrie",
                "type": "object",
                "description": "Flaechengeometrie (z. B. GeoJSON-aehnlich).",
                "additionalProperties": false,
                "properties": {
                  "typ": {
                    "type": "string",
                    "description": "Geometrietyp (z. B. Polygon).",
                    "enum": [
                      "Point",
                      "MultiPoint",
                      "LineString",
                      "MultiLineString",
                      "Polygon",
                      "MultiPolygon",
                      "GeometryCollection"
                    ],
                    "examples": [
                      "Polygon"
                    ]
                  },
                  "koordinaten": {
                    "type": "array",
                    "description": "Koordinaten als verschachtelte Arrays; Verschachtelungstiefe haengt vom Geometrietyp ab (z. B. Polygonringe)."
                  }
                },
                "required": [
                  "typ",
                  "koordinaten"
                ]
              },
              {
                "title": "gleise",
                "type": "object",
                "description": "Standortreferenz fuer Gleisanlagen.",
                "additionalProperties": false,
                "properties": {
                  "streckennummer": {
                    "type": "string",
                    "description": "Nummer der Bahnstrecke (VzG-Streckennummer).",
                    "examples": [
                      "2981"
                    ]
                  },
                  "richtungskennzahl": {
                    "type": "number",
                    "description": "Richtungskennzahl der Strecke (0 oder 1).",
                    "enum": [
                      0,
                      1
                    ]
                  },
                  "km_von": {
                    "type": "number",
                    "description": "Streckenkilometer des Abschnittsbeginns.",
                    "multipleOf": 0.1,
                    "minimum": 0,
                    "examples": [
                      0.3
                    ]
                  },
                  "km_bis": {
                    "type": "number",
                    "description": "Streckenkilometer des Abschnittsendes.",
                    "multipleOf": 0.1,
                    "minimum": 0,
                    "examples": [
                      0.3
                    ]
                  },
                  "m_von": {
                    "type": "number",
                    "description": "Meterangabe innerhalb des Anfangskilometers (0-99).",
                    "minimum": 0,
                    "maximum": 99,
                    "examples": [
                      15
                    ]
                  },
                  "m_bis": {
                    "type": "number",
                    "description": "Meterangabe innerhalb des Endkilometers (0-99).",
                    "minimum": 0,
                    "maximum": 99,
                    "examples": [
                      21
                    ]
                  }
                },
                "required": [
                  "streckennummer",
                  "richtungskennzahl",
                  "km_von",
                  "km_bis",
                  "m_von",
                  "m_bis"
                ]
              },
              {
                "title": "forst",
                "type": "object",
                "description": "Standortreferenz fuer forstliche Flaechen.",
                "additionalProperties": false,
                "properties": {
                  "bundesland": {
                    "type": "string",
                    "description": "Bundesland der forstlichen Flaeche.\nBundesland(BL-Kuerzel).",
                    "examples": [
                      "SN"
                    ]
                  },
                  "forstamt_betrieb": {
                    "type": "string",
                    "description": "Zustaendiges Forstamt bzw. Forstbetrieb.",
                    "examples": [
                      "FOB Baerenfels bzw. 1509"
                    ]
                  },
                  "revier": {
                    "type": "string",
                    "description": "Forstrevier.",
                    "examples": [
                      "Tharandt"
                    ]
                  },
                  "abteilung": {
                    "type": "string",
                    "description": "Forstabteilung.",
                    "examples": [
                      "503"
                    ]
                  },
                  "unterabteilung": {
                    "type": "string",
                    "description": "Forstunterabteilung.",
                    "examples": [
                      "a"
                    ]
                  },
                  "teilflaeche": {
                    "type": "string",
                    "description": "Teilflaeche innerhalb der Unterabteilung.",
                    "examples": [
                      "4"
                    ]
                  },
                  "behandlungseinheit": {
                    "type": "string",
                    "description": "Bezeichnung der Behandlungseinheit."
                  }
                },
                "required": [
                  "bundesland",
                  "forstamt_betrieb",
                  "revier",
                  "abteilung"
                ]
              },
              {
                "title": "wege",
                "type": "object",
                "description": "Standortreferenz fuer Strassen und Wege.",
                "additionalProperties": false,
                "properties": {
                  "referenz_typ": {
                    "type": "string",
                    "enum": [
                      "strassen_wegebezeichnung",
                      "hausnummernbereich"
                    ],
                    "description": "Art der Wegereferenz."
                  },
                  "referenz_wert": {
                    "description": "Wert der Wegereferenz. Aufbau richtet sich nach 'referenz_typ' (eine der nachfolgenden Varianten).",
                    "oneOf": [
                      {
                        "title": "strassen_wegebezeichnung",
                        "type": "object",
                        "description": "Standortreferenz ueber eine Strassen- bzw. Wegebezeichnung.",
                        "additionalProperties": false,
                        "properties": {
                          "bezeichnung_nummer": {
                            "type": "string",
                            "description": "Bezeichnung oder Nummer der Strasse bzw. des Weges.",
                            "examples": [
                              "B22"
                            ]
                          },
                          "raeumliche_eingrenzung": {
                            "type": "string",
                            "enum": [
                              "koordinaten",
                              "streckenabschnitt"
                            ],
                            "description": "Art der raeumlichen Eingrenzung des Weges."
                          },
                          "eingrenzung_wert": {
                            "description": "Wert der raeumlichen Eingrenzung. Aufbau richtet sich nach 'raeumliche_eingrenzung' (eine der nachfolgenden Varianten).",
                            "oneOf": [
                              {
                                "title": "koordinaten",
                                "type": "object",
                                "description": "Raeumliche Eingrenzung des Weges ueber Anfangs- und Endkoordinaten.",
                                "additionalProperties": false,
                                "properties": {
                                  "von": {
                                    "type": "object",
                                    "description": "Anfangskoordinate des Wegeabschnitts.",
                                    "additionalProperties": false,
                                    "properties": {
                                      "breitengrad": {
                                        "type": "number",
                                        "description": "Geographische Breite (WGS84) in Dezimalgrad.",
                                        "minimum": -100,
                                        "maximum": 100,
                                        "examples": [
                                          49.812
                                        ]
                                      },
                                      "laengengrad": {
                                        "type": "number",
                                        "description": "Geographische Laenge (WGS84) in Dezimalgrad.",
                                        "minimum": -50,
                                        "maximum": 50,
                                        "examples": [
                                          10.523
                                        ]
                                      }
                                    },
                                    "required": [
                                      "breitengrad",
                                      "laengengrad"
                                    ]
                                  },
                                  "bis": {
                                    "type": "object",
                                    "description": "Endkoordinate des Wegeabschnitts.",
                                    "additionalProperties": false,
                                    "properties": {
                                      "breitengrad": {
                                        "type": "number",
                                        "description": "Geographische Breite (WGS84) in Dezimalgrad.",
                                        "minimum": -100,
                                        "maximum": 100,
                                        "examples": [
                                          49.815
                                        ]
                                      },
                                      "laengengrad": {
                                        "type": "number",
                                        "description": "Geographische Laenge (WGS84) in Dezimalgrad.",
                                        "minimum": -50,
                                        "maximum": 50,
                                        "examples": [
                                          10.531
                                        ]
                                      }
                                    },
                                    "required": [
                                      "breitengrad",
                                      "laengengrad"
                                    ]
                                  }
                                },
                                "required": [
                                  "von",
                                  "bis"
                                ]
                              },
                              {
                                "title": "streckenabschnitt",
                                "type": "object",
                                "description": "Raeumliche Eingrenzung des Weges ueber einen Streckenabschnitt.",
                                "additionalProperties": false,
                                "properties": {
                                  "von": {
                                    "type": "number",
                                    "description": "Anfangswert des Streckenabschnitts.",
                                    "examples": [
                                      0
                                    ]
                                  },
                                  "bis": {
                                    "type": "number",
                                    "description": "Endwert des Streckenabschnitts.",
                                    "examples": [
                                      250
                                    ]
                                  },
                                  "einheit": {
                                    "type": "string",
                                    "description": "Einheit des Streckenabschnitts (m oder km).",
                                    "enum": [
                                      "m",
                                      "km"
                                    ]
                                  }
                                },
                                "required": [
                                  "von",
                                  "bis",
                                  "einheit"
                                ]
                              }
                            ]
                          }
                        },
                        "required": [
                          "bezeichnung_nummer"
                        ],
                        "allOf": [
                          {
                            "if": {
                              "properties": {
                                "raeumliche_eingrenzung": {
                                  "const": "koordinaten"
                                }
                              },
                              "required": [
                                "raeumliche_eingrenzung"
                              ]
                            },
                            "then": {
                              "required": [
                                "eingrenzung_wert"
                              ],
                              "properties": {
                                "eingrenzung_wert": {
                                  "required": [
                                    "von",
                                    "bis"
                                  ]
                                }
                              }
                            }
                          },
                          {
                            "if": {
                              "properties": {
                                "raeumliche_eingrenzung": {
                                  "const": "streckenabschnitt"
                                }
                              },
                              "required": [
                                "raeumliche_eingrenzung"
                              ]
                            },
                            "then": {
                              "required": [
                                "eingrenzung_wert"
                              ],
                              "properties": {
                                "eingrenzung_wert": {
                                  "required": [
                                    "von",
                                    "bis",
                                    "einheit"
                                  ]
                                }
                              }
                            }
                          }
                        ]
                      },
                      {
                        "title": "hausnummernbereich",
                        "type": "object",
                        "description": "Standortreferenz ueber einen Hausnummernbereich, der von einer Adresse bis zu einer anderen reicht.",
                        "additionalProperties": false,
                        "properties": {
                          "von": {
                            "type": "object",
                            "description": "Anfangsadresse des Hausnummernbereichs.",
                            "additionalProperties": false,
                            "properties": {
                              "ort": {
                                "type": "string",
                                "description": "Ortsname.",
                                "examples": [
                                  "Musterstadt"
                                ]
                              },
                              "postleitzahl": {
                                "type": "string",
                                "description": "Postleitzahl.",
                                "examples": [
                                  "12049"
                                ]
                              },
                              "strasse": {
                                "type": "string",
                                "description": "Strassenname.",
                                "examples": [
                                  "Hauptstrasse"
                                ]
                              },
                              "hausnummer": {
                                "type": "string",
                                "description": "Hausnummer.",
                                "examples": [
                                  "15"
                                ]
                              }
                            },
                            "required": [
                              "ort",
                              "postleitzahl",
                              "strasse",
                              "hausnummer"
                            ]
                          },
                          "bis": {
                            "type": "object",
                            "description": "Endadresse des Hausnummernbereichs.",
                            "additionalProperties": false,
                            "properties": {
                              "ort": {
                                "type": "string",
                                "description": "Ortsname.",
                                "examples": [
                                  "Musterstadt"
                                ]
                              },
                              "postleitzahl": {
                                "type": "string",
                                "description": "Postleitzahl.",
                                "examples": [
                                  "12049"
                                ]
                              },
                              "strasse": {
                                "type": "string",
                                "description": "Strassenname.",
                                "examples": [
                                  "Hauptstrasse"
                                ]
                              },
                              "hausnummer": {
                                "type": "string",
                                "description": "Hausnummer.",
                                "examples": [
                                  "23"
                                ]
                              }
                            },
                            "required": [
                              "ort",
                              "postleitzahl",
                              "strasse",
                              "hausnummer"
                            ]
                          }
                        },
                        "required": [
                          "von",
                          "bis"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "referenz_typ",
                  "referenz_wert"
                ],
                "allOf": [
                  {
                    "if": {
                      "properties": {
                        "referenz_typ": {
                          "const": "strassen_wegebezeichnung"
                        }
                      },
                      "required": [
                        "referenz_typ"
                      ]
                    },
                    "then": {
                      "properties": {
                        "referenz_wert": {
                          "required": [
                            "bezeichnung_nummer"
                          ]
                        }
                      }
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "referenz_typ": {
                          "const": "hausnummernbereich"
                        }
                      },
                      "required": [
                        "referenz_typ"
                      ]
                    },
                    "then": {
                      "properties": {
                        "referenz_wert": {
                          "required": [
                            "von",
                            "bis"
                          ]
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          "standort_anbauart": {
            "type": "string",
            "description": "Bewirtschaftungsart des Objekts, in dem die Anwendung erfolgt ist.",
            "enum": [
              "konventionell",
              "oekologisch"
            ]
          },
          "standort_groesse_art": {
            "type": "string",
            "enum": [
              "flaeche",
              "volumen"
            ],
            "description": "Art der Standortgroesse (Flaeche oder Volumen)."
          },
          "standort_groesse_einheit": {
            "type": "object",
            "description": "Wert und Einheit der Standortgroesse.",
            "additionalProperties": false,
            "properties": {
              "einheit_wert": {
                "type": "number",
                "description": "Zahlwert der Standortgroesse.",
                "examples": [
                  4.25
                ]
              },
              "einheit_kode": {
                "type": "string",
                "description": "Einheit der Standortgroesse."
              }
            },
            "required": [
              "einheit_wert",
              "einheit_kode"
            ]
          },
          "bezeichnung": {
            "type": "string",
            "description": "Zusaetzliche Angaben zum Behandlungsort (z. B. Name des Schlages, Gewaechshaus-Abteilung).",
            "maxLength": 50,
            "examples": [
              "Nordfeld"
            ]
          }
        },
        "required": [
          "standort_kennung_art",
          "standort_kennung_wert",
          "standort_groesse_einheit"
        ],
        "allOf": [
          {
            "if": {
              "properties": {
                "standort_groesse_art": {
                  "const": "flaeche"
                }
              },
              "required": [
                "standort_groesse_art"
              ]
            },
            "then": {
              "properties": {
                "standort_groesse_einheit": {
                  "type": "object",
                  "properties": {
                    "einheit_kode": {
                      "type": "string",
                      "enum": [
                        "m²",
                        "ha"
                      ]
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_groesse_art": {
                  "const": "volumen"
                }
              },
              "required": [
                "standort_groesse_art"
              ]
            },
            "then": {
              "properties": {
                "standort_groesse_einheit": {
                  "type": "object",
                  "properties": {
                    "einheit_kode": {
                      "type": "string",
                      "enum": [
                        "m³",
                        "l"
                      ]
                    }
                  }
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_kennung_art": {
                  "const": "standort_koordinaten"
                }
              },
              "required": [
                "standort_kennung_art"
              ]
            },
            "then": {
              "properties": {
                "standort_kennung_wert": {
                  "type": "object",
                  "required": [
                    "breitengrad",
                    "laengengrad"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_kennung_art": {
                  "const": "flurstueckskennzeichen"
                }
              },
              "required": [
                "standort_kennung_art"
              ]
            },
            "then": {
              "properties": {
                "standort_kennung_wert": {
                  "type": "string",
                  "pattern": "^[0-9_]{20}$"
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_kennung_art": {
                  "const": "invekos_id"
                }
              },
              "required": [
                "standort_kennung_art"
              ]
            },
            "then": {
              "properties": {
                "standort_kennung_wert": {
                  "type": "object",
                  "required": [
                    "flik"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_kennung_art": {
                  "const": "flaechengeometrie"
                }
              },
              "required": [
                "standort_kennung_art"
              ]
            },
            "then": {
              "properties": {
                "standort_kennung_wert": {
                  "type": "object",
                  "required": [
                    "typ",
                    "koordinaten"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_kennung_art": {
                  "const": "gleise"
                }
              },
              "required": [
                "standort_kennung_art"
              ]
            },
            "then": {
              "properties": {
                "standort_kennung_wert": {
                  "type": "object",
                  "required": [
                    "streckennummer",
                    "richtungskennzahl",
                    "km_von",
                    "km_bis",
                    "m_von",
                    "m_bis"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_kennung_art": {
                  "const": "forst"
                }
              },
              "required": [
                "standort_kennung_art"
              ]
            },
            "then": {
              "properties": {
                "standort_kennung_wert": {
                  "type": "object",
                  "required": [
                    "bundesland",
                    "forstamt_betrieb",
                    "revier",
                    "abteilung"
                  ]
                }
              }
            }
          },
          {
            "if": {
              "properties": {
                "standort_kennung_art": {
                  "const": "wege"
                }
              },
              "required": [
                "standort_kennung_art"
              ]
            },
            "then": {
              "properties": {
                "standort_kennung_wert": {
                  "type": "object",
                  "required": [
                    "referenz_typ",
                    "referenz_wert"
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "notizen": {
      "type": "string",
      "description": "Freitext-Notizen zur Anwendung.",
      "maxLength": 500,
      "examples": [
        "Indikation: Blattlaeuse, Anwendungsstadium: nach Erreichen von Schwellenwerten oder nach Warndienstaufruf. Es wurde lediglich die Haelfte des Feldes behandelt, da sich das betroffene Areal auf den abschuessigen Hang des Feldes begrenzte."
      ]
    }
  }
}