# Historicbits Master-Arbeitsanweisung

Diese Datei ist die einzige verbindliche Arbeitsanweisung für Historicbits-Imports, Themenordner und spätere Erweiterungen.

Andere Workflow-Dateien dürfen keine abweichenden Regeln enthalten. Sie dürfen nur auf diese Master-Datei verweisen oder daraus kurze Hinweise ableiten.

## 0a. KI-Startreferenz fuer neue Projekte

Wenn eine KI ein neues Projekt beginnen oder ein bestehendes Projekt fortsetzen soll, bekommt sie zuerst den kleinen Referenzordner:

```text
workflow/AI-START-REFERENCE/
```

Dieser Ordner ist der Einstiegspunkt, aber nicht die hoechste Regel. Die KI muss danach weiterhin diese Master-Datei lesen und befolgen.

Der Referenzordner enthaelt nur Startanweisung, Kontextmanifest, Projektvorlage und Upload-Manifest. Er enthaelt absichtlich keine grossen Bildordner, keine Thumbnails und keinen kompletten Archivdump.

Startformulierung fuer eine spaetere KI:

```text
KI, nimm workflow/AI-START-REFERENCE als Ausgangspunkt.
Lies START-HERE.md, MASTER-INSTRUCTIONS.md und SPLIT-WORKFLOW.md.
Erstelle ein neues Historicbits-Projekt fuer: <Projektname>.
Arbeite nur im noetigen Projektbereich.
Kopiere keine grossen Bild- oder Thumb-Ordner.
Gib am Ende ein exaktes Upload-Manifest mit Server-Zielpfaden aus.
```

## 0. STOP-Regel: erst Liste, dann OK, dann ZIP

Diese Regel steht über jedem Import-, Merge- oder Themenordner-Bau.

Vor dem Erstellen einer ZIP muss zuerst eine sichtbare Prüf-/Arbeitsliste ausgegeben werden. Die ZIP darf erst gebaut werden, wenn der Nutzer ausdrücklich OK gibt.

### Pflichtablauf

```text
1. Master-Arbeitsanweisung lesen
2. Aufgabe einordnen:
   - neuer Themenordner?
   - Ergänzung eines vorhandenen Themas?
   - Merge in archive?
   - Startseiten-/Kacheländerung?
   - nur Workflow-/Textkorrektur?
3. geplante Schritte sichtbar auflisten
4. genau markieren: HIER MUSS DER NUTZER OK GEBEN
5. erst nach OK:
   - Piwigo neu auslesen
   - Import-/Pairing-/Merge-Liste erstellen
6. Liste zeigen und erneut markieren:
   HIER MUSS DER NUTZER OK GEBEN
7. erst nach zweitem OK:
   - Dateien ändern
   - Check ausführen
   - ZIP bauen
```


### Aktuellkeitsregel bei Piwigo-Kategorien

Diese Regel verhindert, dass alte Inhalte einer gleich gebliebenen Piwigo-Kategorie erneut verwendet werden.

Bevor eine Anzahl, ein Kategoriename, eine ID-Liste, ein Titel, eine Caption oder eine Vorder-/Rueckseiten-Paarung genannt wird, muss die angegebene Piwigo-Kategorie **im aktuellen Zustand** neu gelesen werden.

Verboten:

```text
auf Memory/Erinnerung zurueckgreifen
alte Import-Checks verwenden
alte Kategorieauslesungen derselben Kategorie-ID verwenden
aus frueheren ZIPs oder vorherigen Antworten ableiten
nur den alten Projektnamen oder alten Ordnerstand uebernehmen
```

Pflicht bei jedem Piwigo-Link:

```text
1. aktuellen Kategorie-Link oeffnen
2. aktuellen Kategorienamen notieren, aber TEMP-/Arbeitsnamen nicht als Projektname uebernehmen
3. aktuell sichtbare Bildanzahl auslesen
4. alle aktuellen picture.php-IDs der Kategorie sammeln
5. aktuelle Captions/Bildzeilen zu genau diesen IDs lesen
6. erst danach Singles und Vorder-/Rueckseiten-Paare bilden
7. die Import-/Pairing-Liste muss ausdrücklich den Stand "aktuell ausgelesen" nennen
```

Wenn der aktuelle Piwigo-Ordner nicht vollstaendig ausgelesen werden kann, darf keine Importliste und keine ZIP gebaut werden. Dann muss gestoppt und gemeldet werden:

```text
STOPP: Aktueller Piwigo-Ordner konnte nicht vollstaendig ausgelesen werden.
Keine alten Daten verwenden.
```

Wichtig: Eine Kategorie-ID wie `170` ist kein stabiler Inhalt. Der Nutzer kann den Inhalt des Ordners jederzeit austauschen. Deshalb ist immer der aktuelle Live-Inhalt massgeblich, nicht ein frueherer Stand derselben Kategorie.

### Bei Piwigo-Importen

Vor jeder ZIP muss eine Import-/Pairing-Liste gezeigt werden:

```text
Piwigo-Kategorie
Anzahl Bilder
ID-Bereich
Singles
Vorder-/Rückseiten-Paare
sichtbare Datensätze
hidden Rückseiten
geplanter Ordnername
geplanter Sammlungstitel
Open-original-Beispiel
besondere Nutzerregeln
```

Der Nutzer muss diese Liste bestätigen.

### Bei Merge-Aufgaben

Vor jeder ZIP muss eine Merge-Liste gezeigt werden:

```text
Basisversion
zu mergender Themenordner
archive/cdv-data-en.js vorher
neue Datensätze
archive/cdv-data-en.js nachher
geänderte Dateien
nicht geänderte Dateien
Startseite ja/nein
Kachel ja/nein
```

Der Nutzer muss diese Liste bestätigen.

### Harte Regel

```text
Keine ZIP bauen, bevor der Nutzer nach der Prüf-/Import-/Merge-Liste ausdrücklich OK gegeben hat.
```

Wenn diese Regel verletzt wird, ist der Ablauf falsch.

## 1. Grundprinzip

Historicbits wächst über Themenordner. Die Funktionalität der Webseite darf aber nur einmal existieren.

## 1a. Pflichtregel: Upload-Liste und Zielpfade

Nach jeder Änderung muss die KI eine Upload-Liste ausgeben. Diese Liste muss genau sagen:

```text
lokale Datei
Server-Zielpfad ab Webroot
Grund der Änderung
Pflicht/optional
```

Die Angabe "diese Datei hochladen" reicht nicht. Es muss immer der genaue Zielort genannt werden.

Beispiel:

```text
lokal:  chile/cdv-data-en.js
server: /chile/cdv-data-en.js
grund:  korrigierte Titel/Captions der Chile-Projektseite
status: Pflicht

lokal:  archive/cdv-data-en.js
server: /archive/cdv-data-en.js
grund:  dieselben korrigierten Titel/Captions in der zentralen Hauptdatenbank
status: Pflicht
```

### Doppelbestand-Regel: Projektordner und Hauptarchiv

Wenn ein Projekt bereits in die Hauptdatenbank gemerged ist, existieren Daten in zwei relevanten Bereichen:

```text
<projektordner>/cdv-data-en.js
archive/cdv-data-en.js
```

Textkorrekturen an Titeln, Captions, Datierungen, Orten, Sammlungen, Autoren, Tags oder Sichtbarkeit muessen dann immer in beiden Datenbestaenden geprueft werden:

```text
1. Projektdatei pruefen und ggf. aendern
2. zentrale Archivdatei pruefen und ggf. denselben inhaltlichen Fix uebertragen
3. beide Dateien auf alte Fragmente pruefen
4. Strukturcheck ausfuehren
5. Upload-Liste mit beiden Server-Zielpfaden ausgeben
```

Wenn die Korrektur nur im Projektordner gemacht wird, aber `archive/cdv-data-en.js` noch alte Texte enthaelt, ist die Arbeit unvollstaendig.

### Upload-Liste nach Aufgabentyp

Bei Projekt-Textkorrekturen:

```text
<projektordner>/cdv-data-en.js  -> /<projektordner>/cdv-data-en.js
archive/cdv-data-en.js          -> /archive/cdv-data-en.js, wenn das Projekt im Hauptarchiv sichtbar ist
```

Bei Startseitenänderungen:

```text
index.html                      -> /index.html
index-en.html                   -> /index-en.html, nur wenn Englisch betroffen ist
app.js                          -> /app.js, wenn deutsche Startseitenlogik betroffen ist
app-en.js                       -> /app-en.js, wenn englische Startseitenlogik betroffen ist
styles.css                      -> /styles.css, wenn Startseitenlayout betroffen ist
assets/<datei>                  -> /assets/<datei>, nur neue/geänderte Startseitenbilder
```



## Startseiten-Aenderungen / Home-Update

Bei Aenderungen an der Startseite gilt eine besonders enge Regel:

```text
Die vorhandene funktionierende index.html ist immer die Basis.
Es darf keine neue Startseite aus einer Vorlage, aus einer Online-Ansicht oder aus einem anderen Projektstand gebaut werden.
Nur der konkret beauftragte Bereich wird eingefuegt, geaendert oder entfernt.
```

### Ziel

Eine Startseitenaenderung veraendert nur den beauftragten Bereich, zum Beispiel:

```text
neuen Abschnitt einfuegen
Text aendern
Link aendern
Bild austauschen
kleine CSS-Ergaenzung fuer genau diesen Abschnitt
```

Alles andere bleibt unveraendert.

### Ohne ausdruecklichen Auftrag nicht veraendern

```text
Header
Navigation
Hero-Bereich
Datenbank-Button
Timeline
Suche
Jahres-Bildleiste
bestehende Intro-Texte
bestehende Rubriken
bestehende Kacheln
Footer
Archivdaten
Projektordner
grosse Bildbestaende
```

### Arbeitsbasis fuer Home-Updates

Fuer ein Home-Update braucht die KI nur die kleinen Startseiten-Dateien:

```text
index.html
index-en.html, falls vorhanden
styles.css, falls vorhanden
app.js, falls vorhanden
app-en.js, falls vorhanden
assets/ nur soweit auf der Startseite benoetigt
```

Nicht benoetigt:

```text
archive/
shared/
thumbs/
uploads/
grosse Sammlungsordner
Datenbankdateien
```

### Pflichtablauf bei Home-Updates

```text
1. Bestehende index.html als Basis oeffnen.
2. Bestehende Struktur erkennen.
3. Nur die beauftragte Aenderung einfuegen.
4. Keine neue Startseitenstruktur erzeugen.
5. Keine vorhandenen Bereiche umgestalten.
6. Vorschau-Screenshot oder lokal sichtbare Vorschau erstellen, wenn der Nutzer sehen will, wie es aussieht.
7. Erst danach ZIP mit den tatsaechlich geaenderten Dateien liefern.
```

### Pflichtausgabe vor dem Bauen

Vor dem Erstellen einer ZIP fuer ein Home-Update muss die KI sichtbar sagen:

```text
Ich aendere nur:
- index.html
- index-en.html, falls vorhanden und betroffen
- styles.css, falls noetig
- neue Asset-Dateien, falls noetig

Ich aendere nicht:
- archive/
- shared/
- Datenbankdateien
- Projektordner
- grosse Bildordner
```

### Ergebnis-ZIP bei Home-Updates

Das Ergebnis-ZIP enthaelt nur die relevanten Dateien, zum Beispiel:

```text
index.html
index-en.html
styles.css
assets/neues-bild.jpg
UPLOAD-HINWEIS.txt
```

`UPLOAD-HINWEIS.txt` muss klar sagen, welche Dateien auf dem Server ersetzt oder ergaenzt werden.

### Harte Home-Regel

```text
Bei Startseitenaenderungen darf niemals eine neue Startseite aus einer anderen Vorlage gebaut werden.
Die vorhandene Startseite muss erhalten bleiben.
Nur der beauftragte Abschnitt wird eingefuegt, geaendert oder entfernt.
```

Bei Core-/Archivfunktionsänderungen:

```text
shared/archive-core/archive-app.js      -> /shared/archive-core/archive-app.js
shared/archive-core/archive-styles.css  -> /shared/archive-core/archive-styles.css
shared/map/cdv-map.js                   -> /shared/map/cdv-map.js
shared/map/map.css                      -> /shared/map/map.css
```

Bei Workflow-Änderungen:

```text
workflow/MASTER-INSTRUCTIONS.md -> /workflow/MASTER-INSTRUCTIONS.md
workflow/ai-instructions.json   -> /workflow/ai-instructions.json
workflow/index.html             -> /workflow/index.html, wenn die Online-Übersicht betroffen ist
workflow/<datei>.html           -> /workflow/<datei>.html, wenn eine Online-Seite betroffen ist
workflow/<datei>.md             -> /workflow/<datei>.md, wenn eine Markdown-Anweisung betroffen ist
```

Nach jeder Aufgabe muss die KI zusätzlich sagen, welche schweren Bild-/Thumb-Ordner nicht erneut hochgeladen werden muessen.

Zentrale Dateien:

```text
shared/archive-core/archive-app.js
shared/archive-core/archive-styles.css
shared/map/cdv-map.js
shared/map/map.css
```

Diese Dateien sind die einzige gültige Version von Layout, Suche, Timeline, Detailansicht, Kartenlogik, Scrollmechanik und Open-original-Logik.

Themenordner enthalten nur:

```text
index.html
theme-config.js
cdv-data-en.js
```

Optional:

```text
README.md
lokale Notizen oder Import-Checks
```

Nicht erlaubt in Themenordnern:

```text
cdv-app.js
styles.css
map.js
map.css
```

## 2. Versionierung

ZIPs werden fortlaufend benannt:

```text
vs1-historicbits-clean.zip
vs2-historicbits-clean.zip
vs3-historicbits-clean.zip
...
```

Wenn eine Version verworfen wird, bleibt die Nummer trotzdem verbraucht. Die nächste gültige Version bekommt die nächste Nummer.

## 3. Neue Themenseite aus Piwigo

Der Nutzer liefert mindestens:

```text
Projektname
Piwigo-Kategorie-Link
```

Wichtig: Der Projektname kommt vom Nutzer. Piwigo-Arbeitsnamen wie `TEMP-store`, `temp`, `Upload`, `Unsorted` oder ähnliche Übergangsnamen dürfen nicht automatisch als Projektname oder Ordnername übernommen werden.

Beispiel:

```text
Piwigo-Kategorie heißt TEMP-store
Nutzer sagt: Projekt heißt Sequenzen
→ Ordner: sequenzen/
→ Sammlung: Sequenzen
→ Kachel: Sequenzen
```

## 4. Import erst vorbereiten, dann bauen

Bei neuen Kategorien muss zuerst eine Import-/Pairing-Liste erstellt werden. Erst nach Bestätigung durch den Nutzer wird eine ZIP gebaut.

Die Vorschau muss zeigen:

```text
Anzahl Piwigo-Bilder
Singles
Vorder-/Rückseiten-Paare
sichtbare Datensätze nach Import
geplanter Ordnername
geplanter Sammlungstitel
```

## 5. Vorder-/Rückseitenlogik

Wenn die Caption oder der Nutzer eindeutig `Vorderseite` und `Rückseite` angibt:

```text
Vorderseite = sichtbarer Hauptdatensatz
Rückseite = reverse-Objekt am Hauptdatensatz
Rückseite wird nicht zusätzlich als eigenes sichtbares Foto gezählt
```

Wenn keine Vorder-/Rückseitenbezeichnung vorhanden ist:

```text
als single importieren
```

Wenn es einen Konflikt gibt, zum Beispiel dieselbe ID erscheint einmal als Rückseite und einmal als Vorderseite, dann nicht raten. Den Konflikt melden und die betroffenen IDs unverändert lassen, bis der Nutzer die richtige Paarung bestätigt.

Beispiel Bückeburger Trachten:

```text
11734 / 11735
11736 / 11737
```

Beispiel Sequenzen:

```text
11 Piwigo-Bilder
5 Singles: 35405–35409
3 Paare: 35410/35411, 35412/35413, 35414/35415
8 sichtbare Datensätze
```

## 6. Englische Felder

Die englische Oberfläche darf keine deutschen Sätze enthalten.

Pflicht:

```text
titleEn = echtes Englisch
captionEn = echtes Englisch
dateLabelEn = englische Datumsform, z. B. c. 1900
```

Nicht erlaubt in `captionEn`:

```text
tätig
aufgenommen
war
Seine
handkolorierten
um 1880
typischer Flügelhaube
Fürstenhauses
Alltags- und Festkultur
```

Wenn keine gute Übersetzung möglich ist, lieber eine kürzere korrekte englische Caption schreiben als eine gemischte deutsch-englische.

## 7. Open original / Original öffnen

Der sichtbare Link `Open original` beziehungsweise `Original öffnen` muss die höchste verfügbare Bildansicht im Browser öffnen, aber keinen Speichern-Dialog auslösen.

Priorität:

```text
1. direkte High-Res-Bilddatei, wenn vorhanden und im Browser öffnend
2. Piwigo action-Link ohne download-Parameter, z. B. action.php?id=12345&part=e
3. Piwigo-Bildseite pageUrl als Fallback
```

Nicht erlaubt als sichtbarer Link:

```text
action.php?download=&id=...
```

Das löst einen Download/Speichern-Dialog aus und ist für `Open original` falsch.

Wichtig:

```text
image = kann für Anzeige/High-Res verwendet werden
originalImage = kann direkte Bilddatei sein
pageUrl = Piwigo-Bildseite
Open original = Browseransicht, nicht Download
```

Nach jedem Import muss `Open original` getestet werden: Es darf kein Save-Fenster öffnen.

## 8. Zählcheck nach jedem Import

Nach jedem Import muss dokumentiert werden:

```text
Basis-Version
sichtbare Datensätze vorher
neue Piwigo-Bilder
neue sichtbare Datensätze
Rückseiten als reverse
sichtbare Datensätze nachher
```

Zusätzlich muss geprüft werden:

```text
Alle sichtbaren IDs aus der Basisversion sind in der neuen Version noch vorhanden.
Keine vorhandene ID wurde versehentlich gelöscht oder überschrieben.
Neue IDs wurden nicht doppelt eingefügt.
```

## 9. Dateien, die bei einem normalen Import geändert werden dürfen

Bei neuer Themenseite:

```text
neuer-themenordner/index.html
neuer-themenordner/theme-config.js
neuer-themenordner/cdv-data-en.js
archive/cdv-data-en.js
index.html
index-en.html
CHANGELOG-vsN.txt
IMPORT-CHECK-vsN.txt
STRUCTURE-CHECK-vsN.txt
```

Bei Ergänzung eines vorhandenen Themas:

```text
bestehender-themenordner/cdv-data-en.js
archive/cdv-data-en.js
CHANGELOG-vsN.txt
IMPORT-CHECK-vsN.txt
STRUCTURE-CHECK-vsN.txt
```

Core-Dateien nur ändern, wenn ausdrücklich eine globale Funktionskorrektur verlangt wird.

## 10. Pflichtcheck

Vor Ausgabe einer ZIP muss ausgeführt werden:

```text
python3 check-structure.py
```

Wenn der Check fehlschlägt, darf keine finale ZIP ausgegeben werden.

## 11. Aktueller gültiger Referenzstand

Stand nach den letzten Korrekturen:

```text
vs14-historicbits-clean.zip
```

Enthaltene wichtige Erfahrungen:

```text
Bückeburger Trachten: manuell korrigierte Vorder-/Rückseiten-Paare
Sequenzen: Nutzername überschreibt Piwigo-Arbeitsnamen TEMP-store
Open original: High-Res-Browseransicht, kein Download-Dialog
Englisch: keine deutschen Satzteile in captionEn
```


## 12. Harte Marker fuer Strukturcheck

```text
kein Speichern-Dialog
vsN-historicbits-clean.zip
```


## High-Res-Link-Regel für „Open original“ / „Original öffnen"

Diese Regel ist verbindlich und darf nicht weggelassen oder umgedeutet werden:

- `Open original` muss auf die höchste verfügbare Bilddatei verweisen.
- Bei Piwigo-Imports ist dafür ein eigenes Feld `openOriginalUrl` zu setzen.
- Für Piwigo ist `openOriginalUrl` in der Regel:
  `https://reinhard-krause.de/sammlung/action.php?download=&id=PIWIGO_ID&part=e`
- `pageUrl` bleibt zusätzlich erhalten und verweist auf die Piwigo-Bildseite.
- `image` darf eine Anzeige-/Browser-/Vorschaudatei sein.
- `originalImage` und/oder `openOriginalUrl` müssen die High-Res-Quelle enthalten.
- Der Import ist falsch, wenn `Open original` nur auf die Piwigo-Seite oder nur auf ein Medium-/Preview-Bild verweist.
- Nach jedem Import muss an mindestens einem neuen Datensatz geprüft werden, dass `Open original` die High-Res-Datei öffnet.

Pflichtfelder bei neuen Piwigo-Datensätzen:

```js
image:          Anzeige-/Preview- oder Browserbild
pageUrl:        Piwigo-Bildseite
originalImage:  High-Res-Datei
openOriginalUrl: High-Res-Datei für den sichtbaren Link "Open original"
```


## 14. Nie alte Piwigo-Auslesungen wiederverwenden

Bei jedem neuen Projekt, jeder Ergänzung und jedem Test muss der Piwigo-Link **live und neu ausgelesen** werden. Auch wenn die Kategorie-ID gleich ist, kann der Inhalt inzwischen geändert worden sein.

Verboten:

```text
alte Auslese derselben Kategorie wiederverwenden
alte IDs aus einem früheren Test übernehmen
alte Captions aus vorherigen Import-Checks übernehmen
alte Bildanzahl derselben Kategorie nennen
Projektname aus alter Arbeitsbezeichnung übernehmen
```

Pflicht:

```text
Kategorie-Link aktuell öffnen
aktuelle Anzahl prüfen
aktuelle picture.php-IDs sammeln
aktuelle Bildzeilen/Captions zu diesen IDs lesen
Import-/Pairing-Liste auf Basis dieser aktuellen Daten erstellen
```

Vor jedem Import muss eine aktuelle ID-/Titel-/Pairing-Liste erstellt und geprüft werden. Wenn diese aktuelle Auslesung nicht möglich ist, muss gestoppt werden. Es darf dann nicht mit alten Daten weitergearbeitet werden.


## Harte Import-Regel: Piwigo-Bildzeile und echte Piwigo-ID

Bei einem Piwigo-Import darf kein Datensatz aus einem alten Import kopiert werden. Maßgeblich sind ausschließlich die aktuell ausgelesenen Links der angegebenen Kategorie. Die ID ist immer die Zahl aus `picture.php?/ID/category/X`, niemals eine Zahl aus dem Dateinamen. Die deutsche `caption` muss aus der aktuell sichtbaren Piwigo-Bildzeile stammen. Vor dem ZIP muss geprüft werden: Themenordner und Archiv enthalten dieselben importierten IDs und dieselben Captions.


## Piwigo-Arbeitsordner niemals als Sammlung übernehmen

Piwigo-Arbeitsnamen wie `TEMP-store`, `TEMP-store Kategorie 170`, `postkarten-temp` oder ähnliche technische Sammel-/Arbeitsordner dürfen niemals als `collection`, `collections`, Filter-Chip, Tag oder Projektname in Historicbits auftauchen.

Wenn Bilder aus einem temporären Piwigo-Ordner in ein bestehendes Thema importiert werden, gelten ausschließlich die inhaltlichen Ziel-Labels des Historicbits-Themas. Beispiel: Import in `rppc-postkarten/` bekommt nur `RPPC/Postkarte` und `Postkarten`, nicht den Piwigo-Arbeitsordnernamen.


## Mandatory English-field integrity check

After every import or data update, the assistant must run its own check before creating the ZIP:

- `titleEn` must be real English.
- `captionEn` must be real English.
- German source text may remain only in `title`, `caption`, `rawCaption` or other German/source fields.
- `titleEn` and `captionEn` must not contain German sentence fragments such as `eines`, `einer`, `einem`, `mit`, `und`, `Datierung`, `Innenansicht`, `Maenner`, `Frauen`, `Kinder`, `Gebaeude`, or visible umlauts from untranslated German text.
- If a reliable full translation cannot be produced, use a safe English description such as `Historic real-photo postcard. Motif: everyday scene on a historic real-photo postcard.` rather than mixing German into the English field.
- Before delivery, spot-check at least one newly imported detail view in English mode. The visible title, caption, date and collection must not show German text in the English UI.

This is a blocking rule. If the English-field check fails, no ZIP may be delivered.

## Shared thumbnail folder

Der verbindliche Ordner für manuell ergänzte Thumbnail-/Vorschaubilder ist:

```text
shared/thumbs/
```

Nicht verwenden:

```text
shared/sams/
```

`shared/thumbs/` darf beim Clean-up oder bei neuen ZIP-Versionen nicht gelöscht werden. Wenn der Ordner leer ist, muss eine `.keep`-Datei enthalten sein, damit die Struktur erhalten bleibt. Fortepan-/Fotospan-Vorschaubilder oder andere gemeinsam genutzte Thumbnails werden hier abgelegt, sofern sie nicht bereits über externe URLs geladen werden.


## Fortlaufende Versionsnummerierung

Alle Versionen werden immer fortlaufend nummeriert.

```text
VS49 → VS50 → VS51 → VS52 ...
```

Auch falsche, verworfene oder nur teilweise verwendete Versionen verbrauchen ihre Nummer. Nicht zurückspringen und keine Nummer erneut verwenden.

Nächste Version nach VS49 ist VS50.

## VS54 Präzisierung: verbindliches Ziel für Open original

`openOriginalUrl = verbindliches Ziel` für den sichtbaren Link „Open original“.
`pageUrl allein ist` nicht ausreichend, weil die Piwigo-Seite nur die Bildseite öffnet und nicht zwingend die High-Res-Bilddatei.

Wenn ein Piwigo-Link mit `action.php?download=` technisch einen Speichern-Dialog auslöst, muss die Browseransicht über den Core abgefangen werden: High-Res ja, aber kein Speichern-Dialog. Entscheidend ist nicht die Bildseite, sondern der direkte High-Res-Zielpfad in `openOriginalUrl`.
