{"id":207,"date":"2026-07-12T20:40:09","date_gmt":"2026-07-12T20:40:09","guid":{"rendered":"https:\/\/katsceremonials.com\/?page_id=207"},"modified":"2026-07-12T20:59:22","modified_gmt":"2026-07-12T20:59:22","slug":"wedding-mystery-game","status":"publish","type":"page","link":"https:\/\/katsceremonials.com\/en\/wedding-mystery-game\/","title":{"rendered":"wedding mystery game"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\r\n    <div\r\n        class=\"kats-mystery-box\"\r\n        id=\"kats-mystery-box\"\r\n        data-spielcode=\"\"\r\n        data-ajax-url=\"https:\/\/katsceremonials.com\/wp-admin\/admin-ajax.php\"\r\n        data-nonce=\"89f5d4c7a2\"\r\n    >\r\n\r\n        <h2>Wer hat die Eheringe geklaut?<\/h2>\r\n\r\n        <p>\r\n            Gib deinen vollst\u00e4ndigen Namen ein und entdecke deine geheime Rolle.\r\n        <\/p>\r\n\r\n        \r\n            <p class=\"kats-fehler\">\r\n                Der Spielcode fehlt.\r\n            <\/p>\r\n\r\n        \r\n    <\/div>\r\n\r\n    <style>\r\n        .kats-mystery-box {\r\n            max-width: 500px;\r\n            margin: 40px auto;\r\n            padding: 30px 20px;\r\n            background: #ffffff;\r\n            border-radius: 16px;\r\n            box-shadow: 0 5px 25px rgba(0, 0, 0, 0.12);\r\n            text-align: center;\r\n        }\r\n\r\n        .kats-mystery-box input {\r\n            width: 100%;\r\n            padding: 14px;\r\n            margin-top: 15px;\r\n            border: 1px solid #cccccc;\r\n            border-radius: 8px;\r\n            font-size: 17px;\r\n            text-align: center;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        .kats-mystery-box button {\r\n            width: 100%;\r\n            margin-top: 12px;\r\n            padding: 14px;\r\n            border: none;\r\n            border-radius: 8px;\r\n            background: #222222;\r\n            color: #ffffff;\r\n            font-size: 17px;\r\n            font-weight: bold;\r\n            cursor: pointer;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        .kats-mystery-box button:disabled {\r\n            cursor: wait;\r\n            opacity: 0.6;\r\n        }\r\n\r\n        .kats-fehler {\r\n            margin-top: 20px;\r\n            color: #a02020;\r\n        }\r\n\r\n        .kats-ladestatus {\r\n            margin-top: 14px;\r\n            color: #666666;\r\n            font-size: 14px;\r\n        }\r\n\r\n        .kats-gastname {\r\n            margin-top: 22px;\r\n            margin-bottom: 5px;\r\n            font-size: 20px;\r\n            font-weight: bold;\r\n        }\r\n\r\n        .kats-rollenbild {\r\n            margin-top: 20px;\r\n        }\r\n\r\n        .kats-rollenbild[hidden],\r\n        #kats-gast-ergebnis[hidden],\r\n        .kats-fehler[hidden] {\r\n            display: none;\r\n        }\r\n\r\n        .kats-rollenbild img {\r\n            display: block;\r\n            width: 100%;\r\n            height: auto;\r\n            border-radius: 10px;\r\n        }\r\n    <\/style>\r\n\r\n    <script>\r\n        (function () {\r\n\r\n            const box = document.getElementById(\r\n                'kats-mystery-box'\r\n            );\r\n\r\n            if (!box) {\r\n                return;\r\n            }\r\n\r\n            const spielcode =\r\n                box.dataset.spielcode || '';\r\n\r\n            const ajaxUrl =\r\n                box.dataset.ajaxUrl || '';\r\n\r\n            const nonce =\r\n                box.dataset.nonce || '';\r\n\r\n            if (!spielcode) {\r\n                return;\r\n            }\r\n\r\n            const formular =\r\n                document.getElementById(\r\n                    'kats-mystery-form'\r\n                );\r\n\r\n            const eingabefeld =\r\n                document.getElementById(\r\n                    'kats-gastname'\r\n                );\r\n\r\n            const namensliste =\r\n                document.getElementById(\r\n                    'kats-namensliste'\r\n                );\r\n\r\n            const suchbutton =\r\n                document.getElementById(\r\n                    'kats-suchbutton'\r\n                );\r\n\r\n            const ladestatus =\r\n                document.getElementById(\r\n                    'kats-ladestatus'\r\n                );\r\n\r\n            const fehlerAnzeige =\r\n                document.getElementById(\r\n                    'kats-fehler'\r\n                );\r\n\r\n            const ergebnis =\r\n                document.getElementById(\r\n                    'kats-gast-ergebnis'\r\n                );\r\n\r\n            const gastnameAnzeige =\r\n                document.getElementById(\r\n                    'kats-gastname-anzeige'\r\n                );\r\n\r\n            const rollenButton =\r\n                document.getElementById(\r\n                    'kats-rollen-button'\r\n                );\r\n\r\n            const rollenbildBereich =\r\n                document.getElementById(\r\n                    'kats-rollenbild'\r\n                );\r\n\r\n            const rollenbild =\r\n                document.getElementById(\r\n                    'kats-rollenbild-img'\r\n                );\r\n\r\n            let gaeste = [];\r\n\r\n            const cacheSchluessel =\r\n                'kats_mystery_spieldaten_' +\r\n                spielcode.toLowerCase();\r\n\r\n            \/*\r\n             * Browser-Cache: sechs Stunden.\r\n             *\/\r\n            const browserCacheDauer =\r\n                6 * 60 * 60 * 1000;\r\n\r\n\r\n            function nameBereinigen(name) {\r\n                return String(name || '')\r\n                    .trim()\r\n                    .toLowerCase()\r\n                    .replace(\/\\s+\/g, ' ');\r\n            }\r\n\r\n\r\n            function fehlerAusblenden() {\r\n                fehlerAnzeige.textContent = '';\r\n                fehlerAnzeige.hidden = true;\r\n            }\r\n\r\n\r\n            function fehlerAnzeigen(meldung) {\r\n                fehlerAnzeige.textContent =\r\n                    meldung;\r\n\r\n                fehlerAnzeige.hidden = false;\r\n            }\r\n\r\n\r\n            function namenslisteFuellen() {\r\n\r\n                namensliste.innerHTML = '';\r\n\r\n                gaeste.forEach(function (gast) {\r\n\r\n                    const option =\r\n                        document.createElement(\r\n                            'option'\r\n                        );\r\n\r\n                    option.value = gast.name;\r\n\r\n                    namensliste.appendChild(\r\n                        option\r\n                    );\r\n                });\r\n            }\r\n\r\n\r\n            function datenAnwenden(neueGaeste) {\r\n\r\n                gaeste = Array.isArray(neueGaeste)\r\n                    ? neueGaeste\r\n                    : [];\r\n\r\n                namenslisteFuellen();\r\n\r\n                suchbutton.disabled = false;\r\n                suchbutton.textContent =\r\n                    'Namen suchen';\r\n\r\n                ladestatus.textContent =\r\n                    gaeste.length +\r\n                    ' G\u00e4ste wurden geladen.';\r\n            }\r\n\r\n\r\n            function browserCacheLesen() {\r\n\r\n                try {\r\n\r\n                    const gespeichert =\r\n                        sessionStorage.getItem(\r\n                            cacheSchluessel\r\n                        );\r\n\r\n                    if (!gespeichert) {\r\n                        return false;\r\n                    }\r\n\r\n                    const cacheDaten =\r\n                        JSON.parse(gespeichert);\r\n\r\n                    if (\r\n                        !cacheDaten ||\r\n                        !Array.isArray(\r\n                            cacheDaten.gaeste\r\n                        ) ||\r\n                        !cacheDaten.zeitpunkt\r\n                    ) {\r\n                        return false;\r\n                    }\r\n\r\n                    const alter =\r\n                        Date.now() -\r\n                        Number(\r\n                            cacheDaten.zeitpunkt\r\n                        );\r\n\r\n                    if (\r\n                        alter >\r\n                        browserCacheDauer\r\n                    ) {\r\n                        sessionStorage.removeItem(\r\n                            cacheSchluessel\r\n                        );\r\n\r\n                        return false;\r\n                    }\r\n\r\n                    datenAnwenden(\r\n                        cacheDaten.gaeste\r\n                    );\r\n\r\n                    ladestatus.textContent =\r\n                        'Spieldaten wurden aus dem Zwischenspeicher geladen.';\r\n\r\n                    return true;\r\n\r\n                } catch (fehler) {\r\n\r\n                    sessionStorage.removeItem(\r\n                        cacheSchluessel\r\n                    );\r\n\r\n                    return false;\r\n                }\r\n            }\r\n\r\n\r\n            function browserCacheSpeichern(\r\n                neueGaeste\r\n            ) {\r\n\r\n                try {\r\n\r\n                    sessionStorage.setItem(\r\n                        cacheSchluessel,\r\n                        JSON.stringify({\r\n                            zeitpunkt: Date.now(),\r\n                            gaeste: neueGaeste\r\n                        })\r\n                    );\r\n\r\n                } catch (fehler) {\r\n                    \/*\r\n                     * Das Spiel funktioniert auch,\r\n                     * wenn der Browser keinen Speicher erlaubt.\r\n                     *\/\r\n                }\r\n            }\r\n\r\n\r\n            async function spieldatenLaden(\r\n                imHintergrund\r\n            ) {\r\n\r\n                if (!imHintergrund) {\r\n\r\n                    suchbutton.disabled = true;\r\n\r\n                    suchbutton.textContent =\r\n                        'Spieldaten werden geladen \u2026';\r\n\r\n                    ladestatus.textContent =\r\n                        'Die G\u00e4steliste wird vorbereitet.';\r\n                }\r\n\r\n                const formularDaten =\r\n                    new FormData();\r\n\r\n                formularDaten.append(\r\n                    'action',\r\n                    'kats_mystery_game_daten'\r\n                );\r\n\r\n                formularDaten.append(\r\n                    'nonce',\r\n                    nonce\r\n                );\r\n\r\n                formularDaten.append(\r\n                    'spielcode',\r\n                    spielcode\r\n                );\r\n\r\n                try {\r\n\r\n                    const antwort =\r\n                        await fetch(\r\n                            ajaxUrl,\r\n                            {\r\n                                method: 'POST',\r\n                                body: formularDaten,\r\n                                credentials: 'same-origin',\r\n                                cache: 'no-store'\r\n                            }\r\n                        );\r\n\r\n                    if (!antwort.ok) {\r\n                        throw new Error(\r\n                            'HTTP-Fehler ' +\r\n                            antwort.status\r\n                        );\r\n                    }\r\n\r\n                    const daten =\r\n                        await antwort.json();\r\n\r\n                    if (\r\n                        !daten.success ||\r\n                        !daten.data ||\r\n                        !Array.isArray(\r\n                            daten.data.gaeste\r\n                        )\r\n                    ) {\r\n                        throw new Error(\r\n                            daten.data &&\r\n                            daten.data.meldung\r\n                                ? daten.data.meldung\r\n                                : 'Die Spieldaten konnten nicht geladen werden.'\r\n                        );\r\n                    }\r\n\r\n                    datenAnwenden(\r\n                        daten.data.gaeste\r\n                    );\r\n\r\n                    browserCacheSpeichern(\r\n                        daten.data.gaeste\r\n                    );\r\n\r\n                } catch (fehler) {\r\n\r\n                    if (gaeste.length > 0) {\r\n\r\n                        ladestatus.textContent =\r\n                            'Gespeicherte Spieldaten werden verwendet.';\r\n\r\n                        return;\r\n                    }\r\n\r\n                    suchbutton.disabled = true;\r\n\r\n                    suchbutton.textContent =\r\n                        'Spieldaten nicht verf\u00fcgbar';\r\n\r\n                    ladestatus.textContent = '';\r\n\r\n                    fehlerAnzeigen(\r\n                        fehler.message ||\r\n                        'Die Spieldaten konnten nicht geladen werden.'\r\n                    );\r\n                }\r\n            }\r\n\r\n\r\n            \/*\r\n             * Zuerst vorhandenen Browser-Cache nutzen.\r\n             *\/\r\n            const cacheVorhanden =\r\n                browserCacheLesen();\r\n\r\n            \/*\r\n             * Anschlie\u00dfend den aktuellen Stand laden.\r\n             * Bei vorhandenem Cache geschieht dies im Hintergrund.\r\n             *\/\r\n            spieldatenLaden(\r\n                cacheVorhanden\r\n            );\r\n\r\n\r\n            eingabefeld.removeAttribute(\r\n                'list'\r\n            );\r\n\r\n\r\n            function namenslisteAktualisieren() {\r\n\r\n                const eingabe =\r\n                    eingabefeld.value.trim();\r\n\r\n                if (eingabe.length >= 1) {\r\n\r\n                    eingabefeld.setAttribute(\r\n                        'list',\r\n                        'kats-namensliste'\r\n                    );\r\n\r\n                } else {\r\n\r\n                    eingabefeld.removeAttribute(\r\n                        'list'\r\n                    );\r\n                }\r\n            }\r\n\r\n\r\n            eingabefeld.addEventListener(\r\n                'input',\r\n                namenslisteAktualisieren\r\n            );\r\n\r\n            eingabefeld.addEventListener(\r\n                'focus',\r\n                namenslisteAktualisieren\r\n            );\r\n\r\n\r\n            formular.addEventListener(\r\n                'submit',\r\n                function (event) {\r\n\r\n                    event.preventDefault();\r\n\r\n                    fehlerAusblenden();\r\n\r\n                    const eingegebenerName =\r\n                        nameBereinigen(\r\n                            eingabefeld.value\r\n                        );\r\n\r\n                    if (!eingegebenerName) {\r\n\r\n                        fehlerAnzeigen(\r\n                            'Bitte gib deinen Namen ein.'\r\n                        );\r\n\r\n                        return;\r\n                    }\r\n\r\n                    const gast =\r\n                        gaeste.find(\r\n                            function (eintrag) {\r\n\r\n                                return (\r\n                                    nameBereinigen(\r\n                                        eintrag.name\r\n                                    ) ===\r\n                                    eingegebenerName\r\n                                );\r\n                            }\r\n                        );\r\n\r\n                    if (!gast) {\r\n\r\n                        ergebnis.hidden = true;\r\n\r\n                        fehlerAnzeigen(\r\n                            'Der Name wurde nicht gefunden.'\r\n                        );\r\n\r\n                        return;\r\n                    }\r\n\r\n                    gastnameAnzeige.textContent =\r\n                        gast.name;\r\n\r\n                    rollenbild.src =\r\n                        gast.rollenbild || '';\r\n\r\n                    rollenbildBereich.hidden =\r\n                        true;\r\n\r\n                    rollenButton.style.display =\r\n                        'block';\r\n\r\n                    ergebnis.hidden = false;\r\n                }\r\n            );\r\n\r\n\r\n            rollenButton.addEventListener(\r\n                'click',\r\n                function () {\r\n\r\n                    rollenbildBereich.hidden =\r\n                        false;\r\n\r\n                    rollenButton.style.display =\r\n                        'none';\r\n                }\r\n            );\r\n\r\n        })();\r\n    <\/script>\r\n\r\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-207","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>wedding mystery game - Kat&#039;s Ceremonials<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/katsceremonials.com\/en\/wedding-mystery-game\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"wedding mystery game - Kat&#039;s Ceremonials\" \/>\n<meta property=\"og:url\" content=\"https:\/\/katsceremonials.com\/en\/wedding-mystery-game\/\" \/>\n<meta property=\"og:site_name\" content=\"Kat&#039;s Ceremonials\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-12T20:59:22+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/wedding-mystery-game\\\/\",\"url\":\"https:\\\/\\\/katsceremonials.com\\\/wedding-mystery-game\\\/\",\"name\":\"wedding mystery game - Kat&#039;s Ceremonials\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/#website\"},\"datePublished\":\"2026-07-12T20:40:09+00:00\",\"dateModified\":\"2026-07-12T20:59:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/wedding-mystery-game\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/katsceremonials.com\\\/wedding-mystery-game\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/wedding-mystery-game\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/katsceremonials.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"wedding mystery game\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/#website\",\"url\":\"https:\\\/\\\/katsceremonials.com\\\/\",\"name\":\"Kat&#039;s Ceremonials\",\"description\":\"Hochzeitsdesign, Papeterie und digitale Hochzeitsideen f\u00fcr eine pers\u00f6nliche, stimmige Hochzeit.\",\"publisher\":{\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/katsceremonials.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/#organization\",\"name\":\"Kat&#039;s Ceremonials\",\"url\":\"https:\\\/\\\/katsceremonials.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/katsceremonials.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ext-custom-logo-1782758668366.webp\",\"contentUrl\":\"https:\\\/\\\/katsceremonials.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ext-custom-logo-1782758668366.webp\",\"width\":1024,\"height\":1024,\"caption\":\"Kat&#039;s Ceremonials\"},\"image\":{\"@id\":\"https:\\\/\\\/katsceremonials.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"wedding mystery game - Kat&#039;s Ceremonials","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/katsceremonials.com\/en\/wedding-mystery-game\/","og_locale":"en_US","og_type":"article","og_title":"wedding mystery game - Kat&#039;s Ceremonials","og_url":"https:\/\/katsceremonials.com\/en\/wedding-mystery-game\/","og_site_name":"Kat&#039;s Ceremonials","article_modified_time":"2026-07-12T20:59:22+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/katsceremonials.com\/wedding-mystery-game\/","url":"https:\/\/katsceremonials.com\/wedding-mystery-game\/","name":"wedding mystery game - Kat&#039;s Ceremonials","isPartOf":{"@id":"https:\/\/katsceremonials.com\/#website"},"datePublished":"2026-07-12T20:40:09+00:00","dateModified":"2026-07-12T20:59:22+00:00","breadcrumb":{"@id":"https:\/\/katsceremonials.com\/wedding-mystery-game\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/katsceremonials.com\/wedding-mystery-game\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/katsceremonials.com\/wedding-mystery-game\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/katsceremonials.com\/"},{"@type":"ListItem","position":2,"name":"wedding mystery game"}]},{"@type":"WebSite","@id":"https:\/\/katsceremonials.com\/#website","url":"https:\/\/katsceremonials.com\/","name":"Kat&#039;s Ceremonials","description":"Wedding design, stationery and digital wedding ideas for a personal, cohesive celebration.","publisher":{"@id":"https:\/\/katsceremonials.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/katsceremonials.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/katsceremonials.com\/#organization","name":"Kat&#039;s Ceremonials","url":"https:\/\/katsceremonials.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/katsceremonials.com\/#\/schema\/logo\/image\/","url":"https:\/\/katsceremonials.com\/wp-content\/uploads\/2026\/06\/ext-custom-logo-1782758668366.webp","contentUrl":"https:\/\/katsceremonials.com\/wp-content\/uploads\/2026\/06\/ext-custom-logo-1782758668366.webp","width":1024,"height":1024,"caption":"Kat&#039;s Ceremonials"},"image":{"@id":"https:\/\/katsceremonials.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/pages\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/comments?post=207"}],"version-history":[{"count":2,"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/pages\/207\/revisions"}],"predecessor-version":[{"id":209,"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/pages\/207\/revisions\/209"}],"wp:attachment":[{"href":"https:\/\/katsceremonials.com\/en\/wp-json\/wp\/v2\/media?parent=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}