diff --git a/Writerside/ac.tree b/Writerside/ac.tree
index b1334aa..c92ce47 100644
--- a/Writerside/ac.tree
+++ b/Writerside/ac.tree
@@ -36,6 +36,10 @@
+
+
+
+
diff --git a/Writerside/topics/knowledge/AMEX-Dining-Credit-benefit.md b/Writerside/topics/knowledge/AMEX-Dining-Credit-benefit.md
new file mode 100644
index 0000000..9f035df
--- /dev/null
+++ b/Writerside/topics/knowledge/AMEX-Dining-Credit-benefit.md
@@ -0,0 +1,8 @@
+# AMEX Dining Credit benefit
+
+An AMEX Platinum card provides “Global Dining Credit” benefits.
+
+* [Restaurants overview](https://www.americanexpress.com/en-gb/benefits/diningbenefit/) (UK language)
+* [Restaurants overview](https://www.americanexpress.com/de-de/benefits/diningbenefit/) (DE language)
+
+
diff --git a/Writerside/topics/knowledge/amex-dining-credit-spec.yaml b/Writerside/topics/knowledge/amex-dining-credit-spec.yaml
new file mode 100644
index 0000000..c6bec26
--- /dev/null
+++ b/Writerside/topics/knowledge/amex-dining-credit-spec.yaml
@@ -0,0 +1,346 @@
+openapi: 3.0.0
+info:
+ title: AMEX dining offers API
+ description: This is a reverse-engineered description of the AMEX fine dining offers taken from e.g. https://www.americanexpress.com/de-de/benefits/diningbenefit/
+ version: 0.1.0
+
+servers:
+ - url: https://dining-offers-prod.amex.r53.tuimedia.com/api
+
+paths:
+
+ /country/{countryCode}/merchants:
+ get:
+ summary: Gets all supported merchants of all cities.
+ parameters:
+ - name: countryCode
+ in: path
+ description: The ISO country code of which country to get the cities from.
+ required: true
+ schema:
+ type: string
+ pattern: '^\w{2}$'
+ responses:
+ '200':
+ description: The list of merchants.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ address:
+ type: string
+ postcode:
+ type: string
+ businessData:
+ type: object
+ properties:
+ website:
+ type: string
+ phone:
+ type: string
+ isNew:
+ type: boolean
+ isHalal:
+ type: boolean
+ isInHotel:
+ type: boolean
+ additionalComments:
+ type: string
+ resyEnabled:
+ type: boolean
+ resyApiKey:
+ type: string
+ resyVenueId:
+ type: string
+ required:
+ - website
+ - phone
+ - isNew
+ - isHalal
+ - isInHotel
+ - additionalComments
+ - resyEnabled
+ - resyApiKey
+ - resyVenueId
+ onlineOnly:
+ type: boolean
+ translations:
+ type: object
+ properties:
+ en:
+ type: object
+ properties:
+ name:
+ type: string
+ address:
+ type: string
+ postcode:
+ type: string
+ required:
+ - name
+ - address
+ - postcode
+ required:
+ - en
+ city:
+ type: object
+ properties:
+ id:
+ type: string
+ title:
+ type: string
+ translations:
+ type: object
+ properties:
+ en:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ zh_tw:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ required:
+ - en
+ required:
+ - id
+ - title
+ - translations
+ cuisine:
+ type: object
+ properties:
+ id:
+ type: string
+ title:
+ type: string
+ translations:
+ type: object
+ properties:
+ en:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ fr_ca:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ es_mx:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ zh_hk:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ zh_tw:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ en_gb:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ de_de:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ de_at:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ it_it:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ fr_fr:
+ type: object
+ properties:
+ title:
+ type: string
+ required:
+ - title
+ required:
+ - en
+ required:
+ - id
+ - title
+ - translations
+ isMerchantGroup:
+ type: boolean
+ merchants:
+ type: array
+ items: {}
+ showMerchant:
+ type: boolean
+ allMerchantsNew:
+ type: boolean
+ googleMapsUrl:
+ type: string
+ takeoutAvailable: {}
+ openingSoon:
+ type: boolean
+ isInMerchantGroup:
+ type: boolean
+ isHalal:
+ type: boolean
+ required:
+ - id
+ - name
+ - address
+ - postcode
+ - businessData
+ - onlineOnly
+ - translations
+ - city
+ - cuisine
+ - isMerchantGroup
+ - merchants
+ - showMerchant
+ - allMerchantsNew
+ - googleMapsUrl
+ - takeoutAvailable
+ - openingSoon
+ - isInMerchantGroup
+ - isHalal
+ example:
+ id: cacf0498-4916-4c4b-9eb0-d4ddef7ed7d5
+ name: '1811'
+ address: Schlüterstraße 55
+ postcode: '10629'
+ businessData:
+ website: https://1811.berlin/reservierung
+ phone: "+49 30 8813440"
+ isNew: true
+ isHalal: false
+ isInHotel: false
+ additionalComments: ''
+ resyEnabled: false
+ resyApiKey: ''
+ resyVenueId: ''
+ onlineOnly: false
+ translations:
+ en:
+ name: '1811'
+ address: Schlüterstraße 55
+ postcode: '10629'
+ city:
+ id: 411034a0-48c2-4da7-9ff7-6ce641f9bafc
+ title: Berlin
+ translations:
+ en:
+ title: Berlin
+ zh_tw:
+ title: 柏林
+ cuisine:
+ id: fd3d5ee0-8c51-44e2-9b80-b649f578cd37
+ title: European
+ translations:
+ en:
+ title: European
+ fr_ca:
+ title: Cuisine européenne
+ es_mx:
+ title: Europea
+ zh_hk:
+ title: 歐洲菜
+ zh_tw:
+ title: 歐式料理
+ en_gb:
+ title: European
+ de_de:
+ title: Europäisch
+ de_at:
+ title: Europäisch
+ it_it:
+ title: Europea
+ fr_fr:
+ title: Européenne
+ isMerchantGroup: false
+ merchants: []
+ showMerchant: true
+ allMerchantsNew: true
+ googleMapsUrl: https://www.google.com/maps/search/1811,+Schl%C3%BCterstra%C3%9Fe+55,+Berlin/@52.5044354,13.3177009
+ takeoutAvailable:
+ openingSoon: false
+ isInMerchantGroup: false
+ isHalal: false
+
+ /country/{countryCode}/cities:
+ get:
+ summary: Gets all supported cities.
+ parameters:
+ - name: countryCode
+ in: path
+ description: The ISO country code of which country to get the cities from.
+ required: true
+ schema:
+ type: string
+ pattern: '^\w{2}$'
+ responses:
+ '200':
+ description: The list of cities.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ title:
+ type: string
+ translations:
+ type: object
+ lat:
+ type: number
+ format: float
+ nullable: true
+ lng:
+ type: number
+ format: float
+ nullable: true
+
+ example:
+ id: "abcde-1fcfg-ccdd4242"
+ title: "Testhausen"