**Kurzcode für das Spielsekretariat**: Am Spieltisch steht in aller Regel ein Vereinsrechner, auf dem sich bewusst niemand mit seinem Saisonmanager-Konto anmeldet. Der Spielsekretariats-Link wird aber vom Vereinsmanager an einem anderen Gerät erzeugt – und er ist mit über 90 Zeichen nichts, was sich abtippen ließe. Bisher blieb nur, ihn irgendwie auf den Hallenrechner zu bekommen. Zu jedem Link gehört deshalb jetzt ein **achtstelliger Code**: Am Spieltisch wird die Seite „Spielsekretariat“ aufgerufen und der Code eingegeben, fertig; die genaue Adresse steht beim Code. Der Code verzeiht beim Abtippen, was man beim Abtippen falsch macht: Groß- und Kleinschreibung sind gleich, Bindestriche und Leerzeichen dürfen mit, und die Buchstaben O, I und L werden als Null und Eins gelesen – im Code selbst kommen sie gar nicht vor, damit keine Verwechslung entsteht. Gültigkeit und Umfang bleiben unverändert: 72 Stunden, alle Spieltage desselben Tages in derselben Halle, und ein neu erzeugter Code entwertet den vorherigen. Der Code ist ausschließlich für diese Übergabe da – eingelöst wird er genau einmal gegen den regulären Zugang, und zwar an einem eigens gedrosselten Weg, sodass sich Codes nicht durchprobieren lassen. Wer den Code hat, kann Spielbericht und Aufstellung dieser Spiele bearbeiten und sieht die Lizenzlisten mit Name, Geburtsdatum und Lizenzstatus; er gehört deshalb genau wie der Link nur an den Tisch.
**Bei einer kampflosen Wertung lässt sich jetzt ein Ergebnis festsetzen**: Die Spielbetriebskommission konnte ein Spiel schon bisher kampflos werten (Verwaltung → Spielplan, Menü am Spiel: Forfait Heim, Forfait Gast, Forfait beide). Das Ergebnis stand dabei aber fest — die Liga-Vorgabe von 0:5 beziehungsweise 0:8, bei beidseitiger Wertung −8:−8 —, und jeder andere Ausgang musste außerhalb des Systems festgehalten werden. Die Spielordnung kennt jedoch Fälle, in denen ein abweichendes Ergebnis festgesetzt wird: Wurde das Spiel ausgetragen und die nicht schuldige Mannschaft hat es höher gewonnen, als die Vorgabe hergäbe, bleibt das erzielte Ergebnis bestehen. Neben der Wertung stehen deshalb jetzt zwei Torfelder. Wer nichts einträgt, bekommt unverändert die Liga-Vorgabe; sie steht als Vorbelegung in den Feldern, damit sichtbar ist, wovon abgewichen wird. Das festgesetzte Ergebnis zählt überall gleich — Tabelle, Torverhältnis und Spielplan rechnen mit ihm, nicht mit der Vorgabe. Bei beidseitiger Wertung gilt es so, wie es eingetragen wurde: Die negativen Vorgabetore sind ein Mittel, das Torverhältnis zu belasten, und eine Eingabe von 0:0 soll nicht als −0:−0 landen; ohne Punkte bleibt die beidseitige Wertung dabei auch mit eingetragenem Ergebnis. Wird ein Spiel auf die reguläre Wertung zurückgesetzt, verschwindet das festgesetzte Ergebnis mit ihr — sonst stünde es unsichtbar in der Zeile und bei der nächsten kampflosen Wertung ungefragt wieder da. Torschützen und Einsätze bleiben bei einer kampflosen Wertung wie bisher außen vor, denn das Ergebnis ist gesetzt und nicht erspielt.
Behoben
**Eine Profil-Zusammenlegung am Tag eines Vereinswechsels ließ den Spieler ohne Verein zurück**: Wird ein Spieler transferiert und noch am selben Tag ein doppelt angelegtes Profil in sein Profil zusammengeführt, konnte die Zusammenlegung die gerade erst gesetzte neue Vereinszugehörigkeit wieder schließen. Das Profil stand danach in gar keiner Vereinsliste mehr, war nicht lizenzierbar und nicht transferierbar — der Verein sah seinen frisch aufgenommenen Spieler nicht. Hintergrund: Die Zusammenlegung darf höchstens einen offenen Heimatverein hinterlassen und schließt dafür die übrigen. Ob eine Zugehörigkeit noch läuft, wird dabei tagesgenau beurteilt, und eine wenige Minuten zuvor beendete zählt bis Mitternacht weiter mit. Am Tag eines Wechsels sah die Zusammenlegung deshalb zwei offene Vereine, wo nur einer offen war. Welcher davon bleibt, entscheidet die zuletzt erteilte Lizenz — und die liegt am Tag des Wechsels naturgemäß noch beim abgebenden Verein, während die des aufnehmenden erst beantragt ist. Behalten wurde damit ein bereits geschlossener Eintrag, geschlossen der richtige. Die Zusammenlegung lässt jetzt jede Zugehörigkeit in Ruhe, die am selben Tag ohnehin schon beendet wurde: Sie beendet nur noch wirklich laufende, und bleibt danach nur eine einzige übrig, greift sie gar nicht erst ein. Damit kann sie ein Profil auch nicht mehr ohne Verein zurücklassen. Nebenbei behoben: Der mitgeschlossene Eintrag bekam den Zeitpunkt der Zusammenlegung eingetragen und überschrieb damit den des Transfers — der Wechsel war hinterher auf die falsche Uhrzeit datiert. Ein Wartungslauf (`players:reopen_home_club_closed_by_merge`) öffnet die betroffene Zugehörigkeit im Bestand wieder; er fasst nur Profile an, die keinen laufenden Verein mehr haben und bei denen der zuletzt begonnene Eintrag nachweislich den Stempel einer Zusammenlegung trägt, und meldet jeden anderen Fall zur Prüfung, statt zu raten.
**Eine Strafe wegen Bodenspiels wurde als Tor durch Strafschuss angezeigt**: Wer eine Zwei-Minuten-Strafe mit dem Grund „917 – Bodenspiel“ eintrug, fand sie in der Ereignisliste als Tor wieder, beschriftet mit „Strafschuss“; im Liveticker und in den Stream-Einblendungen zählte sie als Tor. Der Grund liegt tief: Der Strafschuss wurde nie als eigene Torart gespeichert, sondern über die laufende Nummer eines Eintrags im Strafcode-Katalog markiert – der Nummer 23. Diese Nummern sind aber nicht für die Ewigkeit vergeben: Mit der Umstellung auf die heutigen 9xx-Codes wurde der Katalog neu aufgebaut, und seither trägt die 23 den Code 917. Belegen lässt sich das an Altdaten, die zur selben Nummer noch den früheren Code 806 mit der Bezeichnung „Strafschuss“ eingefroren haben. Betroffen waren **540 Einträge in 505 Spielen**, der Schwerpunkt in den aus dem Altsystem übernommenen Saisons; gemeldet wurde es am 13.09.2026 zu einem U9-Spiel. Der Spielstand blieb dabei immer richtig – er wird an jedem Ereignis mitgeschrieben und nicht aus der Ereignisart errechnet –, und auch die Strafminuten in der Scorerliste stimmten. Falsch war die Anzeige. Der Strafschuss wird jetzt wie das technische Tor als eigene Torart am Ereignis geführt, unabhängig vom Strafcode-Katalog; die vorhandenen Strafschüsse werden beim Einspielen automatisch umgestellt. Der Katalog kann damit künftig geändert werden, ohne die Anzeige gespeicherter Spiele zu verschieben.
**Ein kampflos gewertetes Spiel sah in Live-Ansicht und Spielberichtsübersicht aus wie ein erspieltes**: Bei einer kampflosen Wertung hängt die API an das Ergebnis den Zusatz „(forfait)". Die Anzeige bekam ihn aber nur zu sehen, wenn das Spiel zugleich in die Verlängerung gegangen war — bei einer kampflosen Wertung ist das naturgemäß nie der Fall. Überall dort, wo die Anzeige die kurze Ergebnisdarstellung nimmt statt der ausführlichen, stand deshalb ein glattes „0:5": in der Live-Ansicht und in der Ergebnisspalte der Spielberichtsübersicht. Das behauptet ein Spiel, das so nicht stattgefunden hat. Der Zusatz steht jetzt überall, wo er hingehört; im öffentlichen Spielplan und auf der Spielseite war er schon immer zu sehen, dort wird das Ergebnis anders aufgelöst. An „n.V." und „n. PS" ändert sich nichts.
**Das besondere Ereignis steht nicht mehr öffentlich in den Spieldetails**: Der Vermerk, den Schiedsrichter und Spielsekretariat unter „Besonderes Ereignis" in den Spielbericht schreiben, stand auf der öffentlichen Spielseite unter den Spielinformationen — für jeden ohne Anmeldung, einschließlich der Suchmaschinen und aller Abnehmer des öffentlichen API-Schlüssels. Es ist ein interner Vermerk über einen Vorfall: Er nennt regelmäßig Namen und beschreibt das Verhalten einzelner Personen, und über diesen Vorfall entscheidet erst die Spielbetriebskommission. Der Vermerk wird jetzt nur noch angemeldeten Personen angezeigt; das Spielsekretariat sieht ihn über seinen Link weiterhin, weil es ihn selbst einträgt. Für Verbandsrollen ändert sich nichts — im Spielbericht und in der Spielberichtsübersicht steht er unverändert. **Zu beachten für alle, die die öffentliche Schnittstelle auswerten:** Das Feld `special_event_string` fehlt in der Antwort von `games/:id.json` ohne Anmeldung jetzt vollständig.