____14DS — Events als Flags-Enum und events_result
Auslöser S6, Erkenntnis AP7
Die Event-Kette aus DS03 (Zustandsmaschine mit prev_event_sha256) blieb in
der Erstverwendung als Einzeldateien stehen — der Befund (Repo-Bloat) und
die Korrektur führten zur Flags-Darstellung im Container: Die Schritte
sind Bits, das Ergebnis ist eine Bitmask.
Die Enum-Definition
Normativ im Schema verankert (nicht je Container wiederholt):
| Schritt | Bit | Bedeutung |
|---|---|---|
offered |
1 | Signatur angefordert (Dokument zum Zeichnen vorgelegt) |
accepted |
2 | Empfänger hat zur Kenntnis genommen (§ 126b Abs. 1 BGB: Zugriff) |
denied |
4 | Empfänger lehnt ab (schließt sign aus) |
sign |
8 | Zeichnung vollzogen (Facsimile-/Schlüssel-Verweis) |
withdraw |
16 | Zeichnung zurückgenommen (schließt sign aus) |
Das Flags-Set
"events": {
"enum_definition": {
"offered": 1, "accepted": 2, "denied": 4, "sign": 8, "withdraw": 16
},
"flags_set": {
"offered": { "set": true, "timestamp_utc": "2026-09-13T17:31:00Z", "uuidV7": "…", "sha256": "f1358236…" },
"accepted": { "set": true, "timestamp_utc": "2026-09-13T17:33:00Z", "uuidV7": "01a09bd4…", "sha256": "71905eea…" },
"denied": { "set": false, "timestamp_utc": null, "uuidV7": null, "sha256": null },
"sign": { "set": true, "timestamp_utc": "2026-09-13T17:35:00Z", "uuidV7": "01a09bd6…", "sha256": "dab7ddfe…" },
"withdraw": { "set": false, "timestamp_utc": null, "uuidV7": null, "sha256": null }
},
"events_result": 11,
"chain_valid": true
}
Das Ergebnis: events_result = 11
offered(1) + accepted(2) + sign(8) = 11
| Ergebnis | Deutung |
|---|---|
| 1 | nur offered — pending |
| 2 | nur accepted — ohne offered (unregelmäßig, prüfen) |
| 3 | offered + accepted — bereit zum Zeichnen |
| 11 | offered + accepted + sign — vollständig gezeichnet |
| 4 | denied — abgelehnt (kein sign) |
| 16 | withdrawn — zurückgenommen |
| 7 | offered + accepted + denied — Widerspruch (chain_valid=false) |
Die Bitmask ist deterministisch prüfbar — ein Prüfer rechnet nach:
jq -r '.events.events_result' container.gcpn.md
jq -r '[.events.flags_set[] | select(.set == true)] | length' container.gcpn.md
# → Anzahl der gesetzten Bits muss mit Popcount(events_result) übereinstimmen
Kein Widerspruch möglich
Die Zustandsmaschine (DS03) und die Bits-Semantik verhindern zusammen unregelmäßige Verläufe:
denied(4) schließtsignaus — nach Ablehnung ist keine Zeichnung möglich.withdraw(16) schließtsignaus — nach Rücknahme ist der Vorgang beendet.chain_valid: false=prev_event_sha256-Verkettung lückenhaft — Beweiswert reduziert (DS04).
Forschungsgewinn-Protokoll (AP7)
| AP | Erkenntnis | Umsetzung |
|---|---|---|
| AP7 | Events als Einzeldateien → Bloat; Zustandsfolge als Text | Flags-Enum mit events_result-Bitmask + chain_valid |
Die prev_event_sha256-Verkettung bleibt (als chain_valid-Bestätigung
zusammengefasst) — die Bits ersetzen die Wiederholung der
Zustandsmaschine, nicht die Integritätsprüfung.
Erstellt: 260913 | Teil III, Artikel ____14DS | Serie: digital-signage