____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:

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