{
  "ok": true,
  "service": "Fristenrechner CH + Extraktion + Analyse + Dossier-Matching",
  "version": "1.9.30-v19.30 (= v19.28-Verhalten; NEU nur: body.stamp_vision=\"off\" ueberspringt das Gemma-Stempelmodell, fuer Tests mit einem einzigen Modell fuer alle Schritte) | vorher 1.9.28-v19.28 (NEU: body.infomaniak_model (Whitelist) wählt das Extraktionsmodell pro Aufruf; Claude max_tokens 16000, Reasoning-Modelle bei Infomaniak 14000. Sonst wie v19.27) | vorher 1.9.27-v19.27 (NEU: Match-Guard akzeptiert auch Dossiers, deren Gegenpartei-Teil eine echte Partei voll trifft (Auftraggeber-Dossiers santésuisse/DEKRA/Creditreform). Sonst wie v19.26) | vorher 1.9.26-v19.26 (NEU: API-Schluessel X-API-Key fuer POST-Endpunkte, aktiv sobald config.json api_key enthaelt. Sonst wie v19.25) | vorher 1.9.25-v19.25 (NEU: Merge vergleicht Datum vs. Tage ueber den Stempel und nimmt die fruehere Frist; Claude-Retry bei leerem Inhalt/429/5xx. Sonst wie v19.24) | vorher 1.9.24-v19.24 (NEU: Outgoing-Past-Guard auch nach der Zweitmeinung. Sonst wie v19.23) | vorher 1.9.23-v19.23 (NEU: Infomaniak-Retry bei 429/5xx/Netzfehler, 3 Versuche; Fristenrechner prueft stamp_date/days und begrenzt Schleifen; Adressmuster Bd/Rte. Sonst wie v19.22) | vorher 1.9.22-v19.22 (NEU: Datentrennung — body.escalate_provider schaltet Stufe 3 zu: pseudonymisierte Zweitmeinung nur bei Ausloesern, Leak-Guard, Merge nur namensfreier Felder; Guard eigener Brief mit vergangener Frist; escalate_dry_run/escalate_always fuer Tests. Sonst wie v19.21) | vorher 1.9.21-v19.21 (extraction_json.filename_date_hint — ' vom DD.MM.YYYY' wenn Dokumentdatum >10 Tage vor Empfangsstempel liegt (Valentin-Feedback: Zahlungsbefehle u.ae. mit grosser Zustellungs-Zeitspanne). Sonst wie v19.20)",
  "endpoints": {
    "POST /": "{stamp_date, days, procedure_type, canton}",
    "POST /extract": "{pdf_base64} -> {text, pages, ok}",
    "POST /analyze": "{pdf_base64} -> {extraction_json, model, pages, ok}",
    "POST /match": "{extraction_json, candidates:[string]} -> {folder, letter, confidence, reason, ok}",
    "GET /models": "Infomaniak model list (debug)"
  }
}