{"id":3321,"date":"2019-09-21T18:03:15","date_gmt":"2019-09-21T16:03:15","guid":{"rendered":"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/"},"modified":"2019-09-21T18:03:15","modified_gmt":"2019-09-21T16:03:15","slug":"project-fugu-%f0%9f%90%a1-at-w3c-tpac","status":"publish","type":"post","link":"https:\/\/tomayac.com\/wordpress\/2019\/09\/21\/project-fugu-%f0%9f%90%a1-at-w3c-tpac\/","title":{"rendered":"Project Fugu \ud83d\udc21 at W3C TPAC"},"content":{"rendered":"\n\t\t\t<p>This week, I attended my now third <abbr title=\"World Wide Web Consortium\">W3C<\/abbr>\n<abbr title=\"Technical Plenary and Advisory Committee\">TPAC<\/abbr>.\nAfter <a href=\"https:\/\/www.w3.org\/2017\/11\/TPAC\/Overview.html\">TPAC\u00a02017<\/a>\nin Burlingame,\u00a0CA, United States of America and\n<a href=\"https:\/\/www.w3.org\/2018\/10\/TPAC\/\">TPAC\u00a02018<\/a> in Lyon, France,\n<a href=\"https:\/\/www.w3.org\/2019\/09\/TPAC\/Overview.html\">TPAC\u00a02019<\/a> was held in Fukuoka, Japan.\nFor the first time, I felt like I could <em>somewhat meaningfully<\/em> contribute and\nhad at least a <em>baseline understanding<\/em> of the underlying W3C mechanics.\nAs each year, the <a href=\"https:\/\/www.w3.org\/2019\/09\/TPAC\/schedule.html\">TPAC agenda<\/a> was crammed\nand overlaps were unavoidable.\nBelow is the write-up of the meetings I had time to attend.<\/p>\n<h4 id=\"day-1\">Day 1 <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#day-1\">\u2693<\/a><\/h4>\n<p>On Monday, I attended the <a href=\"https:\/\/www.w3.org\/sw\/\">Service Workers Working Group<\/a>\n(WG) meeting.\nThe <a href=\"https:\/\/github.com\/w3c\/ServiceWorker\/issues\/1460#issue-482168365\">agenda<\/a> this time\nwas a mix of implementor updates, new proposals, and a lot of discussion of special cases.\nI know <a href=\"https:\/\/twitter.com\/jaffathecake\">Jake Archibald<\/a> is working on a summary post,\nso I leave it to him to summarize the day.\nThe\n<a href=\"https:\/\/docs.google.com\/document\/d\/1q090ovJ4gd8wSfVtvuoZLMZ51YkiFDsEZ0Jiqi41Iys\/edit\">raw meeting minutes<\/a>\nare available in case you're interested.<\/p>\n<h4 id=\"day-2\">Day 2 <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#day-2\">\u2693<\/a><\/h4>\n<p>On Tuesday, I visited the\n<a href=\"https:\/\/www.w3.org\/2011\/webappsec\/\">Web Application Security Working Group<\/a>\nmeeting as an observer.\nI was mostly interested in this WG because the\n<a href=\"https:\/\/github.com\/w3c\/webappsec\/blob\/master\/meetings\/2019\/2019-09-TPAC-agenda.md\">agenda<\/a>\npromised interesting proposals like Apple's\n<a href=\"https:\/\/wicg.github.io\/change-password-url\/index.html\"><code>\/.well-known\/change-password<\/code><\/a>\nthat was met with universal agreement.\nSome interesting discussion also sparked around again Apple's\n<a href=\"https:\/\/lists.w3.org\/Archives\/Public\/public-webappsec\/2019Sep\/0004.html\"><code>isLoggedIn()<\/code><\/a>\nAPI proposal.\nI was reminded of why on the web we can't have nice things through an attack vector\nthat leverages <abbr title=\"HTTP Strict Transport Security\">HSTS<\/abbr> for tracking purposes.\nLuckily there is\n<a href=\"https:\/\/webkit.org\/blog\/8146\/protecting-against-hsts-abuse\/\">browser mitigation<\/a>\nin place to prevent this.\nThe\n<a href=\"https:\/\/github.com\/w3c\/webappsec\/blob\/master\/meetings\/2019\/2019-09-TPAC-minutes.md\">meeting minutes<\/a>\ncover the entire day.<\/p>\n<h4 id=\"day-3\">Day 3 <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#day-3\">\u2693<\/a><\/h4>\n<p>Wednesday was unconference day with\n<a href=\"https:\/\/w3c.github.io\/tpac-breakouts\/sessions.html\">59(!) breakout sessions<\/a>.\nOther than the at times tedious working group sessions,\nI find breakout sessions to be oftentimes more interesting and an opportunity to learn new things.<\/p>\n<h5 id=\"breakout-session-js-built-in-modules\">Breakout Session JS Built-in Modules <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#breakout-session-js-built-in-modules\">\u2693<\/a><\/h5>\n<p>The first breakout session I attended was on\n<a href=\"https:\/\/w3c.github.io\/tpac-breakouts\/sessions.html#jsbuiltin\">JS built-in modules<\/a>,\na <abbr title=\"Technical Committee 39\">TC39<\/abbr> proposal by Apple for a\n<a href=\"https:\/\/github.com\/tc39\/proposal-javascript-standard-library\">JavaScript Built-in Library<\/a>.\nThe <a href=\"https:\/\/www.w3.org\/2019\/09\/18-jsbuiltin-minutes.html\">session's minutes<\/a> are available,\nin general there was a lot of discussion and disagreement around namespaces and\nhow built-in modules should be governed.<\/p>\n<h5 id=\"breakout-session-new-module-types%3A-json%2C-css%2C-and-html\">Breakout Session New Module Types: JSON, CSS, and HTML <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#breakout-session-new-module-types%3A-json%2C-css%2C-and-html\">\u2693<\/a><\/h5>\n<p>The next session was on\n<a href=\"https:\/\/w3c.github.io\/tpac-breakouts\/sessions.html#new-modules\">new module types for JSON, CSS, and HTML<\/a>.\nAs the developer of\n<a href=\"https:\/\/github.com\/GoogleChromeLabs\/dark-mode-toggle\"><code>&lt;dark-mode-toggle&gt;<\/code><\/a>,\nI'm fully in favor of getting rid of the clumsy\n<a href=\"https:\/\/github.com\/GoogleChromeLabs\/dark-mode-toggle\/blob\/bf737bed7a7d3ba5086585a94578ed814500bb6c\/src\/dark-mode-toggle.mjs#L75-L249\"><code>innerHTML<\/code> all the things!!!1!<\/a>\napproach that vanilla JS custom elements currently make the programmer to follow.\nIf you're likewise interested, subscribe to the\n<a href=\"https:\/\/github.com\/w3c\/webcomponents\/issues\/759\">CSS Modules issue<\/a> and the\n<a href=\"https:\/\/github.com\/w3c\/webcomponents\/issues\/645\">HTML Modules issue<\/a>\nin the Web Components WG repo.\nThe discussion circulated mostly around details how <code>@imports<\/code> would work and\nhow to convey the type of the import to avoid security issues,\nfor example following the <code>&lt;link rel=&quot;preload&quot;&gt;<\/code> way.\nThe <a href=\"https:\/\/www.w3.org\/2019\/09\/18-new-modules-minutes.html\">meeting minutes<\/a>\nhave the full details.<\/p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token comment\">\/\/ Non-working example<\/span><br><span class=\"token keyword\">import<\/span> styles <span class=\"token keyword\">from<\/span> <span class=\"token string\">'styles.css'<\/span> <span class=\"token keyword\">as<\/span> stylesheet<span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">import<\/span> settings <span class=\"token keyword\">from<\/span> <span class=\"token string\">'settings.json'<\/span> <span class=\"token keyword\">as<\/span> json<span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<h5 id=\"breakout-session-mini-app-standardization\">Breakout Session Mini App Standardization <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#breakout-session-mini-app-standardization\">\u2693<\/a><\/h5>\n<p>The <a href=\"https:\/\/w3c.github.io\/tpac-breakouts\/sessions.html#miniapp\">Mini App Standardization<\/a>\nsession, organized by the <a href=\"https:\/\/www.w3.org\/2018\/chinese-web-ig\/\">Chinese Web Interest Group<\/a>,\nwas super interesting to me.\nIn preparation of the\n<a href=\"https:\/\/events.google.cn\/intl\/zh-CN\/developerdays2019\/\">Google Developer Days in Shanghai, China<\/a>,\nthat I spoke at right before TPAC, I have\n<a href=\"https:\/\/blog.tomayac.com\/2019\/08\/15\/a-quick-look-at-wechats-mini-programs\/\">looked at WeChat mini programs<\/a>\nand documented the developer experience and how close to and yet how far from the web they are.\nA couple of days before TPAC, the Chinese Web Interest Group had released a\n<a href=\"https:\/\/www.w3.org\/TR\/mini-app-white-paper\/\">white paper<\/a> that documents their ideas.\nThe success the various mini apps platforms have achieved deserves our full respect.\nThere were, however, various voices\u2014including from the\n<abbr title=\"Technical Advisory Group\">TAG<\/abbr>\u2014that urged the various stakeholders\nto converge their work with efforts made in the area of\nProgressive Web Apps, for example around the <a href=\"https:\/\/w3c.github.io\/manifest\/\">Web App Manifest<\/a>\nrather than create yet another manifest-like format.\nRead the <a href=\"https:\/\/www.w3.org\/2019\/09\/18-miniapp-minutes.html\">full session minutes<\/a> for all details.\nOne of the results of the session was the creation of the\n<a href=\"https:\/\/www.w3.org\/community\/miniapps\/\">MiniApps Ecosystem Community Group<\/a>\nthat I hope to join.<\/p>\n<h5 id=\"breakout-session-for-a-more-capable-web%E2%80%94project-fugu\">Breakout Session For a More Capable Web\u2014Project Fugu <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#breakout-session-for-a-more-capable-web%E2%80%94project-fugu\">\u2693<\/a><\/h5>\n<p>Together with <a href=\"https:\/\/twitter.com\/anssik\">Anssi Kostiainen<\/a> from Intel and\n<a href=\"https:\/\/twitter.com\/thejohnjansen\">John Jansen<\/a> from Microsoft,\nI organized a breakout session\n<a href=\"https:\/\/w3c.github.io\/tpac-breakouts\/sessions.html#capable-web\">for a more capable web<\/a>\nunder the umbrella of Project Fugu \ud83d\udc21.\nYou can see our slides embedded below.\nIn the session we argue that to remain relevant with native, hybrid, or mini apps, web apps, too,\nneed access to a comparable set of APIs.\nWe briefly touched upon the APIs being worked on by the cross-company project partners,\nand then opened the floor for an open discussion on why we see the browser-accessible web in danger\nif we don't move it forward now,\ndespite all fully acknowledged challenges around privacy, security, and compatibility.\nYou can follow the discussion in the excellent(!)\n<a href=\"https:\/\/www.w3.org\/2019\/09\/18-capable-web-minutes.html\">session minutes<\/a>, courtesy of Anssi.<\/p>\n<iframe src=\"https:\/\/docs.google.com\/presentation\/d\/e\/2PACX-1vSBOBqz_UiNBce-HxpS8EC2lVSeAbzn2lrreesUhhnNaF-3zSieO8A5RaqVc-YhbuuZN0MFKOBsKf7g\/embed?start=false&loop=false&delayms=3000\" frameborder=\"0\" width=\"800\" height=\"477\" style=\"max-width: 100%; width: 800px;\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\"><\/iframe>\n<h4 id=\"day-4-and-day-5\">Day 4 and Day 5 <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#day-4-and-day-5\">\u2693<\/a><\/h4>\n<p>Thursday and Friday were dedicated to the <a href=\"https:\/\/www.w3.org\/das\/\">Devices and Sensor WG<\/a>.\nThe <a href=\"https:\/\/github.com\/w3c\/devicesensors-wg\/issues\/24\">agenda<\/a> was not too packed,\nbut still kept us busy for one and a half days.\nWe discussed almost from the start about permissions and how they should be handled.\nPermissions are a big topic in Project Fugu \ud83d\udc21 and I'm happy\nthat there's work ongoing in the TAG to improve the situation, including efforts around the\n<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Permissions_API\">Permissions API<\/a>\nthat is unfortunately not universally supported, leading to inconsistencies\nwith some APIs having a static method for getting permission,\n<a href=\"https:\/\/github.com\/w3c\/sensors\/issues\/388#issuecomment-532942477\">others<\/a>\nasking for permission upon the first usage attempt,\nand yet others to integrate with the Permissions API.\nFor the <a href=\"https:\/\/w3c.github.io\/geolocation-sensor\/\">Geolocation Sensor API<\/a>,\nwe agreed to try retrofitting expressive configuration\nof foreground tracking into the <a href=\"https:\/\/w3c.github.io\/geolocation-api\/\">Geolocation API<\/a>\nspecification instead of doing it in Geolocation Sensor, which should improve vendor adoption.\nFor geofencing and background geolocation tracking, we decided to explore\n<a href=\"https:\/\/github.com\/beverloo\/notification-triggers\">Notification Triggers<\/a> and\n<a href=\"https:\/\/w3c.github.io\/wake-lock\/\">Wake Locks<\/a> respectively,\nwhich both weren't options when the work on Geolocation Sensor was started initially.<\/p>\n<p><a href=\"https:\/\/sites.google.com\/view\/maryammjd\/home\">Maryam Mehrnezhad<\/a>,\nan invited expert in the working group whose research is focused on privacy and security,\npresented on and discussed with us the implications on both fields that sensors potentially have\nand whether mitigation like accuracy bucketing or frequency capping are effective.\nThe <a href=\"https:\/\/www.w3.org\/2019\/09\/19-dap-minutes.html#x18\">minutes<\/a> capture the conversation well.<\/p>\n<p>Finally, we\n<a href=\"https:\/\/github.com\/w3c\/wake-lock\/issues\/226#issuecomment-533032056\">changed the surface of the Wake Lock API<\/a>\nhopefully for the last time.\nThe previous changes just didn't feel right from a developer experience point of view,\nso better change the API while it's behind a flag than be sorry forever.\nI reckon I do feel sorry for the implementors <a href=\"https:\/\/twitter.com\/rijubrata\">Rijubrata Bhaumik<\/a>\nand <a href=\"https:\/\/github.com\/rakuco\">Raphael Kubo da Costa<\/a>\u2026 \ud83d\ude47<\/p>\n<pre class=\"language-js\"><code class=\"language-js\">partial <span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">Navigator<\/span> <span class=\"token punctuation\">{<\/span><br>  <span class=\"token punctuation\">[<\/span>SameObject<span class=\"token punctuation\">]<\/span> readonly attribute WakeLock wakeLock<span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><br><br>partial <span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">WorkerNavigator<\/span> <span class=\"token punctuation\">{<\/span><br>  <span class=\"token punctuation\">[<\/span>SameObject<span class=\"token punctuation\">]<\/span> readonly attribute WakeLock wakeLock<span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><br><br><span class=\"token punctuation\">[<\/span>Exposed<span class=\"token operator\">=<\/span><span class=\"token punctuation\">(<\/span>Window<span class=\"token punctuation\">,<\/span>DedicatedWorker<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><br><span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">WakeLock<\/span> <span class=\"token punctuation\">{<\/span><br>  Promise<span class=\"token operator\">&lt;<\/span>unsigned long long<span class=\"token operator\">><\/span> <span class=\"token function\">request<\/span><span class=\"token punctuation\">(<\/span>WakeLockType type<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br>  Promise<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">void<\/span><span class=\"token operator\">><\/span> <span class=\"token function\">release<\/span><span class=\"token punctuation\">(<\/span>unsigned long long wakeLockID<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><br><br>dictionary WakeLockEventInit <span class=\"token punctuation\">{<\/span><br>  required unsigned long long wakeLockID<span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><br><br><span class=\"token punctuation\">[<\/span>Exposed<span class=\"token operator\">=<\/span><span class=\"token punctuation\">(<\/span>Window<span class=\"token punctuation\">,<\/span>DedicatedWorker<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><br><span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">WakeLockEvent<\/span> <span class=\"token operator\">:<\/span> Event <span class=\"token punctuation\">{<\/span><br>  <span class=\"token function\">constructor<\/span><span class=\"token punctuation\">(<\/span>DOMString type<span class=\"token punctuation\">,<\/span> WakeLockEventInit init<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br>  readonly attribute unsigned long long wakeLockID<span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<p>As a general theme, we &quot;hardened&quot; a number of APIs, for example decided to integrate geolocation\nwith <a href=\"https:\/\/w3c.github.io\/webappsec-feature-policy\/\">Feature Policy<\/a>\nand now require a secure connection for the <a href=\"https:\/\/w3c.github.io\/battery\/\">Battery Status API<\/a>.\nThe chairs Anssi and <a href=\"https:\/\/twitter.com\/reillyeon\">Reilly Grant<\/a>\nhave scribed the one and a half days brilliantly,\nthe minutes for <a href=\"https:\/\/www.w3.org\/2019\/09\/19-dap-minutes.html\">day\u00a01<\/a> and\n<a href=\"https:\/\/www.w3.org\/2019\/09\/20-dap-minutes.html\">day\u00a02<\/a> are both online.<\/p>\n<h4 id=\"conclusion\">Conclusion <a class=\"direct-link\" href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/#conclusion\">\u2693<\/a><\/h4>\n<p>As I wrote in the beginning, TPAC <em>slowly<\/em> starts to feel like a venue\nwhere I can make some valuable contributions.\n<a href=\"https:\/\/twitter.com\/rowan_m\">Rowan Merewood<\/a> put it like this in a\n<a href=\"https:\/\/twitter.com\/rowan_m\/status\/1173808373436862464\">tweet<\/a>:<\/p>\n<blockquote>\n<p>The biggest thing I'm learning at\n[<a href=\"https:\/\/twitter.com\/hashtag\/w3ctpac?src=hashtag_click\">#W3Ctpac<\/a>]\nis if you want to change the web,\nit's a surprisingly small group of people you need to convince.\nThe surrounding appearance of the W3C and all its language is intimidating,\nbut underneath it's just other human beings you can talk to.<\/p>\n<\/blockquote>\n<p>To which <a href=\"https:\/\/twitter.com\/kosamari\">Mariko Kosaka<\/a> fittingly\n<a href=\"https:\/\/twitter.com\/kosamari\/status\/1173811848518356993\">responds<\/a>:<\/p>\n<blockquote>\n<p>[Y]eah, but let's not forget getting to talk to that small set of people\nmost often comes with being very, very, very privileged. [\u2026]<\/p>\n<\/blockquote>\n<p>It's indeed a <em>massive privilege<\/em> to work for a company that has the money\nto take part in W3C activities, fly people across the world, and let them\nstay in five star conference hotels.\nWith all the love for the web and all the great memories of a fantastic TPAC,\nlet's not forget: the web is threatened from multiple angles,\nand being able to work in the standards bodies on defending it is a privilege of the few.\nBoth shouldn't be the case.<\/p>\n\n\t\t\t<p>\n\t\t\t\t<img alt=\"Thomas Steiner\" width=\"32\" height=\"32\" src=\"https:\/\/blog.tomayac.com\/feed.php?dl=https%3A%2F%2Fblog.tomayac.com%2F2019%2F09%2F21%2Fproject-fugu-at-w3c-tpac%2F&dp=%2F2019%2F09%2F21%2Fproject-fugu-at-w3c-tpac%2F&dt=Project%20Fugu%20%F0%9F%90%A1%20at%20W3C%20TPAC\" alt=\"\">\n\t\t\t\t<br\/>This post appeared first on <a href=\"https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/\">https:\/\/blog.tomayac.com\/2019\/09\/21\/project-fugu-at-w3c-tpac\/<\/a>.\n\t\t\t<\/p>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\t\t\tThis week, I attended my now third W3C<br \/>\nTPAC.<br \/>\nAfter TPAC\u00a02017<br \/>\nin Burlingame,\u00a0CA, United States of America and<br \/>\nTPAC\u00a02018 in Lyon, France,<br \/>\nTPAC\u00a02019 was held in Fukuoka, Japan.<br \/>\nFor the first time, I felt like I could somewhat meaningfully contribute a&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"intlwemo_wallet_address":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-3321","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts\/3321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/comments?post=3321"}],"version-history":[{"count":1,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts\/3321\/revisions"}],"predecessor-version":[{"id":3322,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/posts\/3321\/revisions\/3322"}],"wp:attachment":[{"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/media?parent=3321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/categories?post=3321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tomayac.com\/wordpress\/wp-json\/wp\/v2\/tags?post=3321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}