{
  "formatVersion": 1,
  "title": "NexAI CRM — data structures and data formats of the exportable data",
  "legalBasis": "Regulation (EU) 2023/2854 (Data Act), Art. 26(b) and Art. 30(2)",
  "package": {
    "endpoint": "GET /api/tenant-export",
    "fileName": "nexai-crm-export-YYYY-MM-DD.zip",
    "container": "ZIP (Deflate)",
    "contents": {
      "csvFiles": 64,
      "readme": "LIESMICH.txt"
    }
  },
  "csv": {
    "standard": "RFC 4180",
    "separator": ",",
    "lineEnd": "CRLF",
    "quote": "\"",
    "encoding": "UTF-8",
    "byteOrderMark": true,
    "headerRow": true,
    "emptyField": "no value (NULL); an empty string is not distinguishable",
    "rowOrder": "unspecified",
    "rules": {
      "de": [
        "Format nach RFC 4180: Komma als Trennzeichen, Zeilenende CRLF.",
        "Erste Zeile: die Spaltennamen, wie in den Tabellen unten.",
        "Ein Feld steht in doppelten Anführungszeichen, wenn es ein Komma, ein Anführungszeichen oder einen Zeilenumbruch enthält; ein Anführungszeichen darin wird verdoppelt.",
        "Zeichenkodierung UTF-8 (RFC 3629) mit Byte-Order-Mark (EF BB BF) am Dateianfang.",
        "Ein leeres Feld heißt: kein Wert. Ein leerer Text und „kein Wert“ sind in der CSV nicht zu unterscheiden.",
        "Die Reihenfolge der Zeilen ist nicht festgelegt.",
        "Gelöschte Datensätze im Papierkorb sind enthalten; sie tragen einen Zeitpunkt in deleted_at.",
        "Beträge sind Ganzzahlen in Cent, Mengen in Tausendsteln, Steuersätze und Rabatte in Basispunkten — es gibt keine Dezimalzahlen.",
        "Spalten vom Typ UUID verweisen auf die Spalte id der genannten Datei."
      ]
    }
  },
  "types": {
    "text": {
      "de": "Text",
      "en": "Text",
      "notation": "beliebiger Text",
      "standards": [
        "RFC 3629"
      ]
    },
    "uuid": {
      "de": "Kennung (UUID)",
      "en": "Identifier (UUID)",
      "notation": "8-4-4-4-12 hexadezimale Ziffern, Kleinbuchstaben",
      "standards": [
        "RFC 9562"
      ]
    },
    "timestamp": {
      "de": "Zeitpunkt",
      "en": "Timestamp",
      "notation": "JJJJ-MM-TTThh:mm:ss.ffffffZ, immer UTC, sechs Nachkommastellen",
      "standards": [
        "RFC 3339",
        "ISO 8601"
      ]
    },
    "date": {
      "de": "Datum",
      "en": "Date",
      "notation": "JJJJ-MM-TT",
      "standards": [
        "RFC 3339",
        "ISO 8601"
      ]
    },
    "month": {
      "de": "Monat",
      "en": "Month",
      "notation": "JJJJ-MM",
      "standards": [
        "ISO 8601"
      ]
    },
    "integer": {
      "de": "Ganzzahl",
      "en": "Integer",
      "notation": "Ziffern, negativ mit führendem Minus, ohne Tausendertrennzeichen",
      "standards": []
    },
    "boolean": {
      "de": "Wahrheitswert",
      "en": "Boolean",
      "notation": "true oder false",
      "standards": []
    },
    "enum": {
      "de": "Auswahl",
      "en": "Enumeration",
      "notation": "genau einer der genannten Werte",
      "standards": []
    },
    "json": {
      "de": "JSON",
      "en": "JSON",
      "notation": "JSON-Text; in der CSV in Anführungszeichen, innere Anführungszeichen verdoppelt",
      "standards": [
        "RFC 8259"
      ]
    },
    "currency": {
      "de": "Währungscode",
      "en": "Currency code",
      "notation": "drei Großbuchstaben, z. B. EUR",
      "standards": [
        "ISO 4217"
      ]
    },
    "country": {
      "de": "Ländercode",
      "en": "Country code",
      "notation": "zwei Großbuchstaben, z. B. DE",
      "standards": [
        "ISO 3166-1 alpha-2"
      ]
    },
    "email": {
      "de": "E-Mail-Adresse",
      "en": "E-mail address",
      "notation": "wie erfasst",
      "standards": []
    },
    "phone": {
      "de": "Telefonnummer",
      "en": "Phone number",
      "notation": "wie erfasst",
      "standards": []
    },
    "url": {
      "de": "Internetadresse",
      "en": "URL",
      "notation": "wie erfasst",
      "standards": []
    },
    "sha256": {
      "de": "SHA-256-Prüfsumme",
      "en": "SHA-256 digest",
      "notation": "64 hexadezimale Ziffern, Kleinbuchstaben",
      "standards": [
        "FIPS 180-4"
      ]
    },
    "unit_code": {
      "de": "Einheitencode",
      "en": "Unit code",
      "notation": "zwei bis drei Großbuchstaben oder Ziffern, z. B. H87",
      "standards": [
        "UN/ECE Recommendation 20"
      ]
    }
  },
  "units": {
    "cent": {
      "de": "in Cent (1/100 der Währungseinheit)",
      "en": "in cents (1/100 of the currency unit)"
    },
    "basis_points": {
      "de": "in Basispunkten (1/100 Prozent)",
      "en": "in basis points (1/100 percent)"
    },
    "milli": {
      "de": "in Tausendsteln",
      "en": "in thousandths"
    },
    "bytes": {
      "de": "in Bytes",
      "en": "in bytes"
    },
    "seconds": {
      "de": "in Sekunden",
      "en": "in seconds"
    },
    "days": {
      "de": "in Tagen",
      "en": "in days"
    },
    "percent": {
      "de": "in Prozent",
      "en": "in percent"
    }
  },
  "files": [
    {
      "file": "kontakte.csv",
      "description": {
        "de": "Personen: Kundinnen, Interessenten, Ansprechpartner.",
        "en": "People: customers, prospects, contact persons."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "first_name",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Vorname",
            "en": "First name"
          }
        },
        {
          "name": "last_name",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Nachname",
            "en": "Last name"
          }
        },
        {
          "name": "email",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "E-Mail-Adresse",
            "en": "E-mail address"
          }
        },
        {
          "name": "phone",
          "type": "phone",
          "nullable": true,
          "description": {
            "de": "Telefonnummer, wie erfasst",
            "en": "Phone number as entered"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehörige Firma",
            "en": "Related company"
          }
        },
        {
          "name": "position",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Funktion in der Firma",
            "en": "Job title"
          }
        },
        {
          "name": "street",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Straße und Hausnummer",
            "en": "Street and number"
          }
        },
        {
          "name": "postal_code",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Postleitzahl",
            "en": "Postal code"
          }
        },
        {
          "name": "city",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Ort",
            "en": "City"
          }
        },
        {
          "name": "country",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Land (Name)",
            "en": "Country (name)"
          }
        },
        {
          "name": "country_code",
          "type": "country",
          "nullable": true,
          "description": {
            "de": "Land als Code",
            "en": "Country code"
          }
        },
        {
          "name": "source",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Herkunft des Kontakts (z. B. Formular, Telefon)",
            "en": "Origin of the contact"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "active",
            "archived"
          ],
          "nullable": false,
          "description": {
            "de": "Zustand",
            "en": "Status"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Owner (user)"
          }
        },
        {
          "name": "last_contacted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Zuletzt kontaktiert am",
            "en": "Last contacted at"
          }
        },
        {
          "name": "next_follow_up_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Nächste Wiedervorlage",
            "en": "Next follow-up"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "firmen.csv",
      "description": {
        "de": "Firmen mit Anschrift, Rechnungsangaben und Stammdaten der E-Rechnung.",
        "en": "Companies with address, billing details and e-invoice master data."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name der Firma",
            "en": "Company name"
          }
        },
        {
          "name": "domain",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Internetdomain",
            "en": "Web domain"
          }
        },
        {
          "name": "phone",
          "type": "phone",
          "nullable": true,
          "description": {
            "de": "Telefonnummer",
            "en": "Phone number"
          }
        },
        {
          "name": "email",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "Allgemeine E-Mail-Adresse",
            "en": "General e-mail address"
          }
        },
        {
          "name": "billing_email",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "E-Mail-Adresse für Rechnungen",
            "en": "E-mail address for invoices"
          }
        },
        {
          "name": "street",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Straße und Hausnummer",
            "en": "Street and number"
          }
        },
        {
          "name": "postal_code",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Postleitzahl",
            "en": "Postal code"
          }
        },
        {
          "name": "city",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Ort",
            "en": "City"
          }
        },
        {
          "name": "country",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Land (Name)",
            "en": "Country (name)"
          }
        },
        {
          "name": "country_code",
          "type": "country",
          "nullable": true,
          "description": {
            "de": "Land als Code",
            "en": "Country code"
          }
        },
        {
          "name": "vat_id",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "USt-IdNr., ohne Leerzeichen (z. B. DE123456789)",
            "en": "VAT identification number, without spaces"
          }
        },
        {
          "name": "buyer_reference",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Käuferreferenz für die E-Rechnung (BT-10), bei Behörden die Leitweg-ID",
            "en": "Buyer reference for e-invoices (BT-10), e.g. the German Leitweg-ID"
          }
        },
        {
          "name": "einvoice_format",
          "type": "enum",
          "values": [
            "auto",
            "xrechnung"
          ],
          "nullable": false,
          "description": {
            "de": "Gewünschte E-Rechnung: auto = ZUGFeRD/Factur-X, xrechnung = XRechnung",
            "en": "Preferred e-invoice: auto = ZUGFeRD/Factur-X, xrechnung = XRechnung"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "industry",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Branche",
            "en": "Industry"
          }
        },
        {
          "name": "employee_count",
          "type": "integer",
          "nullable": true,
          "description": {
            "de": "Anzahl Mitarbeitende",
            "en": "Number of employees"
          }
        },
        {
          "name": "primary_contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Hauptansprechpartner",
            "en": "Primary contact"
          }
        },
        {
          "name": "external_ref",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Kennung im vorgelagerten System, aus dem die Firma gespiegelt wird",
            "en": "Identifier in the upstream system the company is mirrored from"
          }
        },
        {
          "name": "external_updated_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Stand im vorgelagerten System, zuletzt übernommen",
            "en": "Last state taken over from the upstream system"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "anfragen.csv",
      "description": {
        "de": "Anfragen (Leads): Interesse, das noch kein Geschäft ist.",
        "en": "Leads: interest that is not yet a deal."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehörige Firma",
            "en": "Related company"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "new",
            "contacted",
            "qualified",
            "unqualified",
            "converted",
            "lost"
          ],
          "nullable": false,
          "description": {
            "de": "Bearbeitungsstand",
            "en": "Status"
          }
        },
        {
          "name": "source",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Herkunft der Anfrage",
            "en": "Origin of the lead"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Owner (user)"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "next_follow_up_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Nächste Wiedervorlage",
            "en": "Next follow-up"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "deals.csv",
      "description": {
        "de": "Deals (Vorgänge) in einer Pipeline, mit Wert, Phase und Ausgang.",
        "en": "Deals in a pipeline, with value, stage and outcome."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "pipeline_id",
          "type": "uuid",
          "references": "pipelines.csv#id",
          "nullable": false,
          "description": {
            "de": "Pipeline",
            "en": "Pipeline"
          }
        },
        {
          "name": "stage_id",
          "type": "uuid",
          "references": "pipeline-phasen.csv#id",
          "nullable": false,
          "description": {
            "de": "Aktuelle Phase",
            "en": "Current stage"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehörige Firma",
            "en": "Related company"
          }
        },
        {
          "name": "value_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Wert in Cent der Währung",
            "en": "Value in cents of the currency"
          }
        },
        {
          "name": "currency",
          "type": "currency",
          "nullable": false,
          "description": {
            "de": "Währung",
            "en": "Currency"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "open",
            "won",
            "lost"
          ],
          "nullable": false,
          "description": {
            "de": "Offen, gewonnen oder verloren",
            "en": "Open, won or lost"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Owner (user)"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "expected_close_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Erwarteter Abschluss",
            "en": "Expected close"
          }
        },
        {
          "name": "closed_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Abgeschlossen am (gewonnen oder verloren)",
            "en": "Closed at"
          }
        },
        {
          "name": "lost_reason",
          "type": "enum",
          "values": [
            "price",
            "competitor",
            "no_need",
            "no_budget",
            "no_response",
            "timing",
            "other"
          ],
          "nullable": true,
          "description": {
            "de": "Verlustgrund: price = Preis, competitor = Wettbewerber, no_need = kein Bedarf, no_budget = kein Budget, no_response = keine Rückmeldung, timing = Zeitpunkt, other = Sonstiges",
            "en": "Reason the deal was lost"
          }
        },
        {
          "name": "lost_note",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notiz zum Verlust",
            "en": "Note on the loss"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "objekte.csv",
      "description": {
        "de": "Objekte: Geräte, Fahrzeuge, Anlagen, Verträge — was bei einem Kunden steht oder läuft.",
        "en": "Assets: devices, vehicles, installations, contracts held by a customer."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "kind",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Art des Objekts (frei benannt)",
            "en": "Kind of asset (free text)"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Bezeichnung",
            "en": "Name"
          }
        },
        {
          "name": "identifier",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Kennzeichen, Seriennummer o. Ä.",
            "en": "Identifier such as plate or serial number"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehörige Firma",
            "en": "Related company"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "acquired_on",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Angeschafft am",
            "en": "Acquired on"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Owner (user)"
          }
        },
        {
          "name": "location_id",
          "type": "uuid",
          "references": "standorte.csv#id",
          "nullable": true,
          "description": {
            "de": "Standort",
            "en": "Location"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "sms.csv",
      "description": {
        "de": "SMS an Kontakte, mit Zustellstand und Umfang.",
        "en": "Text messages to contacts, with delivery state and size."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "to_phone",
          "type": "phone",
          "nullable": false,
          "description": {
            "de": "Empfängernummer",
            "en": "Recipient number"
          }
        },
        {
          "name": "body",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Text, wie er versandt wurde (auf das SMS-Alphabet umgeschrieben)",
            "en": "Text as sent (converted to the SMS alphabet)"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "pending",
            "sent",
            "failed",
            "dead"
          ],
          "nullable": false,
          "description": {
            "de": "Versandstand: pending = wartet, sent = versandt, failed = Versuch fehlgeschlagen, dead = aufgegeben",
            "en": "Delivery state: pending, sent, failed (attempt failed), dead (given up)"
          }
        },
        {
          "name": "attempts",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Anzahl Versandversuche",
            "en": "Number of send attempts"
          }
        },
        {
          "name": "last_error",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Letzte Fehlermeldung",
            "en": "Last error message"
          }
        },
        {
          "name": "provider_message_id",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Kennung der Nachricht beim SMS-Anbieter",
            "en": "Message identifier at the SMS provider"
          }
        },
        {
          "name": "sent_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Versandt am",
            "en": "Sent at"
          }
        },
        {
          "name": "segments",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Anzahl SMS-Teile (Abrechnungseinheit)",
            "en": "Number of SMS segments"
          }
        },
        {
          "name": "encoding",
          "type": "enum",
          "values": [
            "gsm7",
            "ucs2"
          ],
          "nullable": false,
          "description": {
            "de": "Zeichensatz der SMS (GSM 7-Bit oder UCS-2)",
            "en": "SMS character set (GSM 7-bit or UCS-2)"
          }
        },
        {
          "name": "sender_phone",
          "type": "phone",
          "nullable": true,
          "description": {
            "de": "Absendernummer",
            "en": "Sender number"
          }
        },
        {
          "name": "keine_werbung",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Beim Schreiben bestätigt, dass die SMS keine Werbung enthält — verlangt, wenn die Person der Werbung widersprochen hat (werbewidersprueche.csv); ohne die Bestätigung geht die SMS an eine solche Person nicht hinaus. false = nicht bestätigt, so auch bei jeder SMS, die vor dem 01.11.2026 geschrieben wurde",
            "en": "Confirmed when writing that the text message contains no advertising — required when the person objected to direct marketing (werbewidersprueche.csv); without it the message is not sent to such a person. false = not confirmed, as for every message written before 2026-11-01"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "zahlungseingaenge.csv",
      "description": {
        "de": "Zahlungen, die zu einer Rechnung eingegangen sind.",
        "en": "Payments received against an invoice."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": false,
          "description": {
            "de": "Rechnung",
            "en": "Invoice"
          }
        },
        {
          "name": "amount_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Betrag in Cent der Belegwährung",
            "en": "Amount in cents of the currency"
          }
        },
        {
          "name": "paid_on",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Zahlungstag",
            "en": "Payment date"
          }
        },
        {
          "name": "source",
          "type": "enum",
          "values": [
            "manual",
            "datev",
            "api"
          ],
          "nullable": false,
          "description": {
            "de": "Erfasst von Hand, aus einem DATEV-Buchungsstapel oder über die Schnittstelle",
            "en": "Recorded manually, from a DATEV import or via the API"
          }
        },
        {
          "name": "reference",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Verwendungszweck oder Referenz",
            "en": "Payment reference"
          }
        },
        {
          "name": "note",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bemerkung",
            "en": "Remark"
          }
        },
        {
          "name": "import_key",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Schlüssel der importierten Buchung (verhindert doppeltes Einlesen)",
            "en": "Key of the imported booking (prevents double import)"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "freigabe-regeln.csv",
      "description": {
        "de": "Regeln, ab welchem Rabatt ein Beleg eine Freigabe braucht.",
        "en": "Rules for the discount above which a document needs approval."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name der Regel",
            "en": "Rule name"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "document.discount"
          ],
          "nullable": false,
          "description": {
            "de": "Art der Regel",
            "en": "Rule kind"
          }
        },
        {
          "name": "threshold_bp",
          "type": "integer",
          "unit": "basis_points",
          "nullable": false,
          "description": {
            "de": "Schwelle in Basispunkten (1000 = 10 %)",
            "en": "Threshold in basis points (1000 = 10 %)"
          }
        },
        {
          "name": "document_kinds",
          "type": "json",
          "nullable": false,
          "description": {
            "de": "Belegarten, für die die Regel gilt, als JSON-Array (leer = alle)",
            "en": "Document kinds the rule applies to, as JSON array (empty = all)"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "freigaben.csv",
      "description": {
        "de": "Freigabeanfragen: wer welchen Rabatt beantragt, genehmigt oder abgelehnt hat.",
        "en": "Approval requests: who requested, approved or rejected which discount."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "rule_id",
          "type": "uuid",
          "references": "freigabe-regeln.csv#id",
          "nullable": false,
          "description": {
            "de": "Regel",
            "en": "Rule"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": false,
          "description": {
            "de": "Beleg",
            "en": "Document"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "open",
            "approved",
            "rejected"
          ],
          "nullable": false,
          "description": {
            "de": "Offen, genehmigt oder abgelehnt",
            "en": "Open, approved or rejected"
          }
        },
        {
          "name": "measured_bp",
          "type": "integer",
          "unit": "basis_points",
          "nullable": false,
          "description": {
            "de": "Gemessener größter Rabatt in Basispunkten",
            "en": "Largest discount measured"
          }
        },
        {
          "name": "threshold_bp",
          "type": "integer",
          "unit": "basis_points",
          "nullable": false,
          "description": {
            "de": "Schwelle zum Zeitpunkt der Anfrage",
            "en": "Threshold at request time"
          }
        },
        {
          "name": "requested_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Beantragt von",
            "en": "Requested by"
          }
        },
        {
          "name": "requested_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Beantragt am",
            "en": "Requested at"
          }
        },
        {
          "name": "decided_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Entschieden von",
            "en": "Decided by"
          }
        },
        {
          "name": "decided_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Entschieden am",
            "en": "Decided at"
          }
        },
        {
          "name": "note",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Begründung",
            "en": "Note"
          }
        }
      ]
    },
    {
      "file": "automatisierungen.csv",
      "description": {
        "de": "Automatisierungen: Regeln „wenn Ereignis, dann Aufgabe oder Notiz“.",
        "en": "Automations: rules “when event, then task or note”."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name der Regel",
            "en": "Rule name"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "trigger_type",
          "type": "enum",
          "values": [
            "deal.stageChanged",
            "lead.created",
            "contact.created",
            "asset.created",
            "task.completed"
          ],
          "nullable": false,
          "description": {
            "de": "Auslösendes Ereignis",
            "en": "Trigger event"
          }
        },
        {
          "name": "trigger_filter",
          "type": "json",
          "nullable": false,
          "description": {
            "de": "Einengung als JSON-Objekt (Feld → Wert); {} = jedes Ereignis",
            "en": "Filter as JSON object (field → value); {} = every event"
          }
        },
        {
          "name": "action_type",
          "type": "enum",
          "values": [
            "task.create",
            "note.create"
          ],
          "nullable": false,
          "description": {
            "de": "Folge",
            "en": "Action"
          }
        },
        {
          "name": "action_config",
          "type": "json",
          "nullable": false,
          "description": {
            "de": "Einstellungen der Folge als JSON-Objekt (z. B. Titel, Fälligkeit in Tagen, Zuständigkeit)",
            "en": "Action settings as JSON object (e.g. title, due in days, assignee)"
          }
        },
        {
          "name": "last_fired_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Zuletzt ausgelöst am",
            "en": "Last fired at"
          }
        },
        {
          "name": "fired_count",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Anzahl Auslösungen",
            "en": "Number of times fired"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "automatisierungen-protokoll.csv",
      "description": {
        "de": "Protokoll der Automatisierungen: warum eine Regel ausgelöst hat oder nicht.",
        "en": "Automation log: why a rule fired or not."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "rule_id",
          "type": "uuid",
          "references": "automatisierungen.csv#id",
          "nullable": false,
          "description": {
            "de": "Regel",
            "en": "Rule"
          }
        },
        {
          "name": "event_id",
          "type": "uuid",
          "references": "systemereignisse.csv#id",
          "nullable": false,
          "description": {
            "de": "Auslösendes Ereignis",
            "en": "Triggering event"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "fired",
            "skipped",
            "failed"
          ],
          "nullable": false,
          "description": {
            "de": "Ausgelöst, übersprungen oder fehlgeschlagen",
            "en": "Fired, skipped or failed"
          }
        },
        {
          "name": "detail",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Erläuterung",
            "en": "Detail"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "abwesenheiten.csv",
      "description": {
        "de": "Abwesenheiten (Urlaub) mit Vertretung und Übergabe; ohne Grund der Abwesenheit.",
        "en": "Absences (leave) with substitute and handover; without the reason."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "user_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": false,
          "description": {
            "de": "Abwesende Person",
            "en": "Absent user"
          }
        },
        {
          "name": "substitute_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Vertretung",
            "en": "Substitute"
          }
        },
        {
          "name": "handover_to",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Person, an die Datensätze übergeben wurden",
            "en": "User the records were handed over to"
          }
        },
        {
          "name": "handed_over_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Übergeben am",
            "en": "Handed over at"
          }
        },
        {
          "name": "returned_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Zurückgegeben am",
            "en": "Handed back at"
          }
        },
        {
          "name": "from_on",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Erster Tag",
            "en": "First day"
          }
        },
        {
          "name": "to_on",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Letzter Tag",
            "en": "Last day"
          }
        },
        {
          "name": "note",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bemerkung",
            "en": "Remark"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "feste-berichte.csv",
      "description": {
        "de": "Feste Berichte: welcher Bericht wie oft an wen per Mail geht. Ohne Zahlen.",
        "en": "Scheduled reports: which report goes to whom and how often. Without figures."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "recipient",
          "type": "email",
          "nullable": false,
          "description": {
            "de": "Empfängeradresse",
            "en": "Recipient address"
          }
        },
        {
          "name": "source",
          "type": "enum",
          "values": [
            "deals",
            "leads",
            "calls"
          ],
          "nullable": false,
          "description": {
            "de": "Datenquelle des Berichts",
            "en": "Report source"
          }
        },
        {
          "name": "metric",
          "type": "enum",
          "values": [
            "count",
            "sum_value",
            "weighted_value",
            "avg_value",
            "sum_duration",
            "avg_duration"
          ],
          "nullable": false,
          "description": {
            "de": "Kennzahl",
            "en": "Metric"
          }
        },
        {
          "name": "grouping",
          "type": "enum",
          "values": [
            "none",
            "month",
            "stage",
            "pipeline",
            "owner",
            "status",
            "source",
            "direction",
            "outcome",
            "location",
            "lost_reason"
          ],
          "nullable": false,
          "description": {
            "de": "Gruppierung",
            "en": "Grouping"
          }
        },
        {
          "name": "date_field",
          "type": "enum",
          "values": [
            "created",
            "closed",
            "started"
          ],
          "nullable": false,
          "description": {
            "de": "Datumsfeld, nach dem der Zeitraum gilt",
            "en": "Date field the period applies to"
          }
        },
        {
          "name": "cadence",
          "type": "enum",
          "values": [
            "month",
            "week"
          ],
          "nullable": false,
          "description": {
            "de": "Rhythmus: monatlich oder wöchentlich",
            "en": "Monthly or weekly"
          }
        },
        {
          "name": "day_of_month",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Versandtag im Monat (1–31)",
            "en": "Day of month to send (1–31)"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "last_sent_on",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Zuletzt versandt am",
            "en": "Last sent on"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "chargen.csv",
      "description": {
        "de": "Chargen und Seriennummern von Artikeln. Der Bestand ergibt sich aus lagerbewegungen.csv.",
        "en": "Lots and serial numbers of articles. Stock is the sum of lagerbewegungen.csv."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "article_id",
          "type": "uuid",
          "references": "preisverzeichnis.csv#id",
          "nullable": false,
          "description": {
            "de": "Artikel",
            "en": "Article"
          }
        },
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "lot",
            "serial"
          ],
          "nullable": false,
          "description": {
            "de": "lot = Charge, serial = Seriennummer",
            "en": "Lot or serial"
          }
        },
        {
          "name": "code",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Chargen- bzw. Seriennummer",
            "en": "Lot or serial number"
          }
        },
        {
          "name": "expires_on",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Haltbar bis",
            "en": "Expires on"
          }
        },
        {
          "name": "note",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bemerkung",
            "en": "Remark"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "lagerbewegungen.csv",
      "description": {
        "de": "Das Bewegungsbuch des Lagers. Der Bestand ist die Summe von quantity_milli.",
        "en": "Stock movement ledger. Stock on hand is the sum of quantity_milli."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "article_id",
          "type": "uuid",
          "references": "preisverzeichnis.csv#id",
          "nullable": false,
          "description": {
            "de": "Artikel",
            "en": "Article"
          }
        },
        {
          "name": "location_id",
          "type": "uuid",
          "references": "standorte.csv#id",
          "nullable": true,
          "description": {
            "de": "Standort",
            "en": "Location"
          }
        },
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "in",
            "out",
            "correction",
            "stocktake"
          ],
          "nullable": false,
          "description": {
            "de": "in = Zugang, out = Abgang, correction = Korrektur, stocktake = Inventur",
            "en": "in, out, correction or stocktake"
          }
        },
        {
          "name": "quantity_milli",
          "type": "integer",
          "unit": "milli",
          "nullable": false,
          "description": {
            "de": "Menge in Tausendsteln, mit Vorzeichen (Abgang negativ)",
            "en": "Quantity in thousandths, signed (outgoing negative)"
          }
        },
        {
          "name": "lot_id",
          "type": "uuid",
          "references": "chargen.csv#id",
          "nullable": true,
          "description": {
            "de": "Charge oder Seriennummer",
            "en": "Lot or serial"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Beleg",
            "en": "Related document"
          }
        },
        {
          "name": "deal_id",
          "type": "uuid",
          "references": "deals.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Deal (Vorgang)",
            "en": "Related deal"
          }
        },
        {
          "name": "note",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bemerkung",
            "en": "Remark"
          }
        },
        {
          "name": "occurred_on",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Tag der Bewegung",
            "en": "Day of the movement"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "wiederkehrendes.csv",
      "description": {
        "de": "Wiederkehrende Termine (Wartung, Prüfung, Verlängerung) an einem Datensatz.",
        "en": "Recurring dates (maintenance, inspection, renewal) on a record."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "object_type",
          "type": "enum",
          "values": [
            "contact",
            "company",
            "lead",
            "deal",
            "asset"
          ],
          "nullable": false,
          "description": {
            "de": "Art des Datensatzes, an dem dies hängt",
            "en": "Type of the record this belongs to"
          }
        },
        {
          "name": "record_id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes, an dem dies hängt (Datei je nach object_type)",
            "en": "Identifier of the record this belongs to (file depends on object_type)"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "every_count",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Abstand: Anzahl",
            "en": "Interval: count"
          }
        },
        {
          "name": "every_unit",
          "type": "enum",
          "values": [
            "day",
            "week",
            "month",
            "year"
          ],
          "nullable": false,
          "description": {
            "de": "Abstand: Einheit",
            "en": "Interval: unit"
          }
        },
        {
          "name": "lead_days",
          "type": "integer",
          "unit": "days",
          "nullable": false,
          "description": {
            "de": "Vorlauf: so viele Tage vorher entsteht die Aufgabe",
            "en": "Lead time in days before the task is created"
          }
        },
        {
          "name": "anchor_on",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Ausgangstermin, von dem aus gerechnet wird",
            "en": "Anchor date the interval counts from"
          }
        },
        {
          "name": "next_due_on",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Nächster fälliger Termin",
            "en": "Next due date"
          }
        },
        {
          "name": "last_created_on",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Zuletzt Aufgabe angelegt am",
            "en": "Last task created on"
          }
        },
        {
          "name": "assignee_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Assignee"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "preisverzeichnis.csv",
      "description": {
        "de": "Artikel und Leistungen mit Preis und Steuersatz.",
        "en": "Articles and services with price and VAT rate."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "number",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Artikelnummer",
            "en": "Article number"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Bezeichnung",
            "en": "Name"
          }
        },
        {
          "name": "description",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Beschreibung",
            "en": "Description"
          }
        },
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "product",
            "service"
          ],
          "nullable": false,
          "description": {
            "de": "Ware oder Dienstleistung",
            "en": "Product or service"
          }
        },
        {
          "name": "tracks",
          "type": "enum",
          "values": [
            "lot",
            "serial"
          ],
          "nullable": true,
          "description": {
            "de": "Geführt nach Charge (lot) oder Seriennummer (serial); leer = keines",
            "en": "Tracked by lot or serial; empty = not tracked"
          }
        },
        {
          "name": "unit",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Einheit, wie sie auf dem Beleg steht",
            "en": "Unit as printed"
          }
        },
        {
          "name": "unit_code",
          "type": "unit_code",
          "nullable": true,
          "description": {
            "de": "Einheitencode nach UN/ECE Recommendation 20 (z. B. H87 = Stück)",
            "en": "Unit code per UN/ECE Recommendation 20 (e.g. H87 = piece)"
          }
        },
        {
          "name": "net_price_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Listenpreis netto in Cent",
            "en": "Net list price in cents"
          }
        },
        {
          "name": "tax_rate_bp",
          "type": "integer",
          "unit": "basis_points",
          "nullable": false,
          "description": {
            "de": "Umsatzsteuersatz in Basispunkten (1900 = 19 %)",
            "en": "VAT rate in basis points (1900 = 19 %)"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "deal-positionen.csv",
      "description": {
        "de": "Positionen eines Deals (Grundlage der Belege).",
        "en": "Line items of a deal (basis for documents)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "deal_id",
          "type": "uuid",
          "references": "deals.csv#id",
          "nullable": false,
          "description": {
            "de": "Deal",
            "en": "Deal"
          }
        },
        {
          "name": "position",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Reihenfolge",
            "en": "Order"
          }
        },
        {
          "name": "article_id",
          "type": "uuid",
          "references": "preisverzeichnis.csv#id",
          "nullable": true,
          "description": {
            "de": "Artikel; leer = frei getippt",
            "en": "Article"
          }
        },
        {
          "name": "number",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Artikelnummer",
            "en": "Article number"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Bezeichnung",
            "en": "Name"
          }
        },
        {
          "name": "unit",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Einheit, wie sie auf dem Beleg steht",
            "en": "Unit as printed"
          }
        },
        {
          "name": "unit_code",
          "type": "unit_code",
          "nullable": true,
          "description": {
            "de": "Einheitencode nach UN/ECE Recommendation 20 (z. B. H87 = Stück)",
            "en": "Unit code per UN/ECE Recommendation 20 (e.g. H87 = piece)"
          }
        },
        {
          "name": "quantity_milli",
          "type": "integer",
          "unit": "milli",
          "nullable": false,
          "description": {
            "de": "Menge in Tausendsteln (2500 = 2,5)",
            "en": "Quantity in thousandths (2500 = 2.5)"
          }
        },
        {
          "name": "net_price_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Einzelpreis netto in Cent der Belegwährung",
            "en": "Net unit price in cents of the currency"
          }
        },
        {
          "name": "tax_rate_bp",
          "type": "integer",
          "unit": "basis_points",
          "nullable": false,
          "description": {
            "de": "Umsatzsteuersatz in Basispunkten (1900 = 19 %)",
            "en": "VAT rate in basis points (1900 = 19 %)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "termine.csv",
      "description": {
        "de": "Termine im CRM.",
        "en": "Appointments in the CRM."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "starts_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Beginn",
            "en": "Start"
          }
        },
        {
          "name": "ends_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Ende",
            "en": "End"
          }
        },
        {
          "name": "place",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Ort",
            "en": "Place"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "planned",
            "held",
            "cancelled"
          ],
          "nullable": false,
          "description": {
            "de": "Geplant, stattgefunden oder abgesagt",
            "en": "Planned, held or cancelled"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehörige Firma",
            "en": "Related company"
          }
        },
        {
          "name": "deal_id",
          "type": "uuid",
          "references": "deals.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Deal (Vorgang)",
            "en": "Related deal"
          }
        },
        {
          "name": "asset_id",
          "type": "uuid",
          "references": "objekte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriges Objekt",
            "en": "Related asset"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Owner (user)"
          }
        },
        {
          "name": "location_id",
          "type": "uuid",
          "references": "standorte.csv#id",
          "nullable": true,
          "description": {
            "de": "Standort",
            "en": "Location"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "belege.csv",
      "description": {
        "de": "Angebote, Auftragsbestätigungen, Rechnungen und Stornos. Absender und Empfänger stehen als eingefrorener Stand in JSON-Spalten.",
        "en": "Quotes, order confirmations, invoices and credit notes. Sender and recipient are frozen snapshots in JSON columns."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "quote",
            "order_confirmation",
            "invoice",
            "credit_note"
          ],
          "nullable": false,
          "description": {
            "de": "Belegart: quote = Angebot, order_confirmation = Auftragsbestätigung, invoice = Rechnung, credit_note = Storno",
            "en": "Document kind: quote, order confirmation, invoice, credit note"
          }
        },
        {
          "name": "number",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Belegnummer; leer, solange Entwurf",
            "en": "Document number; empty while draft"
          }
        },
        {
          "name": "deal_id",
          "type": "uuid",
          "references": "deals.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Deal (Vorgang)",
            "en": "Related deal"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehörige Firma",
            "en": "Related company"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "draft",
            "sent",
            "accepted",
            "declined"
          ],
          "nullable": false,
          "description": {
            "de": "draft = Entwurf, sent = herausgegeben, accepted/declined = Angebot angenommen/abgelehnt",
            "en": "draft, sent (issued), accepted or declined (quotes)"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "intro",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Einleitungstext",
            "en": "Introductory text"
          }
        },
        {
          "name": "outro",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Schlusstext",
            "en": "Closing text"
          }
        },
        {
          "name": "buyer_reference",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Käuferreferenz (BT-10)",
            "en": "Buyer reference (BT-10)"
          }
        },
        {
          "name": "order_reference",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bestellnummer des Käufers (BT-13)",
            "en": "Purchase order reference (BT-13)"
          }
        },
        {
          "name": "sender_snapshot",
          "type": "json",
          "nullable": true,
          "description": {
            "de": "Absender beim Herausgeben als JSON-Objekt (name, street, postalCode, city, country, countryCode, phone, email, website, vatId, taxNumber, registerId, contactName, legal, bankName, iban, bic)",
            "en": "Sender at issue as JSON object (name, address, contact, tax and bank details)"
          }
        },
        {
          "name": "recipient_snapshot",
          "type": "json",
          "nullable": true,
          "description": {
            "de": "Empfänger beim Herausgeben als JSON-Objekt (company, person, street, postalCode, city, country, countryCode, email, vatId)",
            "en": "Recipient at issue as JSON object (company, person, address, email, VAT ID)"
          }
        },
        {
          "name": "currency",
          "type": "currency",
          "nullable": false,
          "description": {
            "de": "Währung",
            "en": "Currency"
          }
        },
        {
          "name": "valid_until",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Angebot gültig bis",
            "en": "Quote valid until"
          }
        },
        {
          "name": "issued_on",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Belegdatum",
            "en": "Issue date"
          }
        },
        {
          "name": "sent_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Herausgegeben am",
            "en": "Issued at"
          }
        },
        {
          "name": "decided_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Angebot entschieden am",
            "en": "Quote decided at"
          }
        },
        {
          "name": "service_date",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Leistungsdatum",
            "en": "Date of supply"
          }
        },
        {
          "name": "service_period_start",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Leistungszeitraum: Beginn",
            "en": "Service period: start"
          }
        },
        {
          "name": "service_period_end",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Leistungszeitraum: Ende",
            "en": "Service period: end"
          }
        },
        {
          "name": "due_date",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Zahlbar bis",
            "en": "Due date"
          }
        },
        {
          "name": "cancels_document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": true,
          "description": {
            "de": "Rechnung, die dieses Storno aufhebt",
            "en": "Invoice this credit note cancels"
          }
        },
        {
          "name": "billing_run_id",
          "type": "uuid",
          "references": "abrechnungslaeufe.csv#id",
          "nullable": true,
          "description": {
            "de": "Abrechnungslauf, aus dem der Beleg stammt",
            "en": "Billing run the document came from"
          }
        },
        {
          "name": "small_business",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Ausgestellt als Kleinunternehmer (§ 19 UStG)",
            "en": "Issued under the German small-business rule (§ 19 UStG)"
          }
        },
        {
          "name": "locked_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Festgeschrieben am (danach unveränderbar)",
            "en": "Locked at (immutable afterwards)"
          }
        },
        {
          "name": "einvoice_format",
          "type": "enum",
          "values": [
            "hybrid",
            "xrechnung"
          ],
          "nullable": true,
          "description": {
            "de": "E-Rechnung: hybrid = ZUGFeRD/Factur-X, xrechnung = XRechnung; leer = PDF ohne XML",
            "en": "E-invoice: hybrid = ZUGFeRD/Factur-X, xrechnung = XRechnung; empty = PDF only"
          }
        },
        {
          "name": "net_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Summe netto in Cent",
            "en": "Net total in cents"
          }
        },
        {
          "name": "tax_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Umsatzsteuer in Cent",
            "en": "VAT in cents"
          }
        },
        {
          "name": "gross_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Summe brutto in Cent",
            "en": "Gross total in cents"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Owner (user)"
          }
        },
        {
          "name": "location_id",
          "type": "uuid",
          "references": "standorte.csv#id",
          "nullable": true,
          "description": {
            "de": "Standort",
            "en": "Location"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "beleg-positionen.csv",
      "description": {
        "de": "Positionen der Belege.",
        "en": "Line items of documents."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": false,
          "description": {
            "de": "Beleg",
            "en": "Document"
          }
        },
        {
          "name": "position",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Reihenfolge",
            "en": "Order"
          }
        },
        {
          "name": "number",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Artikelnummer",
            "en": "Article number"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Bezeichnung",
            "en": "Name"
          }
        },
        {
          "name": "unit",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Einheit, wie sie auf dem Beleg steht",
            "en": "Unit as printed"
          }
        },
        {
          "name": "unit_code",
          "type": "unit_code",
          "nullable": true,
          "description": {
            "de": "Einheitencode nach UN/ECE Recommendation 20 (z. B. H87 = Stück)",
            "en": "Unit code per UN/ECE Recommendation 20 (e.g. H87 = piece)"
          }
        },
        {
          "name": "quantity_milli",
          "type": "integer",
          "unit": "milli",
          "nullable": false,
          "description": {
            "de": "Menge in Tausendsteln (2500 = 2,5)",
            "en": "Quantity in thousandths (2500 = 2.5)"
          }
        },
        {
          "name": "net_price_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Einzelpreis netto in Cent der Belegwährung",
            "en": "Net unit price in cents of the currency"
          }
        },
        {
          "name": "tax_rate_bp",
          "type": "integer",
          "unit": "basis_points",
          "nullable": false,
          "description": {
            "de": "Umsatzsteuersatz in Basispunkten (1900 = 19 %)",
            "en": "VAT rate in basis points (1900 = 19 %)"
          }
        },
        {
          "name": "period_start",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Eigener Leistungszeitraum: Beginn",
            "en": "Own service period: start"
          }
        },
        {
          "name": "period_end",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Eigener Leistungszeitraum: Ende",
            "en": "Own service period: end"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "abo-vertraege.csv",
      "description": {
        "de": "Abo-Verträge der monatlichen bzw. jährlichen Abrechnung.",
        "en": "Subscription contracts for monthly or yearly billing."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": false,
          "description": {
            "de": "Kunde (Firma)",
            "en": "Customer (company)"
          }
        },
        {
          "name": "source",
          "type": "enum",
          "values": [
            "portal",
            "crm"
          ],
          "nullable": false,
          "description": {
            "de": "portal = aus dem vorgelagerten Partnerportal gespiegelt, crm = nur im CRM",
            "en": "portal = mirrored from the upstream partner portal, crm = CRM only"
          }
        },
        {
          "name": "external_ref",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Kennung im vorgelagerten System",
            "en": "Upstream identifier"
          }
        },
        {
          "name": "article_id",
          "type": "uuid",
          "references": "preisverzeichnis.csv#id",
          "nullable": true,
          "description": {
            "de": "Artikel",
            "en": "Article"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Bezeichnung",
            "en": "Title"
          }
        },
        {
          "name": "billing_period",
          "type": "enum",
          "values": [
            "monthly",
            "yearly"
          ],
          "nullable": false,
          "description": {
            "de": "Abrechnungsrhythmus",
            "en": "Billing period"
          }
        },
        {
          "name": "setup_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Einrichtungsgebühr netto in Cent",
            "en": "Net setup fee in cents"
          }
        },
        {
          "name": "bill_setup",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Einrichtung wird berechnet",
            "en": "Setup fee is billed"
          }
        },
        {
          "name": "tax_rate_bp",
          "type": "integer",
          "unit": "basis_points",
          "nullable": false,
          "description": {
            "de": "Umsatzsteuersatz in Basispunkten (1900 = 19 %)",
            "en": "VAT rate in basis points (1900 = 19 %)"
          }
        },
        {
          "name": "start_date",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Vertragsbeginn",
            "en": "Contract start"
          }
        },
        {
          "name": "billing_start",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Abrechnung ab",
            "en": "Billing starts"
          }
        },
        {
          "name": "auto_invoice",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Wird im Monatslauf abgerechnet",
            "en": "Billed by the monthly run"
          }
        },
        {
          "name": "send_mode",
          "type": "enum",
          "values": [
            "draft",
            "auto"
          ],
          "nullable": false,
          "description": {
            "de": "Rechnung als Entwurf oder automatisch",
            "en": "Invoice as draft or automatic"
          }
        },
        {
          "name": "payment_method",
          "type": "enum",
          "values": [
            "transfer",
            "direct_debit"
          ],
          "nullable": false,
          "description": {
            "de": "Überweisung oder Lastschrift",
            "en": "Bank transfer or direct debit"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "active",
            "paused",
            "cancelled",
            "completed"
          ],
          "nullable": false,
          "description": {
            "de": "Aktiv, pausiert, gekündigt oder beendet",
            "en": "Active, paused, cancelled or completed"
          }
        },
        {
          "name": "cancelled_at",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Letzter Vertragstag bei Kündigung/Ende",
            "en": "Last day when cancelled"
          }
        },
        {
          "name": "paused_from",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Laufende Pause: ab",
            "en": "Current pause: from"
          }
        },
        {
          "name": "resumed_on",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Laufende Pause: wieder ab",
            "en": "Current pause: resumes on"
          }
        },
        {
          "name": "enabled_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Abrechnung eingeschaltet von",
            "en": "Billing enabled by"
          }
        },
        {
          "name": "enabled_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Abrechnung eingeschaltet am",
            "en": "Billing enabled at"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "source_updated_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Stand im vorgelagerten System, zuletzt übernommen",
            "en": "Last upstream state taken over"
          }
        },
        {
          "name": "open_periods_ack_until",
          "type": "month",
          "nullable": true,
          "description": {
            "de": "Offene Monate bis einschließlich dieses Monats freigegeben",
            "en": "Open months released up to and including this month"
          }
        }
      ]
    },
    {
      "file": "abo-pausen.csv",
      "description": {
        "de": "Frühere, beendete Pausen eines Abo-Vertrags (ab paused_from bis vor resumed_on).",
        "en": "Earlier, ended pauses of a contract (from paused_from until before resumed_on)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "contract_id",
          "type": "uuid",
          "references": "abo-vertraege.csv#id",
          "nullable": false,
          "description": {
            "de": "Vertrag",
            "en": "Contract"
          }
        },
        {
          "name": "paused_from",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Pause ab",
            "en": "Paused from"
          }
        },
        {
          "name": "resumed_on",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Wieder ab",
            "en": "Resumed on"
          }
        },
        {
          "name": "source",
          "type": "enum",
          "values": [
            "crm",
            "portal"
          ],
          "nullable": false,
          "description": {
            "de": "Erfasst im CRM oder vom Portal",
            "en": "Recorded in CRM or portal"
          }
        },
        {
          "name": "recorded_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Erfasst von",
            "en": "Recorded by"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "voided_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Aufgehoben am; dann zählt die Zeile nicht",
            "en": "Voided at"
          }
        },
        {
          "name": "voided_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Aufgehoben von",
            "en": "Voided by"
          }
        }
      ]
    },
    {
      "file": "abo-preise.csv",
      "description": {
        "de": "Preis eines Abo-Vertrags je Periode ab einem Monat (beim Jahresvertrag der Jahresbetrag).",
        "en": "Contract price per period from a month on (yearly contracts: annual amount)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "contract_id",
          "type": "uuid",
          "references": "abo-vertraege.csv#id",
          "nullable": false,
          "description": {
            "de": "Vertrag",
            "en": "Contract"
          }
        },
        {
          "name": "valid_from_month",
          "type": "month",
          "nullable": false,
          "description": {
            "de": "Gültig ab Monat",
            "en": "Valid from month"
          }
        },
        {
          "name": "price_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Preis netto je Periode in Cent",
            "en": "Net price per period in cents"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "abo-zusatzposten.csv",
      "description": {
        "de": "Zusatzposten eines Abo-Vertrags (z. B. weitere Zugänge).",
        "en": "Add-ons of a contract (e.g. extra seats)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "contract_id",
          "type": "uuid",
          "references": "abo-vertraege.csv#id",
          "nullable": false,
          "description": {
            "de": "Vertrag",
            "en": "Contract"
          }
        },
        {
          "name": "article_id",
          "type": "uuid",
          "references": "preisverzeichnis.csv#id",
          "nullable": true,
          "description": {
            "de": "Artikel",
            "en": "Article"
          }
        },
        {
          "name": "text",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Bezeichnung",
            "en": "Description"
          }
        },
        {
          "name": "quantity",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Anzahl",
            "en": "Quantity"
          }
        },
        {
          "name": "unit_price_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Monatspreis je Stück netto in Cent (auch bei Jahresverträgen)",
            "en": "Net monthly price per unit in cents (also for yearly contracts)"
          }
        },
        {
          "name": "from_day",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Ab Tag",
            "en": "From day"
          }
        },
        {
          "name": "until_day",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Bis einschließlich Tag",
            "en": "Until day (inclusive)"
          }
        },
        {
          "name": "source",
          "type": "enum",
          "values": [
            "manual",
            "mailagent"
          ],
          "nullable": false,
          "description": {
            "de": "Erfasst von Hand oder vom E-Mail-Agenten",
            "en": "Recorded manually or by the e-mail agent"
          }
        },
        {
          "name": "external_ref",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Kennung im vorgelagerten System",
            "en": "Upstream identifier"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "abrechnungslaeufe.csv",
      "description": {
        "de": "Monatliche Abrechnungsläufe (einer je Monat).",
        "en": "Monthly billing runs (one per month)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "run_month",
          "type": "month",
          "nullable": false,
          "description": {
            "de": "Abgerechneter Monat",
            "en": "Billed month"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "running",
            "done"
          ],
          "nullable": false,
          "description": {
            "de": "Läuft oder fertig",
            "en": "Running or done"
          }
        },
        {
          "name": "source",
          "type": "enum",
          "values": [
            "worker",
            "manual"
          ],
          "nullable": false,
          "description": {
            "de": "Automatisch oder von Hand gestartet",
            "en": "Started automatically or manually"
          }
        },
        {
          "name": "started_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Gestartet von",
            "en": "Started by"
          }
        },
        {
          "name": "started_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Gestartet am",
            "en": "Started at"
          }
        },
        {
          "name": "finished_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Beendet am",
            "en": "Finished at"
          }
        },
        {
          "name": "summary",
          "type": "json",
          "nullable": false,
          "description": {
            "de": "Zusammenfassung als JSON-Objekt (Zähler je Ergebnis)",
            "en": "Summary as JSON object (counters per outcome)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "abrechnungslauf-posten.csv",
      "description": {
        "de": "Ergebnis eines Abrechnungslaufs je Firma.",
        "en": "Result of a billing run per company."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "run_id",
          "type": "uuid",
          "references": "abrechnungslaeufe.csv#id",
          "nullable": false,
          "description": {
            "de": "Abrechnungslauf",
            "en": "Billing run"
          }
        },
        {
          "name": "company_id",
          "type": "uuid",
          "references": "firmen.csv#id",
          "nullable": false,
          "description": {
            "de": "Firma",
            "en": "Company"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "planned",
            "blocked",
            "draft",
            "failed",
            "discarded"
          ],
          "nullable": false,
          "description": {
            "de": "Geplant, gesperrt, Entwurf erzeugt, fehlgeschlagen oder verworfen",
            "en": "Planned, blocked, draft created, failed or discarded"
          }
        },
        {
          "name": "block_reason",
          "type": "enum",
          "values": [
            "company_missing",
            "address_incomplete",
            "country_not_de",
            "too_many_open_periods",
            "missing_price",
            "missing_cancel_date",
            "zero_tax_rate"
          ],
          "nullable": true,
          "description": {
            "de": "Grund der Sperre",
            "en": "Reason for blocking"
          }
        },
        {
          "name": "blocked_contracts",
          "type": "json",
          "nullable": false,
          "description": {
            "de": "Gesperrte Verträge als JSON-Array von Objekten (contractId, reason, openPeriods)",
            "en": "Blocked contracts as JSON array of objects (contractId, reason, openPeriods)"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": true,
          "description": {
            "de": "Erzeugter Rechnungsentwurf",
            "en": "Invoice draft created"
          }
        },
        {
          "name": "net_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": true,
          "description": {
            "de": "Summe netto in Cent",
            "en": "Net total in cents"
          }
        },
        {
          "name": "error",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Fehlermeldung",
            "en": "Error message"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "abgerechnet.csv",
      "description": {
        "de": "Welche Abrechnungsperiode schon berechnet ist und auf welchem Beleg — verhindert Doppelrechnungen.",
        "en": "Which billing period has been billed on which document — prevents double billing."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "billing_key",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Eindeutiger Schlüssel der Periode",
            "en": "Unique key of the period"
          }
        },
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "setup",
            "contract",
            "addon"
          ],
          "nullable": false,
          "description": {
            "de": "Einrichtung, Vertragsperiode oder Zusatzposten",
            "en": "Setup, contract period or add-on"
          }
        },
        {
          "name": "contract_id",
          "type": "uuid",
          "references": "abo-vertraege.csv#id",
          "nullable": false,
          "description": {
            "de": "Vertrag",
            "en": "Contract"
          }
        },
        {
          "name": "addon_id",
          "type": "uuid",
          "references": "abo-zusatzposten.csv#id",
          "nullable": true,
          "description": {
            "de": "Zusatzposten",
            "en": "Add-on"
          }
        },
        {
          "name": "run_id",
          "type": "uuid",
          "references": "abrechnungslaeufe.csv#id",
          "nullable": true,
          "description": {
            "de": "Abrechnungslauf",
            "en": "Billing run"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": true,
          "description": {
            "de": "Rechnung",
            "en": "Invoice"
          }
        },
        {
          "name": "document_item_id",
          "type": "uuid",
          "references": "beleg-positionen.csv#id",
          "nullable": true,
          "description": {
            "de": "Rechnungsposition",
            "en": "Invoice line"
          }
        },
        {
          "name": "period_start",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Periode: Beginn",
            "en": "Period start"
          }
        },
        {
          "name": "period_end",
          "type": "date",
          "nullable": false,
          "description": {
            "de": "Periode: Ende",
            "en": "Period end"
          }
        },
        {
          "name": "amount_cents",
          "type": "integer",
          "unit": "cent",
          "nullable": false,
          "description": {
            "de": "Betrag netto in Cent",
            "en": "Net amount in cents"
          }
        },
        {
          "name": "released_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Freigegeben am (wieder abrechenbar)",
            "en": "Released at (billable again)"
          }
        },
        {
          "name": "release_reason",
          "type": "enum",
          "values": [
            "draft_discarded",
            "storno_rebill"
          ],
          "nullable": true,
          "description": {
            "de": "Grund der Freigabe: Entwurf verworfen oder Storno mit Neuabrechnung",
            "en": "Release reason: draft discarded or credit note with rebilling"
          }
        },
        {
          "name": "released_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Freigegeben von",
            "en": "Released by"
          }
        },
        {
          "name": "rebill_on_storno_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": true,
          "description": {
            "de": "Storno, mit dem neu abgerechnet wird",
            "en": "Credit note triggering rebilling"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "belegnummern.csv",
      "description": {
        "de": "Stand der Nummernkreise je Belegart und Jahr.",
        "en": "State of the number ranges per document kind and year."
      },
      "columns": [
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "quote",
            "order_confirmation",
            "invoice",
            "credit_note"
          ],
          "nullable": false,
          "description": {
            "de": "Belegart",
            "en": "Document kind"
          }
        },
        {
          "name": "year",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Jahr",
            "en": "Year"
          }
        },
        {
          "name": "last_no",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Zuletzt vergebene laufende Nummer",
            "en": "Last sequence number issued"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "briefvorlagen.csv",
      "description": {
        "de": "Vorlagen für Einleitung und Schluss je Belegart.",
        "en": "Templates for intro and closing text per document kind."
      },
      "columns": [
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "quote",
            "order_confirmation",
            "invoice",
            "credit_note"
          ],
          "nullable": false,
          "description": {
            "de": "Belegart",
            "en": "Document kind"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "intro",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Einleitungstext (mit Platzhaltern)",
            "en": "Intro text (with placeholders)"
          }
        },
        {
          "name": "outro",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Schlusstext (mit Platzhaltern)",
            "en": "Closing text (with placeholders)"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "pipelines.csv",
      "description": {
        "de": "Pipelines (Abfolgen von Phasen für Deals).",
        "en": "Pipelines (sequences of deal stages)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "is_default",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Standard-Pipeline",
            "en": "Default pipeline"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "pipeline-phasen.csv",
      "description": {
        "de": "Phasen einer Pipeline.",
        "en": "Stages of a pipeline."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "pipeline_id",
          "type": "uuid",
          "references": "pipelines.csv#id",
          "nullable": false,
          "description": {
            "de": "Pipeline",
            "en": "Pipeline"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "position",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Reihenfolge",
            "en": "Order"
          }
        },
        {
          "name": "probability",
          "type": "integer",
          "unit": "percent",
          "nullable": true,
          "description": {
            "de": "Abschlusswahrscheinlichkeit in Prozent (0–100)",
            "en": "Win probability in percent (0–100)"
          }
        },
        {
          "name": "is_won",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Phase bedeutet „gewonnen“",
            "en": "Stage means won"
          }
        },
        {
          "name": "is_lost",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Phase bedeutet „verloren“",
            "en": "Stage means lost"
          }
        }
      ]
    },
    {
      "file": "anrufe.csv",
      "description": {
        "de": "Telefonate, z. B. vom Sprachassistenten, mit Ergebnis und vereinbartem Termin.",
        "en": "Phone calls, e.g. from the voice assistant, with outcome and agreed appointment."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "external_id",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Kennung im liefernden System",
            "en": "Identifier in the source system"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "agent_id",
          "type": "uuid",
          "references": "vertriebspartner.csv#id",
          "nullable": true,
          "description": {
            "de": "Vertriebspartner",
            "en": "Sales agent"
          }
        },
        {
          "name": "reached",
          "type": "boolean",
          "nullable": true,
          "description": {
            "de": "Gesprächspartner erreicht; leer = unbekannt",
            "en": "Reached; empty = unknown"
          }
        },
        {
          "name": "direction",
          "type": "enum",
          "values": [
            "inbound",
            "outbound"
          ],
          "nullable": false,
          "description": {
            "de": "Eingehend oder ausgehend",
            "en": "Inbound or outbound"
          }
        },
        {
          "name": "from_number",
          "type": "phone",
          "nullable": true,
          "description": {
            "de": "Anrufende Nummer",
            "en": "Caller number"
          }
        },
        {
          "name": "to_number",
          "type": "phone",
          "nullable": true,
          "description": {
            "de": "Angerufene Nummer",
            "en": "Called number"
          }
        },
        {
          "name": "started_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Beginn",
            "en": "Start"
          }
        },
        {
          "name": "ended_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Ende",
            "en": "End"
          }
        },
        {
          "name": "duration_seconds",
          "type": "integer",
          "unit": "seconds",
          "nullable": true,
          "description": {
            "de": "Dauer in Sekunden",
            "en": "Duration in seconds"
          }
        },
        {
          "name": "status",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Status, wie vom Telefonsystem gemeldet",
            "en": "Status as reported by telephony"
          }
        },
        {
          "name": "summary",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Zusammenfassung",
            "en": "Summary"
          }
        },
        {
          "name": "intent",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Anliegen",
            "en": "Intent"
          }
        },
        {
          "name": "outcome",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Ergebnis",
            "en": "Outcome"
          }
        },
        {
          "name": "department",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Abteilung",
            "en": "Department"
          }
        },
        {
          "name": "follow_up_required",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Rückruf nötig",
            "en": "Follow-up required"
          }
        },
        {
          "name": "appointment_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Vereinbarter Termin",
            "en": "Agreed appointment"
          }
        },
        {
          "name": "appointment_status",
          "type": "enum",
          "values": [
            "confirmed",
            "tentative",
            "cancelled",
            "held",
            "no_show"
          ],
          "nullable": true,
          "description": {
            "de": "Stand des vereinbarten Termins",
            "en": "State of the agreed appointment"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "gespraechsprotokolle.csv",
      "description": {
        "de": "Wortlaut der Gespräche (im System verschlüsselt, im Export lesbar).",
        "en": "Call transcripts (encrypted at rest, plain text in the export)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "call_id",
          "type": "uuid",
          "references": "anrufe.csv#id",
          "nullable": false,
          "description": {
            "de": "Anruf",
            "en": "Call"
          }
        },
        {
          "name": "content",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Wortlaut",
            "en": "Transcript text"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "expires_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Wird gelöscht ab",
            "en": "Scheduled deletion"
          }
        }
      ]
    },
    {
      "file": "verarbeitungszwecke.csv",
      "description": {
        "de": "Zwecke, zu denen personenbezogene Daten verarbeitet werden.",
        "en": "Purposes for which personal data are processed."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name des Zwecks",
            "en": "Purpose name"
          }
        },
        {
          "name": "description",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Beschreibung",
            "en": "Description"
          }
        },
        {
          "name": "affects_email",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Ein Widerruf zu diesem Zweck sperrt den E-Mail-Versand an den Kontakt",
            "en": "Withdrawal for this purpose blocks e-mail to the contact"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "einwilligungen.csv",
      "description": {
        "de": "Rechtsgrundlage je Kontakt und Zweck, mit Einwilligung und Widerruf.",
        "en": "Legal basis per contact and purpose, with consent and withdrawal."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": false,
          "description": {
            "de": "Kontakt",
            "en": "Contact"
          }
        },
        {
          "name": "purpose_id",
          "type": "uuid",
          "references": "verarbeitungszwecke.csv#id",
          "nullable": false,
          "description": {
            "de": "Zweck",
            "en": "Purpose"
          }
        },
        {
          "name": "legal_basis",
          "type": "enum",
          "values": [
            "consent",
            "contract",
            "legal_obligation",
            "vital_interest",
            "public_task",
            "legitimate_interest"
          ],
          "nullable": false,
          "description": {
            "de": "Rechtsgrundlage nach Art. 6 Abs. 1 DSGVO",
            "en": "Legal basis under Art. 6(1) GDPR"
          }
        },
        {
          "name": "consent_given",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Einwilligung erteilt",
            "en": "Consent given"
          }
        },
        {
          "name": "source",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Herkunft der Angabe",
            "en": "Source of the record"
          }
        },
        {
          "name": "note",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bemerkung",
            "en": "Remark"
          }
        },
        {
          "name": "granted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Erteilt am",
            "en": "Granted at"
          }
        },
        {
          "name": "withdrawn_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Widerrufen am",
            "en": "Withdrawn at"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "werbewidersprueche.csv",
      "description": {
        "de": "Werbewidersprüche (Art. 21 Abs. 3 DSGVO): die Sperrliste gegen Direktwerbung, eine Zeile je Kennung (Telefonnummer, E-Mail-Adresse oder Firmen-Domain) und Umfang. Sie gilt auch für Kontakte, die später angelegt werden, und bleibt bestehen, wenn der Kontakt gelöscht wird. Eine Zeile wird nie gelöscht, nur aufgehoben. Die Kennung selbst steht im System nur als Schlüsselhash, der nur in dieser Installation etwas bedeutet — er ist nicht in der Datei; hint zeigt sie absichtlich unvollständig. Wer die Sperrliste in ein anderes System übernimmt, trägt die Widersprüche dort anhand der Kontakte neu ein.",
        "en": "Objections to direct marketing (Art. 21(3) GDPR): the suppression list, one row per identifier (phone number, e-mail address or company domain) and scope. It also applies to contacts created later and stays when the contact is deleted. A row is never deleted, only lifted. The identifier itself is stored only as a keyed hash that means something only in this installation — it is not in the file; hint shows it deliberately incomplete. Whoever moves the list to another system records the objections there again from the contacts."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "kind",
          "type": "enum",
          "values": [
            "phone",
            "email",
            "domain"
          ],
          "nullable": false,
          "description": {
            "de": "Art der Kennung: phone = Telefonnummer, email = E-Mail-Adresse, domain = Domain einer geschäftlichen E-Mail-Adresse (z. B. firma.de)",
            "en": "Kind of identifier: phone = phone number, email = e-mail address, domain = domain of a business e-mail address (e.g. firma.de)"
          }
        },
        {
          "name": "scope",
          "type": "enum",
          "values": [
            "person",
            "unternehmen"
          ],
          "nullable": false,
          "description": {
            "de": "Umfang: person = Telefon und E-Mail der Person; unternehmen (Vorgabe) = dazu die Firmen-Domain (nie die eines Freemail-Anbieters) und die Telefonnummer ihrer Firma",
            "en": "Scope: person = the person's phone and e-mail; unternehmen (company, default) = also the company domain (never a free-mail provider's) and the phone number of their company"
          }
        },
        {
          "name": "hint",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Die Kennung, absichtlich unvollständig (z. B. „+49 151 ••••• 78“, „a•••@firma.de“, „firma.de“); leer, sobald ein passender Kontakt gelöscht oder anonymisiert wurde",
            "en": "The identifier, deliberately incomplete (e.g. “+49 151 ••••• 78”, “a•••@firma.de”, “firma.de”); empty once a matching contact was deleted or anonymised"
          }
        },
        {
          "name": "objected_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Wann die Person widersprochen hat — nicht, wann es eingetragen wurde (von Hand mit Tagesangabe: Beginn dieses Tages, deutsche Zeit)",
            "en": "When the person objected — not when it was recorded (entered by hand with a day: the start of that day, German time)"
          }
        },
        {
          "name": "source",
          "type": "enum",
          "values": [
            "portal",
            "manual"
          ],
          "nullable": false,
          "description": {
            "de": "Herkunft: portal = aus einem Verkaufsanruf, den das Partnerportal gemeldet hat, manual = von Hand im CRM eingetragen",
            "en": "Source: portal = from a sales call reported by the partner portal, manual = entered by hand in the CRM"
          }
        },
        {
          "name": "source_ref",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bei portal die Kennung des Anrufs im liefernden System (external_id in anrufe.csv); sonst leer. Geleert, sobald ein passender Kontakt gelöscht oder anonymisiert wurde",
            "en": "For portal the call's identifier in the source system (external_id in anrufe.csv); otherwise empty. Cleared once a matching contact was deleted or anonymised"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Wer eingetragen hat; leer beim nachträglichen Abgleich mit den Anrufen oder wenn der Benutzer gelöscht ist",
            "en": "Who recorded it; empty when added by the later reconciliation with the calls or when the user was deleted"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "review_due_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Wann gefragt wird, ob noch Direktwerbung betrieben wird: Widerspruch plus drei Jahre, nach jeder Bestätigung erneut drei Jahre",
            "en": "When the organisation is asked whether it still does direct marketing: objection plus three years, then three years after each confirmation"
          }
        },
        {
          "name": "lifted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Aufgehoben am; leer = der Widerspruch gilt",
            "en": "Lifted at; empty = the objection applies"
          }
        },
        {
          "name": "lifted_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Wer aufgehoben hat; leer, wenn nicht aufgehoben oder der Benutzer gelöscht ist",
            "en": "Who lifted it; empty if not lifted or the user was deleted"
          }
        },
        {
          "name": "lift_grund",
          "type": "enum",
          "values": [
            "zurueckgenommen",
            "irrtum"
          ],
          "nullable": true,
          "description": {
            "de": "Grund des Aufhebens: zurueckgenommen = die Person hat ihren Widerspruch zurückgenommen, irrtum = nie widersprochen, falsch eingetragen; leer, wenn nicht aufgehoben",
            "en": "Reason for lifting: zurueckgenommen = the person withdrew the objection, irrtum = never objected, recorded by mistake; empty if not lifted"
          }
        },
        {
          "name": "lift_datum",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Nur bei zurueckgenommen: der Tag (deutsche Zeit), an dem die Person zurückgenommen hat",
            "en": "Only for zurueckgenommen: the day (German time) on which the person withdrew"
          }
        },
        {
          "name": "lift_nachweis",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bei zurueckgenommen Form und Beleg der Rücknahme (z. B. „Mail vom 03.11.2026“), bei irrtum die Erklärung; leer, wenn nicht aufgehoben",
            "en": "For zurueckgenommen the form and evidence of the withdrawal (e.g. “Mail vom 03.11.2026”), for irrtum the explanation; empty if not lifted"
          }
        }
      ]
    },
    {
      "file": "aufgaben.csv",
      "description": {
        "de": "Aufgaben und Wiedervorlagen.",
        "en": "Tasks and follow-ups."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "title",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Titel",
            "en": "Title"
          }
        },
        {
          "name": "notes",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Notizen (Freitext)",
            "en": "Notes (free text)"
          }
        },
        {
          "name": "due_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Fällig am",
            "en": "Due at"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "open",
            "done"
          ],
          "nullable": false,
          "description": {
            "de": "Offen oder erledigt",
            "en": "Open or done"
          }
        },
        {
          "name": "completed_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Erledigt am",
            "en": "Completed at"
          }
        },
        {
          "name": "lead_id",
          "type": "uuid",
          "references": "anfragen.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehörige Anfrage",
            "en": "Related lead"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Zuständige Person",
            "en": "Owner (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "notizen.csv",
      "description": {
        "de": "Notizen an Kontakten, Firmen, Anfragen, Deals und Objekten.",
        "en": "Notes on contacts, companies, leads, deals and assets."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "object_type",
          "type": "enum",
          "values": [
            "contact",
            "company",
            "lead",
            "deal",
            "asset"
          ],
          "nullable": false,
          "description": {
            "de": "Art des Datensatzes, an dem dies hängt",
            "en": "Type of the record this belongs to"
          }
        },
        {
          "name": "record_id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes, an dem dies hängt (Datei je nach object_type)",
            "en": "Identifier of the record this belongs to (file depends on object_type)"
          }
        },
        {
          "name": "body",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Text der Notiz",
            "en": "Note text"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "beleg-dateien.csv",
      "description": {
        "de": "Abgelegte Beleg-PDFs: Größe und Fingerabdruck. Die Dateien selbst liefert das Dateipaket.",
        "en": "Stored document PDFs: size and fingerprint. The files are in the file package."
      },
      "columns": [
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": false,
          "description": {
            "de": "Beleg",
            "en": "Document"
          }
        },
        {
          "name": "sha256",
          "type": "sha256",
          "nullable": false,
          "description": {
            "de": "SHA-256 der PDF-Datei",
            "en": "SHA-256 of the PDF file"
          }
        },
        {
          "name": "bytes",
          "type": "integer",
          "unit": "bytes",
          "nullable": false,
          "description": {
            "de": "Größe in Bytes",
            "en": "Size in bytes"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Abgelegt am",
            "en": "Stored at"
          }
        }
      ]
    },
    {
      "file": "e-rechnungen.csv",
      "description": {
        "de": "Ausgestellte E-Rechnungen (XML): Spezifikation, Größe, Fingerabdruck.",
        "en": "Issued e-invoices (XML): specification, size, fingerprint."
      },
      "columns": [
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": false,
          "description": {
            "de": "Rechnung oder Storno",
            "en": "Invoice or credit note"
          }
        },
        {
          "name": "guideline_id",
          "type": "enum",
          "values": [
            "urn:cen.eu:en16931:2017",
            "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"
          ],
          "nullable": false,
          "description": {
            "de": "Kennung der Spezifikation (BT-24)",
            "en": "Specification identifier (BT-24)"
          }
        },
        {
          "name": "sha256",
          "type": "sha256",
          "nullable": false,
          "description": {
            "de": "SHA-256 der XML-Datei",
            "en": "SHA-256 of the XML file"
          }
        },
        {
          "name": "bytes",
          "type": "integer",
          "unit": "bytes",
          "nullable": false,
          "description": {
            "de": "Größe in Bytes",
            "en": "Size in bytes"
          }
        },
        {
          "name": "generator_version",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Fassung des Erzeugers der XML",
            "en": "Version of the XML generator"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Ausgestellt am",
            "en": "Issued at"
          }
        }
      ]
    },
    {
      "file": "dateien.csv",
      "description": {
        "de": "Hochgeladene Dateien: Name, Typ, Größe. Die Dateien selbst liefert das Dateipaket.",
        "en": "Uploaded files: name, type, size. The files are in the file package."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "object_type",
          "type": "enum",
          "values": [
            "contact",
            "company",
            "lead",
            "deal",
            "asset"
          ],
          "nullable": false,
          "description": {
            "de": "Art des Datensatzes, an dem dies hängt",
            "en": "Type of the record this belongs to"
          }
        },
        {
          "name": "record_id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes, an dem dies hängt (Datei je nach object_type)",
            "en": "Identifier of the record this belongs to (file depends on object_type)"
          }
        },
        {
          "name": "filename",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Ursprünglicher Dateiname",
            "en": "Original file name"
          }
        },
        {
          "name": "content_type",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "MIME-Typ beim Hochladen",
            "en": "MIME type at upload"
          }
        },
        {
          "name": "size_bytes",
          "type": "integer",
          "unit": "bytes",
          "nullable": false,
          "description": {
            "de": "Größe in Bytes",
            "en": "Size in bytes"
          }
        },
        {
          "name": "uploaded_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Hochgeladen von",
            "en": "Uploaded by"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "mails.csv",
      "description": {
        "de": "Ein- und ausgehende E-Mails zu Kontakten.",
        "en": "Incoming and outgoing e-mails of contacts."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "direction",
          "type": "enum",
          "values": [
            "out",
            "in"
          ],
          "nullable": false,
          "description": {
            "de": "out = von Ihnen, in = an Sie",
            "en": "out = sent, in = received"
          }
        },
        {
          "name": "to_email",
          "type": "email",
          "nullable": false,
          "description": {
            "de": "Empfängeradresse",
            "en": "Recipient address"
          }
        },
        {
          "name": "from_email",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "Absenderadresse (eingehend)",
            "en": "Sender address (incoming)"
          }
        },
        {
          "name": "sender_address",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "Postfach, aus dem gesendet wurde",
            "en": "Mailbox it was sent from"
          }
        },
        {
          "name": "keine_werbung",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Beim Schreiben bestätigt, dass die Mail keine Werbung und keine werblichen Zusätze enthält — verlangt bei einer Mail oder einem Angebot an eine Person, die der Werbung widersprochen hat (werbewidersprueche.csv), nicht bei Rechnung, Storno und Auftragsbestätigung; ohne die Bestätigung geht eine solche Mail nicht hinaus. false = nicht bestätigt, so auch bei eingegangenen Mails und jeder Mail, die vor dem 01.11.2026 geschrieben wurde",
            "en": "Confirmed when writing that the e-mail contains no advertising and no promotional additions — required for an e-mail or a quote to a person who objected to direct marketing (werbewidersprueche.csv), not for invoices, cancellations and order confirmations; without it such an e-mail is not sent. false = not confirmed, as for incoming e-mails and every e-mail written before 2026-11-01"
          }
        },
        {
          "name": "subject",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Betreff",
            "en": "Subject"
          }
        },
        {
          "name": "body",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Text",
            "en": "Body"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "pending",
            "sent",
            "failed",
            "dead",
            "received"
          ],
          "nullable": false,
          "description": {
            "de": "Versandstand; received = eingegangen",
            "en": "Delivery state; received = incoming"
          }
        },
        {
          "name": "attempts",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Anzahl Versandversuche",
            "en": "Number of send attempts"
          }
        },
        {
          "name": "last_error",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Letzte Fehlermeldung",
            "en": "Last error message"
          }
        },
        {
          "name": "provider_message_id",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Kennung der Nachricht (Message-ID)",
            "en": "Message ID"
          }
        },
        {
          "name": "in_reply_to_id",
          "type": "uuid",
          "references": "mails.csv#id",
          "nullable": true,
          "description": {
            "de": "Antwort auf diese Mail",
            "en": "Reply to this e-mail"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": true,
          "description": {
            "de": "Mit dieser Mail verschickter Beleg",
            "en": "Document sent with it"
          }
        },
        {
          "name": "sent_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Versandt am",
            "en": "Sent at"
          }
        },
        {
          "name": "created_by",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Angelegt von",
            "en": "Created by (user)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "mail-anhaenge.csv",
      "description": {
        "de": "Welche Mail welchen Beleg als Anhang trug — Verweis, Dateiname, Größe, Fingerabdruck.",
        "en": "Which e-mail carried which document as attachment — reference, name, size, fingerprint."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "email_id",
          "type": "uuid",
          "references": "mails.csv#id",
          "nullable": false,
          "description": {
            "de": "Mail",
            "en": "E-mail"
          }
        },
        {
          "name": "position",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Reihenfolge der Anhänge",
            "en": "Attachment order"
          }
        },
        {
          "name": "document_id",
          "type": "uuid",
          "references": "belege.csv#id",
          "nullable": false,
          "description": {
            "de": "Beleg",
            "en": "Document"
          }
        },
        {
          "name": "variant",
          "type": "enum",
          "values": [
            "pdf",
            "einvoice"
          ],
          "nullable": false,
          "description": {
            "de": "pdf = Beleg-PDF (beleg-dateien.csv), einvoice = XML der E-Rechnung (e-rechnungen.csv)",
            "en": "pdf = document PDF, einvoice = e-invoice XML"
          }
        },
        {
          "name": "filename",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Dateiname im Anhang",
            "en": "Attachment file name"
          }
        },
        {
          "name": "content_type",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "MIME-Typ",
            "en": "MIME type"
          }
        },
        {
          "name": "bytes",
          "type": "integer",
          "unit": "bytes",
          "nullable": false,
          "description": {
            "de": "Größe in Bytes",
            "en": "Size in bytes"
          }
        },
        {
          "name": "sha256",
          "type": "sha256",
          "nullable": false,
          "description": {
            "de": "SHA-256 der Datei",
            "en": "SHA-256 of the file"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "zusatzfelder.csv",
      "description": {
        "de": "Selbst angelegte Zusatzfelder je Datensatzart.",
        "en": "Custom field definitions per record type."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "object_type",
          "type": "enum",
          "values": [
            "contact",
            "company",
            "lead",
            "deal",
            "asset"
          ],
          "nullable": false,
          "description": {
            "de": "Datensatzart",
            "en": "Record type"
          }
        },
        {
          "name": "key",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Technischer Schlüssel",
            "en": "Technical key"
          }
        },
        {
          "name": "label",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Beschriftung",
            "en": "Label"
          }
        },
        {
          "name": "type",
          "type": "enum",
          "values": [
            "text",
            "long_text",
            "number",
            "currency",
            "date",
            "datetime",
            "checkbox",
            "dropdown",
            "multi_select",
            "phone",
            "email",
            "url"
          ],
          "nullable": false,
          "description": {
            "de": "Feldtyp",
            "en": "Field type"
          }
        },
        {
          "name": "options",
          "type": "json",
          "nullable": true,
          "description": {
            "de": "Auswahlmöglichkeiten als JSON-Array von Texten (nur Auswahlfelder)",
            "en": "Options as JSON array of strings (choice fields only)"
          }
        },
        {
          "name": "required",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Pflichtfeld",
            "en": "Required"
          }
        },
        {
          "name": "position",
          "type": "integer",
          "nullable": false,
          "description": {
            "de": "Reihenfolge",
            "en": "Order"
          }
        }
      ]
    },
    {
      "file": "zusatzfeld-werte.csv",
      "description": {
        "de": "Werte der Zusatzfelder.",
        "en": "Custom field values."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "definition_id",
          "type": "uuid",
          "references": "zusatzfelder.csv#id",
          "nullable": false,
          "description": {
            "de": "Zusatzfeld",
            "en": "Custom field"
          }
        },
        {
          "name": "record_id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Datensatz (Art laut zusatzfelder.csv object_type)",
            "en": "Record (type per zusatzfelder.csv object_type)"
          }
        },
        {
          "name": "value",
          "type": "json",
          "nullable": true,
          "description": {
            "de": "Wert als JSON: Text in Anführungszeichen, Zahl, true/false, Mehrfachauswahl als Array",
            "en": "Value as JSON: string, number, true/false, multi-select as array"
          }
        }
      ]
    },
    {
      "file": "gespeicherte-ansichten.csv",
      "description": {
        "de": "Gespeicherte Ansichten (Filter) der Listen.",
        "en": "Saved list views (filters)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "owner_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": false,
          "description": {
            "de": "Angelegt von",
            "en": "Owner"
          }
        },
        {
          "name": "scope",
          "type": "enum",
          "values": [
            "contacts",
            "leads",
            "deals",
            "tasks",
            "reports",
            "calls",
            "assets"
          ],
          "nullable": false,
          "description": {
            "de": "Liste, zu der die Ansicht gehört",
            "en": "List the view belongs to"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "params",
          "type": "json",
          "nullable": false,
          "description": {
            "de": "Filter als JSON-Objekt (Name → Wert)",
            "en": "Filters as JSON object (name → value)"
          }
        },
        {
          "name": "is_shared",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Mit allen geteilt",
            "en": "Shared with everyone"
          }
        },
        {
          "name": "is_default",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Standardansicht",
            "en": "Default view"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "aenderungshistorie.csv",
      "description": {
        "de": "Änderungsprotokoll: wer wann was getan hat.",
        "en": "Audit log: who did what and when."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "actor_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Handelnde Person; leer = System",
            "en": "Actor; empty = system"
          }
        },
        {
          "name": "action",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Handlung (z. B. contact.created)",
            "en": "Action (e.g. contact.created)"
          }
        },
        {
          "name": "entity_type",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Art des betroffenen Datensatzes",
            "en": "Type of the affected record"
          }
        },
        {
          "name": "entity_id",
          "type": "uuid",
          "nullable": true,
          "description": {
            "de": "Betroffener Datensatz",
            "en": "Affected record"
          }
        },
        {
          "name": "metadata",
          "type": "json",
          "nullable": true,
          "description": {
            "de": "Angaben zur Handlung als JSON-Objekt",
            "en": "Details as JSON object"
          }
        },
        {
          "name": "ip",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "IP-Adresse der Anfrage, falls erfasst",
            "en": "Request IP address, if recorded"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "aufbewahrungsregeln.csv",
      "description": {
        "de": "Aufbewahrungs- und Löschregeln je Datenart.",
        "en": "Retention and deletion rules per data type."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "entity_type",
          "type": "enum",
          "values": [
            "contact",
            "booking_contact",
            "call",
            "lead",
            "appointment",
            "contact_email",
            "note",
            "attachment"
          ],
          "nullable": false,
          "description": {
            "de": "Datenart",
            "en": "Data type"
          }
        },
        {
          "name": "retention_days",
          "type": "integer",
          "unit": "days",
          "nullable": false,
          "description": {
            "de": "Aufbewahrungsfrist in Tagen",
            "en": "Retention period in days"
          }
        },
        {
          "name": "action",
          "type": "enum",
          "values": [
            "soft_delete",
            "hard_delete",
            "anonymize",
            "pseudonymize"
          ],
          "nullable": false,
          "description": {
            "de": "Was nach Ablauf geschieht",
            "en": "Action after expiry"
          }
        },
        {
          "name": "basis",
          "type": "enum",
          "values": [
            "created",
            "activity"
          ],
          "nullable": false,
          "description": {
            "de": "Frist ab Anlage oder ab letzter Aktivität",
            "en": "Period counted from creation or last activity"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "loeschauftraege.csv",
      "description": {
        "de": "Nachweis durchgeführter Löschungen und Anonymisierungen.",
        "en": "Record of deletions and anonymisations carried out."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "entity_type",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Datenart (z. B. contact, call)",
            "en": "Data type (e.g. contact, call)"
          }
        },
        {
          "name": "entity_id",
          "type": "uuid",
          "nullable": true,
          "description": {
            "de": "Betroffener Datensatz",
            "en": "Affected record"
          }
        },
        {
          "name": "action",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Durchgeführte Maßnahme (u. a. soft_delete, hard_delete, anonymize, pseudonymize, kept_legal_obligation)",
            "en": "Action taken (e.g. soft_delete, hard_delete, anonymize, pseudonymize, kept_legal_obligation)"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "done",
            "failed"
          ],
          "nullable": false,
          "description": {
            "de": "Erledigt oder fehlgeschlagen",
            "en": "Done or failed"
          }
        },
        {
          "name": "reason",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Anlass (z. B. retention, dsr)",
            "en": "Reason (e.g. retention, dsr)"
          }
        },
        {
          "name": "error",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Fehlermeldung",
            "en": "Error message"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "systemereignisse.csv",
      "description": {
        "de": "Ereignisse im System (Zeitleiste, Auslöser für Automatisierungen und Webhooks).",
        "en": "System events (timeline, triggers for automations and webhooks)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "event_type",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Ereignis (z. B. deal.stageChanged)",
            "en": "Event (e.g. deal.stageChanged)"
          }
        },
        {
          "name": "aggregate_type",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Art des betroffenen Datensatzes",
            "en": "Type of the affected record"
          }
        },
        {
          "name": "aggregate_id",
          "type": "uuid",
          "nullable": true,
          "description": {
            "de": "Betroffener Datensatz",
            "en": "Affected record"
          }
        },
        {
          "name": "contact_id",
          "type": "uuid",
          "references": "kontakte.csv#id",
          "nullable": true,
          "description": {
            "de": "Zugehöriger Kontakt",
            "en": "Related contact"
          }
        },
        {
          "name": "payload",
          "type": "json",
          "nullable": true,
          "description": {
            "de": "Inhalt des Ereignisses als JSON-Objekt",
            "en": "Event payload as JSON object"
          }
        },
        {
          "name": "actor_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Auslösende Person; leer = System",
            "en": "Actor; empty = system"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "benutzer.csv",
      "description": {
        "de": "Benutzerkonten — ohne Passwort und ohne Zwei-Faktor-Geheimnis.",
        "en": "User accounts — without password and second-factor secret."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "email",
          "type": "email",
          "nullable": false,
          "description": {
            "de": "Anmeldeadresse",
            "en": "Login e-mail"
          }
        },
        {
          "name": "display_name",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Anzeigename",
            "en": "Display name"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "active",
            "disabled"
          ],
          "nullable": false,
          "description": {
            "de": "Aktiv oder gesperrt",
            "en": "Active or disabled"
          }
        },
        {
          "name": "last_login_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Letzte Anmeldung",
            "en": "Last login"
          }
        },
        {
          "name": "is_platform_admin",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Konto des Betreibers (NexAI)",
            "en": "Operator account (NexAI)"
          }
        },
        {
          "name": "theme_preference",
          "type": "enum",
          "values": [
            "system",
            "light",
            "dark"
          ],
          "nullable": false,
          "description": {
            "de": "Gewähltes Aussehen (system, hell, dunkel)",
            "en": "Chosen appearance (system, light, dark)"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "deleted_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "In den Papierkorb gelegt am; leer = nicht gelöscht",
            "en": "Moved to the trash at; empty = not deleted"
          }
        }
      ]
    },
    {
      "file": "rollen.csv",
      "description": {
        "de": "Rollen.",
        "en": "Roles."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "description",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Beschreibung",
            "en": "Description"
          }
        },
        {
          "name": "is_system",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Mitgelieferte Rolle",
            "en": "Built-in role"
          }
        }
      ]
    },
    {
      "file": "rollenrechte.csv",
      "description": {
        "de": "Rechte je Rolle.",
        "en": "Permissions per role."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "role_id",
          "type": "uuid",
          "references": "rollen.csv#id",
          "nullable": false,
          "description": {
            "de": "Rolle",
            "en": "Role"
          }
        },
        {
          "name": "permission_key",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Recht (z. B. contacts.read); * = alle Rechte",
            "en": "Permission (e.g. contacts.read); * = all"
          }
        }
      ]
    },
    {
      "file": "benutzerrollen.csv",
      "description": {
        "de": "Welche Person welche Rolle hat.",
        "en": "Which user has which role."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "user_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": false,
          "description": {
            "de": "Person",
            "en": "User"
          }
        },
        {
          "name": "role_id",
          "type": "uuid",
          "references": "rollen.csv#id",
          "nullable": false,
          "description": {
            "de": "Rolle",
            "en": "Role"
          }
        }
      ]
    },
    {
      "file": "vertriebspartner.csv",
      "description": {
        "de": "Vertriebspartner, wie sie aus dem Partnerportal gemeldet werden.",
        "en": "Sales agents as reported by the partner portal."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "external_id",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Kennung im Partnerportal",
            "en": "Partner portal identifier"
          }
        },
        {
          "name": "partner_no",
          "type": "integer",
          "nullable": true,
          "description": {
            "de": "Partnernummer",
            "en": "Partner number"
          }
        },
        {
          "name": "display_name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "email",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "E-Mail-Adresse",
            "en": "E-mail address"
          }
        },
        {
          "name": "phone",
          "type": "phone",
          "nullable": true,
          "description": {
            "de": "Telefonnummer",
            "en": "Phone number"
          }
        },
        {
          "name": "sales_role",
          "type": "enum",
          "values": [
            "setter",
            "closer",
            "both"
          ],
          "nullable": true,
          "description": {
            "de": "Rolle im Vertrieb",
            "en": "Sales role"
          }
        },
        {
          "name": "level",
          "type": "enum",
          "values": [
            "junior",
            "senior"
          ],
          "nullable": true,
          "description": {
            "de": "Stufe",
            "en": "Level"
          }
        },
        {
          "name": "senior_since",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Stufe senior seit",
            "en": "Senior since"
          }
        },
        {
          "name": "probation_start",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Beginn der Probezeit",
            "en": "Probation start"
          }
        },
        {
          "name": "status",
          "type": "enum",
          "values": [
            "active",
            "inactive"
          ],
          "nullable": false,
          "description": {
            "de": "Aktiv oder inaktiv",
            "en": "Active or inactive"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "einstellungen.csv",
      "description": {
        "de": "Einstellungen der Organisation: Absender auf Belegen, Bankverbindung, Schalter. Ohne Logo — das steht als Bilddatei im Dateipaket (einstellungen/logo.…).",
        "en": "Organisation settings: sender on documents, bank details, switches. Without logo — it is an image file in the file package (einstellungen/logo.…)."
      },
      "columns": [
        {
          "name": "tenant_id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung der Organisation",
            "en": "Organisation identifier"
          }
        },
        {
          "name": "notify_email",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "Adresse für Benachrichtigungen",
            "en": "Notification address"
          }
        },
        {
          "name": "lead_notifications_enabled",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Benachrichtigung bei neuen Anfragen",
            "en": "Notify on new leads"
          }
        },
        {
          "name": "brand_name",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Angezeigter Name",
            "en": "Brand name"
          }
        },
        {
          "name": "brand_color",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Markenfarbe als #RRGGBB",
            "en": "Brand colour as #RRGGBB"
          }
        },
        {
          "name": "currency",
          "type": "enum",
          "values": [
            "EUR",
            "CHF"
          ],
          "nullable": false,
          "description": {
            "de": "Währung (ISO 4217)",
            "en": "Currency (ISO 4217)"
          }
        },
        {
          "name": "company_name",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Firmenname",
            "en": "Company name"
          }
        },
        {
          "name": "company_street",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Straße und Hausnummer",
            "en": "Street and number"
          }
        },
        {
          "name": "company_postal_code",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Postleitzahl",
            "en": "Postal code"
          }
        },
        {
          "name": "company_city",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Ort",
            "en": "City"
          }
        },
        {
          "name": "company_country",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Land (Name)",
            "en": "Country (name)"
          }
        },
        {
          "name": "country_code",
          "type": "country",
          "nullable": true,
          "description": {
            "de": "Land als Code",
            "en": "Country code"
          }
        },
        {
          "name": "company_phone",
          "type": "phone",
          "nullable": true,
          "description": {
            "de": "Telefonnummer",
            "en": "Phone number"
          }
        },
        {
          "name": "company_email",
          "type": "email",
          "nullable": true,
          "description": {
            "de": "E-Mail-Adresse",
            "en": "E-mail address"
          }
        },
        {
          "name": "company_website",
          "type": "url",
          "nullable": true,
          "description": {
            "de": "Internetseite",
            "en": "Website"
          }
        },
        {
          "name": "vat_id",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "USt-IdNr.",
            "en": "VAT identification number"
          }
        },
        {
          "name": "tax_number",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Steuernummer",
            "en": "Tax number"
          }
        },
        {
          "name": "register_id",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Handelsregisternummer",
            "en": "Commercial register number"
          }
        },
        {
          "name": "invoice_contact_name",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Ansprechpartner für Rechnungen",
            "en": "Invoice contact name"
          }
        },
        {
          "name": "company_legal",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Pflichtangaben (Fußzeile)",
            "en": "Legal footer"
          }
        },
        {
          "name": "bank_name",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Bank",
            "en": "Bank name"
          }
        },
        {
          "name": "iban",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "IBAN",
            "en": "IBAN"
          }
        },
        {
          "name": "bic",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "BIC",
            "en": "BIC"
          }
        },
        {
          "name": "small_business",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Kleinunternehmer (§ 19 UStG)",
            "en": "Small business (§ 19 UStG)"
          }
        },
        {
          "name": "payment_terms_days",
          "type": "integer",
          "unit": "days",
          "nullable": false,
          "description": {
            "de": "Zahlungsziel in Tagen",
            "en": "Payment terms in days"
          }
        },
        {
          "name": "einvoice_enabled",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "E-Rechnung eingeschaltet",
            "en": "E-invoicing enabled"
          }
        },
        {
          "name": "billing_enabled",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Abo-Abrechnung eingeschaltet",
            "en": "Subscription billing enabled"
          }
        },
        {
          "name": "billing_auto_enable_from",
          "type": "date",
          "nullable": true,
          "description": {
            "de": "Gespiegelte Verträge ab diesem Tag automatisch als Entwurf abrechnen",
            "en": "Mirrored contracts starting from this day are billed as drafts"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "webhooks.csv",
      "description": {
        "de": "Ausgehende Webhooks — ohne das Signaturgeheimnis.",
        "en": "Outgoing webhooks — without the signing secret."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "url",
          "type": "url",
          "nullable": false,
          "description": {
            "de": "Zieladresse",
            "en": "Target URL"
          }
        },
        {
          "name": "event_types",
          "type": "json",
          "nullable": false,
          "description": {
            "de": "Abonnierte Ereignisse als JSON-Array von Texten",
            "en": "Subscribed events as JSON array of strings"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "description",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Beschreibung",
            "en": "Description"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "integrationen.csv",
      "description": {
        "de": "Verbundene Dienste — ohne Geheimnis und ohne Konfiguration.",
        "en": "Connected services — without secret and configuration."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "provider",
          "type": "enum",
          "values": [
            "vapi",
            "n8n",
            "nextime"
          ],
          "nullable": false,
          "description": {
            "de": "Dienst",
            "en": "Provider"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    },
    {
      "file": "standorte.csv",
      "description": {
        "de": "Standorte (Filialen).",
        "en": "Locations (branches)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "active",
          "type": "boolean",
          "nullable": false,
          "description": {
            "de": "Aktiv",
            "en": "Active"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "standort-zuordnung.csv",
      "description": {
        "de": "Welche Person zu welchem Standort gehört.",
        "en": "Which user belongs to which location."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "location_id",
          "type": "uuid",
          "references": "standorte.csv#id",
          "nullable": false,
          "description": {
            "de": "Standort",
            "en": "Location"
          }
        },
        {
          "name": "user_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": false,
          "description": {
            "de": "Person",
            "en": "User"
          }
        },
        {
          "name": "added_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zugeordnet am",
            "en": "Added at"
          }
        }
      ]
    },
    {
      "file": "teams.csv",
      "description": {
        "de": "Teams.",
        "en": "Teams."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "name",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Name",
            "en": "Name"
          }
        },
        {
          "name": "lead_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": true,
          "description": {
            "de": "Teamleitung",
            "en": "Team lead"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        },
        {
          "name": "updated_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zuletzt geändert am",
            "en": "Last changed at"
          }
        }
      ]
    },
    {
      "file": "team-zuordnung.csv",
      "description": {
        "de": "Wer zu welchem Team gehört.",
        "en": "Who belongs to which team."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "team_id",
          "type": "uuid",
          "references": "teams.csv#id",
          "nullable": false,
          "description": {
            "de": "Team",
            "en": "Team"
          }
        },
        {
          "name": "user_id",
          "type": "uuid",
          "references": "benutzer.csv#id",
          "nullable": false,
          "description": {
            "de": "Person",
            "en": "User"
          }
        },
        {
          "name": "added_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Zugeordnet am",
            "en": "Added at"
          }
        }
      ]
    },
    {
      "file": "hinweise.csv",
      "description": {
        "de": "Hinweise des Systems an die Verwaltung (z. B. Betriebsstörungen).",
        "en": "System notices to administrators (e.g. operational issues)."
      },
      "columns": [
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung des Datensatzes",
            "en": "Record identifier"
          }
        },
        {
          "name": "severity",
          "type": "enum",
          "values": [
            "info",
            "warning",
            "error"
          ],
          "nullable": false,
          "description": {
            "de": "Schwere",
            "en": "Severity"
          }
        },
        {
          "name": "source",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Herkunft des Hinweises",
            "en": "Origin of the notice"
          }
        },
        {
          "name": "message",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Meldungstext",
            "en": "Message text"
          }
        },
        {
          "name": "message_key",
          "type": "text",
          "nullable": true,
          "description": {
            "de": "Schlüssel der Meldung (für Übersetzungen)",
            "en": "Message key (for translation)"
          }
        },
        {
          "name": "message_params",
          "type": "json",
          "nullable": true,
          "description": {
            "de": "Werte zur Meldung als JSON-Objekt",
            "en": "Message parameters as JSON object"
          }
        },
        {
          "name": "acknowledged_at",
          "type": "timestamp",
          "nullable": true,
          "description": {
            "de": "Zur Kenntnis genommen am",
            "en": "Acknowledged at"
          }
        },
        {
          "name": "created_at",
          "type": "timestamp",
          "nullable": false,
          "description": {
            "de": "Angelegt am",
            "en": "Created at"
          }
        }
      ]
    }
  ],
  "filePackage": {
    "endpoint": "GET /api/tenant-export/dateien",
    "description": {
      "de": "Ein ZIP mit allen Dateien, die im CRM liegen — Byte für Byte: hochgeladene Dateien (Ordner dateien/anhaenge/), abgelegte Beleg-PDFs (belege/pdf/), die XML der E-Rechnungen (belege/e-rechnung/), die Anhänge verschickter Mails (mails/anhaenge/) und das Logo der Organisation (einstellungen/logo.png, .jpg, .svg oder .webp — je nach Bildtyp; in einstellungen.csv steht es nicht). Jeder andere Dateiname beginnt mit der Kennung und einem Bindestrich, danach folgt der Originalname (Zeichen, die ein Dateisystem nicht verträgt, durch _ ersetzt). Dazu LIESMICH.txt und zuordnung.csv (Regeln wie bei allen CSV-Dateien, Spalten unten). Ein Teil umfasst höchstens die gewählte Größe (Vorgabe 2.000 MB) und 60.000 Dateien, geordnet nach Art und Anlagedatum; weitere Teile über ?teil=2, ?teil=3 … Die Zahl der Teile nennen die Kopfzeile x-nexai-teile und GET /api/tenant-export/dateien/umfang. Nicht enthalten: Dateien, deren Inhalt ein Löschlauf schon entfernt hat, und PDFs von Entwürfen und nie per Mail verschickten Angeboten oder Auftragsbestätigungen (sie entstehen bei jedem Abruf neu).",
      "en": "A ZIP with every file stored in the CRM, byte for byte: uploaded files (folder dateien/anhaenge/), stored document PDFs (belege/pdf/), e-invoice XML (belege/e-rechnung/), attachments of sent e-mails (mails/anhaenge/) and the organisation's logo (einstellungen/logo.png, .jpg, .svg or .webp by image type; it is not in einstellungen.csv). Every other file name starts with the identifier and a hyphen, followed by the original name (characters a file system cannot hold replaced by _). Plus LIESMICH.txt and zuordnung.csv (same CSV rules, columns below). A part holds at most the chosen size (default 2,000 MB) and 60,000 files, ordered by kind and creation date; further parts via ?teil=2, ?teil=3 … The number of parts is in the header x-nexai-teile and in GET /api/tenant-export/dateien/umfang. Not included: files whose content a retention run already removed, and PDFs of drafts and of quotes or order confirmations never sent by e-mail (rendered on every request)."
    },
    "mappingFile": {
      "file": "zuordnung.csv",
      "columns": [
        {
          "name": "pfad",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Pfad der Datei in diesem ZIP",
            "en": "Path of the file in this ZIP"
          }
        },
        {
          "name": "art",
          "type": "enum",
          "values": [
            "anhang",
            "beleg_pdf",
            "e_rechnung",
            "mail_anhang",
            "logo"
          ],
          "nullable": false,
          "description": {
            "de": "Art: hochgeladene Datei, Beleg-PDF, XML der E-Rechnung, Anhang einer Mail oder Logo",
            "en": "Kind: uploaded file, document PDF, e-invoice XML, e-mail attachment or logo"
          }
        },
        {
          "name": "id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung der Datei (bei Belegen: die Kennung des Belegs, beim Logo: die der Organisation)",
            "en": "File identifier (for documents: the document identifier, for the logo: the organisation's)"
          }
        },
        {
          "name": "dateiname",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "Ursprünglicher Dateiname",
            "en": "Original file name"
          }
        },
        {
          "name": "mime_typ",
          "type": "text",
          "nullable": false,
          "description": {
            "de": "MIME-Typ",
            "en": "MIME type"
          }
        },
        {
          "name": "bytes",
          "type": "integer",
          "unit": "bytes",
          "nullable": false,
          "description": {
            "de": "Größe in Bytes",
            "en": "Size in bytes"
          }
        },
        {
          "name": "sha256",
          "type": "sha256",
          "nullable": false,
          "description": {
            "de": "SHA-256 der Datei",
            "en": "SHA-256 of the file"
          }
        },
        {
          "name": "gehoert_zu",
          "type": "enum",
          "values": [
            "contact",
            "company",
            "lead",
            "deal",
            "asset",
            "document",
            "mail",
            "einstellungen"
          ],
          "nullable": false,
          "description": {
            "de": "Art des Datensatzes, zu dem die Datei gehört (document = belege.csv, mail = mails.csv, einstellungen = einstellungen.csv, sonst wie object_type)",
            "en": "Type of the record the file belongs to (document = belege.csv, mail = mails.csv, einstellungen = einstellungen.csv, else as object_type)"
          }
        },
        {
          "name": "gehoert_zu_id",
          "type": "uuid",
          "nullable": false,
          "description": {
            "de": "Kennung dieses Datensatzes (bei einstellungen: tenant_id)",
            "en": "Identifier of that record (for einstellungen: tenant_id)"
          }
        }
      ]
    }
  },
  "notExported": [
    {
      "de": "Zugänge: API-Schlüssel, Anmeldesitzungen, Wiederherstellungscodes und Marken zum Zurücksetzen des Passworts. Sie sind kein Datenbestand, sondern ein Schlüssel zum System; im neuen System werden sie neu angelegt.",
      "en": "Access credentials: API keys, login sessions, recovery codes and password reset tokens. They are not data but keys to the system; they are created anew in the new system."
    },
    {
      "de": "Verbindungen zu fremden Konten (eigenes Postfach, Kalender, Absendernummer) mit ihren Zugangsdaten. Im neuen System verbindet man sie neu.",
      "en": "Connections to third-party accounts (mailbox, calendar, sender number) with their credentials. They are reconnected in the new system."
    },
    {
      "de": "Kalender-Abo-Adressen und eingetragene Kalender-Links. Die Adresse selbst ist ein Zugang; die Termine stehen in termine.csv.",
      "en": "Calendar subscription addresses and calendar links. The address itself is an access credential; the appointments are in termine.csv."
    },
    {
      "de": "Technik des Kalenderabgleichs und zwischengespeicherte belegte Zeiten aus dem eigenen Kalender der Mitarbeitenden. Sie werden beim nächsten Abgleich neu gelesen.",
      "en": "Calendar sync bookkeeping and cached busy times from employees' own calendars. They are re-read on the next sync."
    },
    {
      "de": "Das Zustellprotokoll der Webhooks: Kopien von Daten, die ohnehin im Paket stehen.",
      "en": "The webhook delivery log: copies of data already in the package."
    },
    {
      "de": "Der Stammsatz der Organisation selbst (Name und Kürzel im System); ihre Einstellungen stehen in einstellungen.csv.",
      "en": "The organisation's own master record (name and system handle); its settings are in einstellungen.csv."
    },
    {
      "de": "Passwort-Hashes und Zwei-Faktor-Geheimnisse der Benutzer.",
      "en": "Users' password hashes and second-factor secrets."
    },
    {
      "de": "Signaturgeheimnisse der Webhooks sowie Geheimnisse und Konfiguration der verbundenen Dienste.",
      "en": "Webhook signing secrets and secrets and configuration of connected services."
    },
    {
      "de": "Das Antwortkennzeichen einer Mail (ein Zugang zum Mailfaden) und Kennungen beim Mailanbieter.",
      "en": "The reply token of an e-mail (an access to the thread) and identifiers at the mail provider."
    },
    {
      "de": "Interne Angaben zur Aufbewahrung und Versandtechnik (z. B. Wiederholungszeitpunkte).",
      "en": "Internal retention and sending bookkeeping (e.g. retry times)."
    },
    {
      "de": "Das hinterlegte Logo in einstellungen.csv — es steht als Bilddatei im Dateipaket.",
      "en": "The stored logo in einstellungen.csv — it is an image file in the file package."
    }
  ],
  "standards": [
    {
      "kennung": "RFC 4180",
      "titel": "CSV-Dateien",
      "url": "https://www.rfc-editor.org/rfc/rfc4180"
    },
    {
      "kennung": "RFC 3629",
      "titel": "UTF-8",
      "url": "https://www.rfc-editor.org/rfc/rfc3629"
    },
    {
      "kennung": "RFC 8259",
      "titel": "JSON",
      "url": "https://www.rfc-editor.org/rfc/rfc8259"
    },
    {
      "kennung": "RFC 3339",
      "titel": "Datum und Uhrzeit (Profil von ISO 8601)",
      "url": "https://www.rfc-editor.org/rfc/rfc3339"
    },
    {
      "kennung": "ISO 8601",
      "titel": "Darstellung von Datum und Uhrzeit",
      "url": null
    },
    {
      "kennung": "RFC 9562",
      "titel": "UUID",
      "url": "https://www.rfc-editor.org/rfc/rfc9562"
    },
    {
      "kennung": "ISO 4217",
      "titel": "Währungscodes",
      "url": null
    },
    {
      "kennung": "ISO 3166-1 alpha-2",
      "titel": "Ländercodes",
      "url": null
    },
    {
      "kennung": "UN/ECE Recommendation 20",
      "titel": "Codes für Maßeinheiten",
      "url": "https://unece.org/trade/uncefact/cl-recommendations"
    },
    {
      "kennung": "FIPS 180-4",
      "titel": "SHA-256",
      "url": "https://doi.org/10.6028/NIST.FIPS.180-4"
    },
    {
      "kennung": "APPNOTE (PKWARE)",
      "titel": "ZIP-Dateiformat",
      "url": "https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT"
    },
    {
      "kennung": "ISO 19005-3",
      "titel": "PDF/A-3 (Beleg-PDFs als PDF/A-3b)",
      "url": null
    },
    {
      "kennung": "EN 16931-1:2017",
      "titel": "Europäische Norm für die elektronische Rechnung, Syntax UN/CEFACT CII",
      "url": null
    },
    {
      "kennung": "ZUGFeRD / Factur-X",
      "titel": "Hybride E-Rechnung (PDF/A-3 mit eingebetteter CII-XML), Profil EN 16931",
      "url": "https://www.ferd-net.de/"
    },
    {
      "kennung": "XRechnung 3.0",
      "titel": "Deutscher Standard der E-Rechnung (CII-Syntax)",
      "url": "https://xeinkauf.de/xrechnung/"
    },
    {
      "kennung": "DATEV-Format EXTF, Version 700",
      "titel": "Buchungsstapel (Kategorie 21) und Debitoren (Kategorie 16)",
      "url": null
    },
    {
      "kennung": "RFC 5545",
      "titel": "iCalendar",
      "url": "https://www.rfc-editor.org/rfc/rfc5545"
    },
    {
      "kennung": "RFC 6750",
      "titel": "Bearer-Token für die Programmierschnittstelle",
      "url": "https://www.rfc-editor.org/rfc/rfc6750"
    },
    {
      "kennung": "OpenAPI 3.1",
      "titel": "Beschreibung der Schnittstelle",
      "url": "https://spec.openapis.org/oas/v3.1.0"
    }
  ]
}
