{"id":1737,"date":"2014-03-23T13:08:20","date_gmt":"2014-03-23T12:08:20","guid":{"rendered":"http:\/\/blog.modelical.com\/?p=512"},"modified":"2022-03-21T12:43:41","modified_gmt":"2022-03-21T11:43:41","slug":"grasshopper-scripting-105","status":"publish","type":"post","link":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/","title":{"rendered":"Grasshopper Scripting 105"},"content":{"rendered":"<h2>Loops (I)<\/h2>\n<p>Loops are a fundamental weapon when dealing with program flow. You&#8217;ll want your component to perform a certain action many times over a data-set or to keep on doing something until a condition is met. That&#8217;s exactly what loops are for. Let&#8217;s see them in action.<\/p>\n<p>Download\u00a0<a title=\"Loops\" href=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/B10_GHS_105_Loops.zip\">here the GH file (0.9.014) containing the examples.<\/a><\/p>\n<h3>Two Types Of Loops<\/h3>\n<p><strong>The Foreach Loop\u00a0<\/strong>is useful when you want to exactly the same operation to each element within a collection. For instance printing something to the console or just adding all the numbers in a collection. We have to supply an interator value, of the same type as the list, that will be evaluated at each step of the loop.<\/p>\n<p>This example takes a list of numbers and returns the number of elements and the sum of all of them:<\/p>\n<pre class=\"lang:c# decode:true\"> private void RunScript(List&lt;double&gt; x, ref object A)\r\n  {\r\n    double buffer = 0.0; \/\/create a buffer to hold the sum\r\n    foreach (double val in x) \/\/create a loop with val as iterator\r\n    {\r\n      buffer += val; \/\/add val to the buffer\r\n    }\r\n\r\n    A = String.Format(\"There are {0} numbers in the list and the sum of all of them is {1}\", x.Count, buffer);\r\n  }<\/pre>\n<p>This example takes a list of strings and creates a sentence with all the supplied values:<\/p>\n<pre class=\"lang:c# decode:true\">private void RunScript(List&lt;string&gt; x, ref object A)\r\n  {\r\n    string buffer = \"My favourite animals are:\"; \/\/create our buffer string and set it to something\r\n    foreach (string val in x) \/\/create a foreach loop with a val iterator\r\n    {\r\n      buffer = buffer + \" \" + val + \",\"; \/\/add the item to the list including spaces and commas...\r\n    }\r\n\r\n    A = buffer; \/\/output the value\r\n  }<\/pre>\n<p>Here the results:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForeachLoops.jpg\" alt=\"\" width=\"800\" height=\"429\" class=\"alignnone size-full wp-image-3944\" srcset=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForeachLoops.jpg 800w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForeachLoops-480x257.jpg 480w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForeachLoops-768x412.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><strong>The For (int i, i&lt;n,\u00a0i++) loop<\/strong> is useful when we want to keep control of the iteration process, being able modify actions depending on iterator state. Look at this example that will output only elements with even index from a list:<\/p>\n<pre class=\"lang:c# decode:true\">private void RunScript(List&lt;string&gt; s, ref object A)\r\n  {\r\n    List&lt;string&gt; evenList = new List&lt;string&gt;();\r\n\r\n    for (int i = 0; i &lt; s.Count; i++){\r\n      if (i % 2 == 0) {\/\/ if the remainder of dividing i over 2 is 0 the item is even\r\n        evenList.Add(s[i]);\r\n      }\r\n    }\r\n\r\n    A = evenList;\r\n  }<\/pre>\n<p>The key here is the declaration of the loop:<\/p>\n<li><strong>(int i;<\/strong>\u00a0establishes i as our iterator, the number that will change to give us access to each item within the list.<\/li>\n<li><strong>i &lt; s.Count;<\/strong> establishes that i will change and grow but always be strictly smaller than the number of items in the list. We don&#8217;t want to ask the list for elements that do not exist.<\/li>\n<li><strong>i++)<\/strong> is a statement that defines we want i to change and grow unit by unit, it is equivalent to writing i = i + 1.<\/li>\n<p>Besides, the inner IF statement is checking when the iterator is even, look at it carefully.<\/p>\n<p>Another example, this component will create a Fibonacci series:<\/p>\n<pre class=\"lang:c# decode:true\">private void RunScript(int n, ref object A)\r\n  {\r\n    \/\/declare a new list\r\n    List&lt;int&gt; fibonacci = new List&lt;int&gt;();\r\n\r\n    \/\/declare our buffer\r\n    int buffer;\r\n\r\n    \/\/declare the loop, initialize it in 0 and make sure it stops at n\r\n    for (int i = 0; i &lt; n; i++)\r\n    {\r\n      if (i &lt; 2){\r\n        fibonacci.Add(i); \/\/we have to add the first two values almost manually\r\n      }\r\n      else {\r\n        \/\/calculate the current value by adding the two previous ones\r\n        buffer = fibonacci[i - 2] + fibonacci[i - 1];\r\n        \/\/add the value to the list\r\n        fibonacci.Add(buffer);\r\n      }\r\n    }\r\n    \/\/output the fibonacci series\r\n    A = fibonacci;\r\n  }<\/pre>\n<p>See the results here.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForLoops.jpg\" alt=\"\" width=\"800\" height=\"429\" class=\"alignnone size-full wp-image-3943\" srcset=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForLoops.jpg 800w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForLoops-480x257.jpg 480w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForLoops-768x412.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<h3>Challenge<\/h3>\n<p>1. Write a C# component that reads a list of numbers and outputs the largest of them together with its index.<\/p>\n<p>2. Write a C# component that reads a list of numbers and outputs the smallest of them together with its index.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Loops (I) Loops are a fundamental weapon when dealing with program flow. You&#8217;ll want your component to perform a certain action many times over a data-set or to keep on doing something until a condition is met. That&#8217;s exactly what loops are for. Let&#8217;s see them in action. Download\u00a0here the GH file (0.9.014) containing the [&hellip;]<\/p>\n","protected":false},"author":64,"featured_media":27083,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4],"tags":[423,418],"class_list":["post-1737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guidelines","tag-technology-c","tag-technology-grasshopper"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Grasshopper Scripting 105 - Modelical<\/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:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Grasshopper Scripting 105 - Modelical\" \/>\n<meta property=\"og:description\" content=\"Loops (I) Loops are a fundamental weapon when dealing with program flow. You&#8217;ll want your component to perform a certain action many times over a data-set or to keep on doing something until a condition is met. That&#8217;s exactly what loops are for. Let&#8217;s see them in action. Download\u00a0here the GH file (0.9.014) containing the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/\" \/>\n<meta property=\"og:site_name\" content=\"Modelical\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Modelical\/\" \/>\n<meta property=\"article:published_time\" content=\"2014-03-23T12:08:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-21T11:43:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForLoops.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"429\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Roberto Molinos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@modelical\" \/>\n<meta name=\"twitter:site\" content=\"@modelical\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Roberto Molinos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/\"},\"author\":{\"name\":\"Roberto Molinos\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/#\\\/schema\\\/person\\\/3ad52fd99e6b5b98a59ef24c76a7c2d5\"},\"headline\":\"Grasshopper Scripting 105\",\"datePublished\":\"2014-03-23T12:08:20+00:00\",\"dateModified\":\"2022-03-21T11:43:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/\"},\"wordCount\":369,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2017\\\/01\\\/Grasshopepr-400x250-1.jpg\",\"keywords\":[\"Tec C#\",\"Tec Grasshopper\"],\"articleSection\":[\"Guidelines\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/\",\"name\":\"Grasshopper Scripting 105 - Modelical\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2017\\\/01\\\/Grasshopepr-400x250-1.jpg\",\"datePublished\":\"2014-03-23T12:08:20+00:00\",\"dateModified\":\"2022-03-21T11:43:41+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/#\\\/schema\\\/person\\\/3ad52fd99e6b5b98a59ef24c76a7c2d5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2017\\\/01\\\/Grasshopepr-400x250-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2017\\\/01\\\/Grasshopepr-400x250-1.jpg\",\"width\":400,\"height\":250},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-105\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Grasshopper Scripting 101\",\"item\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/grasshopper-scripting-101\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Grasshopper Scripting 105\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/\",\"name\":\"Modelical\",\"description\":\"We build information\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/#\\\/schema\\\/person\\\/3ad52fd99e6b5b98a59ef24c76a7c2d5\",\"name\":\"Roberto Molinos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9346c12c96cb942be9bb8b2454e296662a1baa0b4cd461ab315ae9a5185b0db6?s=96&d=initials&r=g&initials=ro\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9346c12c96cb942be9bb8b2454e296662a1baa0b4cd461ab315ae9a5185b0db6?s=96&d=initials&r=g&initials=ro\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9346c12c96cb942be9bb8b2454e296662a1baa0b4cd461ab315ae9a5185b0db6?s=96&d=initials&r=g&initials=ro\",\"caption\":\"Roberto Molinos\"},\"sameAs\":[\"https:\\\/\\\/www.modelical.com\"],\"url\":\"https:\\\/\\\/www.modelical.com\\\/en\\\/author\\\/roberto\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Grasshopper Scripting 105 - Modelical","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:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/","og_locale":"en_US","og_type":"article","og_title":"Grasshopper Scripting 105 - Modelical","og_description":"Loops (I) Loops are a fundamental weapon when dealing with program flow. You&#8217;ll want your component to perform a certain action many times over a data-set or to keep on doing something until a condition is met. That&#8217;s exactly what loops are for. Let&#8217;s see them in action. Download\u00a0here the GH file (0.9.014) containing the [&hellip;]","og_url":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/","og_site_name":"Modelical","article_publisher":"https:\/\/www.facebook.com\/Modelical\/","article_published_time":"2014-03-23T12:08:20+00:00","article_modified_time":"2022-03-21T11:43:41+00:00","og_image":[{"width":800,"height":429,"url":"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/03\/ForLoops.jpg","type":"image\/jpeg"}],"author":"Roberto Molinos","twitter_card":"summary_large_image","twitter_creator":"@modelical","twitter_site":"@modelical","twitter_misc":{"Written by":"Roberto Molinos","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#article","isPartOf":{"@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/"},"author":{"name":"Roberto Molinos","@id":"https:\/\/www.modelical.com\/en\/#\/schema\/person\/3ad52fd99e6b5b98a59ef24c76a7c2d5"},"headline":"Grasshopper Scripting 105","datePublished":"2014-03-23T12:08:20+00:00","dateModified":"2022-03-21T11:43:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/"},"wordCount":369,"commentCount":0,"image":{"@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#primaryimage"},"thumbnailUrl":"https:\/\/www.modelical.com\/wp-content\/uploads\/2017\/01\/Grasshopepr-400x250-1.jpg","keywords":["Tec C#","Tec Grasshopper"],"articleSection":["Guidelines"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/","url":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/","name":"Grasshopper Scripting 105 - Modelical","isPartOf":{"@id":"https:\/\/www.modelical.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#primaryimage"},"image":{"@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#primaryimage"},"thumbnailUrl":"https:\/\/www.modelical.com\/wp-content\/uploads\/2017\/01\/Grasshopepr-400x250-1.jpg","datePublished":"2014-03-23T12:08:20+00:00","dateModified":"2022-03-21T11:43:41+00:00","author":{"@id":"https:\/\/www.modelical.com\/en\/#\/schema\/person\/3ad52fd99e6b5b98a59ef24c76a7c2d5"},"breadcrumb":{"@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#primaryimage","url":"https:\/\/www.modelical.com\/wp-content\/uploads\/2017\/01\/Grasshopepr-400x250-1.jpg","contentUrl":"https:\/\/www.modelical.com\/wp-content\/uploads\/2017\/01\/Grasshopepr-400x250-1.jpg","width":400,"height":250},{"@type":"BreadcrumbList","@id":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-105\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Grasshopper Scripting 101","item":"https:\/\/www.modelical.com\/en\/grasshopper-scripting-101\/"},{"@type":"ListItem","position":2,"name":"Grasshopper Scripting 105"}]},{"@type":"WebSite","@id":"https:\/\/www.modelical.com\/en\/#website","url":"https:\/\/www.modelical.com\/en\/","name":"Modelical","description":"We build information","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.modelical.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.modelical.com\/en\/#\/schema\/person\/3ad52fd99e6b5b98a59ef24c76a7c2d5","name":"Roberto Molinos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9346c12c96cb942be9bb8b2454e296662a1baa0b4cd461ab315ae9a5185b0db6?s=96&d=initials&r=g&initials=ro","url":"https:\/\/secure.gravatar.com\/avatar\/9346c12c96cb942be9bb8b2454e296662a1baa0b4cd461ab315ae9a5185b0db6?s=96&d=initials&r=g&initials=ro","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9346c12c96cb942be9bb8b2454e296662a1baa0b4cd461ab315ae9a5185b0db6?s=96&d=initials&r=g&initials=ro","caption":"Roberto Molinos"},"sameAs":["https:\/\/www.modelical.com"],"url":"https:\/\/www.modelical.com\/en\/author\/roberto\/"}]}},"_links":{"self":[{"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/posts\/1737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/comments?post=1737"}],"version-history":[{"count":0,"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/posts\/1737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/media\/27083"}],"wp:attachment":[{"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/media?parent=1737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/categories?post=1737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modelical.com\/en\/wp-json\/wp\/v2\/tags?post=1737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}