Identity, creation timestamp and format version. The app assigns all three itself; on import they are filled in when absent.
datensatz_idstring (uuid) requireddatensatz_idGlobally unique record ID. The app generates UUIDv7 — timestamp-ordered, so sorting by ID matches creation order.
Constraintsformat: uuidExample"019e7271-637f-7412-87be-4073c257db12"Note: An import with a blank ID column gets a fresh UUID per row. Importing the same file twice therefore yields different IDs; duplicate detection falls back to the content fingerprint rather than the ID.
datensatz_erstellung_zeitpunktstring (date-time) requireddatensatz_erstellung_zeitpunktWhen the record was created, not when the application happened. The application time lives in anwendung_zeitpunkt.
Constraintsformat: date-timeExample"2026-05-27T14:32:00Z"Note: Saving several records in one pass (tank mix, batch entry) stamps them with synthetic timestamps 10 ms apart from one shared base value. That shared base plus a shared application date is exactly how the app recognises a tank mix afterwards.
datensatz_format_versionstring (const) requireddatensatz_format_versionVersion of the record format. Frozen as a const in the schema: every valid record carries exactly "1.0.0".
Constraintsconst: "1.0.0"Example"1.0.0"Note: Do not confuse this with the app’s IndexedDB version. Three independent numbers exist: this frozen format version, an informal schema counter in comments and the changelog, and the IndexedDB DB_VERSION.