[{"data":1,"prerenderedAt":855},["ShallowReactive",2],{"navigation_docs_en":3,"dtpr-schemas-index":287,"-en-rest-icons":295,"-en-rest-icons-surround":850},[4,22,26,30,102,152,174,196,226,278,283],{"title":5,"path":6,"stem":7,"children":8},"Getting started","/en/getting-started","en/1.getting-started/0.index",[9,10,14,18],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"MCP quickstart","/en/getting-started/mcp-quickstart","en/1.getting-started/1.mcp-quickstart",{"title":15,"path":16,"stem":17},"REST quickstart","/en/getting-started/rest-quickstart","en/1.getting-started/2.rest-quickstart",{"title":19,"path":20,"stem":21},"UI quickstart","/en/getting-started/ui-quickstart","en/1.getting-started/3.ui-quickstart",{"title":23,"path":24,"stem":25},"Attribution","/en/attribution","en/10.attribution",{"title":27,"path":28,"stem":29},"Cite DTPR for AI","/en/cite","en/11.cite",{"title":31,"path":32,"stem":33,"children":34},"MCP server","/en/mcp","en/2.mcp/0.index",[35,36,40,44,48,98],{"title":31,"path":32,"stem":33},{"title":37,"path":38,"stem":39},"Connecting","/en/mcp/connection","en/2.mcp/1.connection",{"title":41,"path":42,"stem":43},"Envelope","/en/mcp/envelope","en/2.mcp/2.envelope",{"title":45,"path":46,"stem":47},"Resources","/en/mcp/resources","en/2.mcp/3.resources",{"title":49,"path":50,"stem":51,"children":52},"Tools","/en/mcp/tools","en/2.mcp/4.tools/0.index",[53,54,58,62,66,70,74,78,82,86,90,94],{"title":49,"path":50,"stem":51},{"title":55,"path":56,"stem":57},"list_schema_versions","/en/mcp/tools/list-schema-versions","en/2.mcp/4.tools/1.list-schema-versions",{"title":59,"path":60,"stem":61},"MCP tool: resolve_datachain","/en/mcp/tools/resolve-datachain","en/2.mcp/4.tools/10.resolve-datachain",{"title":63,"path":64,"stem":65},"MCP tool: validate_resolved","/en/mcp/tools/validate-resolved","en/2.mcp/4.tools/11.validate-resolved",{"title":67,"path":68,"stem":69},"get_schema","/en/mcp/tools/get-schema","en/2.mcp/4.tools/2.get-schema",{"title":71,"path":72,"stem":73},"list_categories","/en/mcp/tools/list-categories","en/2.mcp/4.tools/3.list-categories",{"title":75,"path":76,"stem":77},"list_elements","/en/mcp/tools/list-elements","en/2.mcp/4.tools/4.list-elements",{"title":79,"path":80,"stem":81},"get_element","/en/mcp/tools/get-element","en/2.mcp/4.tools/5.get-element",{"title":83,"path":84,"stem":85},"get_elements","/en/mcp/tools/get-elements","en/2.mcp/4.tools/6.get-elements",{"title":87,"path":88,"stem":89},"validate_datachain","/en/mcp/tools/validate-datachain","en/2.mcp/4.tools/7.validate-datachain",{"title":91,"path":92,"stem":93},"render_datachain","/en/mcp/tools/render-datachain","en/2.mcp/4.tools/8.render-datachain",{"title":95,"path":96,"stem":97},"get_icon_url","/en/mcp/tools/get-icon-url","en/2.mcp/4.tools/9.get-icon-url",{"title":99,"path":100,"stem":101},"Prompts","/en/mcp/prompts","en/2.mcp/5.prompts",{"title":103,"path":104,"stem":105,"children":106},"REST API (v2)","/en/rest","en/3.rest/0.index",[107,108,112,116,120,124,128,132,136,140,144,148],{"title":103,"path":104,"stem":105},{"title":109,"path":110,"stem":111},"GET /schemas","/en/rest/schemas","en/3.rest/1.schemas",{"title":113,"path":114,"stem":115},"POST /schemas/:version/resolve","/en/rest/resolve","en/3.rest/10.resolve",{"title":117,"path":118,"stem":119},"POST /schemas/:version/validate_resolved","/en/rest/validate-resolved","en/3.rest/11.validate-resolved",{"title":121,"path":122,"stem":123},"GET /schemas/:version/manifest","/en/rest/manifest","en/3.rest/2.manifest",{"title":125,"path":126,"stem":127},"GET /schemas/:version/categories","/en/rest/categories","en/3.rest/3.categories",{"title":129,"path":130,"stem":131},"GET /schemas/:version/elements","/en/rest/elements-list","en/3.rest/4.elements-list",{"title":133,"path":134,"stem":135},"GET /schemas/:version/elements/:element_id","/en/rest/element-detail","en/3.rest/5.element-detail",{"title":137,"path":138,"stem":139},"POST /schemas/:version/validate","/en/rest/validate","en/3.rest/6.validate",{"title":141,"path":142,"stem":143},"Icon routes","/en/rest/icons","en/3.rest/7.icons",{"title":145,"path":146,"stem":147},"Pagination & fields","/en/rest/pagination-and-fields","en/3.rest/8.pagination-and-fields",{"title":149,"path":150,"stem":151},"Errors","/en/rest/errors","en/3.rest/9.errors",{"title":153,"path":154,"stem":155,"children":156},"Icon composition","/en/icons","en/4.icons/0.index",[157,158,162,166,170],{"title":153,"path":154,"stem":155},{"title":159,"path":160,"stem":161},"Shapes","/en/icons/shapes","en/4.icons/1.shapes",{"title":163,"path":164,"stem":165},"Symbols","/en/icons/symbols","en/4.icons/2.symbols",{"title":167,"path":168,"stem":169},"Composed variants","/en/icons/composed-variants","en/4.icons/3.composed-variants",{"title":171,"path":172,"stem":173},"URLs","/en/icons/urls","en/4.icons/4.urls",{"title":175,"path":176,"stem":177,"children":178},"@dtpr/ui","/en/ui","en/5.ui/0.index",[179,180,184,188,192],{"title":175,"path":176,"stem":177},{"title":181,"path":182,"stem":183},"@dtpr/ui/core","/en/ui/core","en/5.ui/1.core",{"title":185,"path":186,"stem":187},"@dtpr/ui/vue","/en/ui/vue","en/5.ui/2.vue",{"title":189,"path":190,"stem":191},"@dtpr/ui/html","/en/ui/html","en/5.ui/3.html",{"title":193,"path":194,"stem":195},"Theming","/en/ui/theming","en/5.ui/4.theming",{"title":197,"path":198,"stem":199,"children":200},"Concepts","/en/concepts","en/6.concepts/0.index",[201,202,206,210,214,218,222],{"title":197,"path":198,"stem":199},{"title":203,"path":204,"stem":205},"Datachains","/en/concepts/datachains","en/6.concepts/1.datachains",{"title":207,"path":208,"stem":209},"Elements & categories","/en/concepts/elements-categories","en/6.concepts/2.elements-categories",{"title":211,"path":212,"stem":213},"Versions & releases","/en/concepts/versions-and-releases","en/6.concepts/3.versions-and-releases",{"title":215,"path":216,"stem":217},"Content hash","/en/concepts/content-hash","en/6.concepts/4.content-hash",{"title":219,"path":220,"stem":221},"Shape contract","/en/concepts/shape-contract","en/6.concepts/5.shape-contract",{"title":223,"path":224,"stem":225},"Subchains","/en/concepts/subchains","en/6.concepts/6.subchains",{"title":227,"path":228,"stem":229,"children":230},"Claude plugin","/en/plugin","en/7.plugin/0.index",[231,232,236,270,274],{"title":227,"path":228,"stem":229},{"title":233,"path":234,"stem":235},"Install","/en/plugin/install","en/7.plugin/1.install",{"title":237,"path":238,"stem":239,"children":240},"Skills","/en/plugin/skills","en/7.plugin/2.skills/0.index",[241,242,246,250,254,258,262,266],{"title":237,"path":238,"stem":239},{"title":243,"path":244,"stem":245},"dtpr-describe-system","/en/plugin/skills/describe-system","en/7.plugin/2.skills/1.describe-system",{"title":247,"path":248,"stem":249},"dtpr-datachain-structure","/en/plugin/skills/datachain-structure","en/7.plugin/2.skills/2.datachain-structure",{"title":251,"path":252,"stem":253},"dtpr-category-audit","/en/plugin/skills/category-audit","en/7.plugin/2.skills/3.category-audit",{"title":255,"path":256,"stem":257},"dtpr-element-design","/en/plugin/skills/element-design","en/7.plugin/2.skills/4.element-design",{"title":259,"path":260,"stem":261},"dtpr-symbol-design","/en/plugin/skills/symbol-design","en/7.plugin/2.skills/5.symbol-design",{"title":263,"path":264,"stem":265},"dtpr-translate","/en/plugin/skills/translate","en/7.plugin/2.skills/6.translate",{"title":267,"path":268,"stem":269},"dtpr-comprehension-audit","/en/plugin/skills/comprehension-audit","en/7.plugin/2.skills/7.comprehension-audit",{"title":271,"path":272,"stem":273},"Research corpus","/en/plugin/research-corpus","en/7.plugin/3.research-corpus",{"title":275,"path":276,"stem":277},"Comprehension rubric","/en/plugin/comprehension-rubric","en/7.plugin/4.comprehension-rubric",{"title":49,"path":279,"stem":280,"children":281},"/en/tools","en/8.tools/0.index",[282],{"title":49,"path":279,"stem":280},{"title":284,"path":285,"stem":286},"Changelog","/en/changelog","en/9.changelog",{"ok":288,"versions":289},true,[290],{"id":291,"status":292,"created_at":293,"content_hash":294},"ai@2026-05-06-beta","beta","2026-05-06T20:23:42.963Z","sha256-2d208111b0c597ff2b38cb1c24168799b0a5ff9290203ebf46c4f7c16a0fcb24",{"id":296,"title":141,"body":297,"description":844,"extension":845,"links":846,"meta":847,"navigation":288,"path":142,"seo":848,"stem":143,"__hash__":849},"docs_en/en/3.rest/7.icons.md",{"type":298,"value":299,"toc":833},"minimark",[300,316,321,382,394,399,402,445,474,493,498,501,545,575,580,583,645,648,656,661,676,679,733,737,798,802,829],[301,302,304,305,309,310,315],"callout",{"type":303},"info","Three related SVG routes. All return ",[306,307,308],"code",{},"Content-Type: image/svg+xml; charset=utf-8",". Cache-Control varies by version stability (see ",[311,312,314],"a",{"href":313},"/rest","conventions",").",[317,318,320],"h2",{"id":319},"summary","Summary",[322,323,324,340],"table",{},[325,326,327],"thead",{},[328,329,330,334,337],"tr",{},[331,332,333],"th",{},"Route",[331,335,336],{},"Purpose",[331,338,339],{},"Versioned?",[341,342,343,357,370],"tbody",{},[328,344,345,351,354],{},[346,347,348],"td",{},[306,349,350],{},"GET /api/v2/shapes/:shape.svg",[346,352,353],{},"Bare shape primitive.",[346,355,356],{},"no",[328,358,359,364,367],{},[346,360,361],{},[306,362,363],{},"GET /api/v2/schemas/:version/symbols/:symbol_id.svg",[346,365,366],{},"Release-pinned symbol SVG.",[346,368,369],{},"yes",[328,371,372,377,380],{},[346,373,374],{},[306,375,376],{},"GET /api/v2/schemas/:version/elements/:element_id/icon[.\u003Cvariant>].svg",[346,378,379],{},"Composed icon (shape × symbol × variant).",[346,381,369],{},[383,384,385,386,389,390,393],"p",{},"The conceptual model behind these routes — shape, symbol, variant, and the ",[306,387,388],{},"innerColor"," rule — is covered in ",[311,391,153],{"href":392},"/icons",".",[317,395,397],{"id":396},"get-apiv2shapesshapesvg",[306,398,350],{},[383,400,401],{},"Return a 36×36 SVG containing only the shape primitive.",[322,403,404,417],{},[325,405,406],{},[328,407,408,411,414],{},[331,409,410],{},"Param",[331,412,413],{},"In",[331,415,416],{},"Description",[341,418,419],{},[328,420,421,426,429],{},[346,422,423],{},[306,424,425],{},"shape",[346,427,428],{},"path",[346,430,431,432,435,436,435,439,435,442,393],{},"One of ",[306,433,434],{},"circle",", ",[306,437,438],{},"hexagon",[306,440,441],{},"octagon",[306,443,444],{},"rounded-square",[446,447,452],"pre",{"className":448,"code":449,"language":450,"meta":451,"style":451},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","HTTP/1.1 200 OK\nContent-Type: image/svg+xml; charset=utf-8\nCache-Control: public, max-age=31536000, immutable\n","http","",[306,453,454,462,468],{"__ignoreMap":451},[455,456,459],"span",{"class":457,"line":458},"line",1,[455,460,461],{},"HTTP/1.1 200 OK\n",[455,463,465],{"class":457,"line":464},2,[455,466,467],{},"Content-Type: image/svg+xml; charset=utf-8\n",[455,469,471],{"class":457,"line":470},3,[455,472,473],{},"Cache-Control: public, max-age=31536000, immutable\n",[383,475,476,477,480,481,484,485,488,489,492],{},"Errors: ",[306,478,479],{},"bad_request"," (400) for ids outside ",[306,482,483],{},"[a-zA-Z0-9_-]","; ",[306,486,487],{},"not_found"," (404) for unknown shape names (the response ",[306,490,491],{},"fix_hint"," lists the valid shape set).",[317,494,496],{"id":495},"get-apiv2schemasversionsymbolssymbol_idsvg",[306,497,363],{},[383,499,500],{},"Return the release-pinned symbol SVG.",[322,502,503,513],{},[325,504,505],{},[328,506,507,509,511],{},[331,508,410],{},[331,510,413],{},[331,512,416],{},[341,514,515,527],{},[328,516,517,522,524],{},[346,518,519],{},[306,520,521],{},"version",[346,523,428],{},[346,525,526],{},"Canonical version or alias.",[328,528,529,534,536],{},[346,530,531],{},[306,532,533],{},"symbol_id",[346,535,428],{},[346,537,538,539,542,543,393],{},"Matches ",[306,540,541],{},"element.symbol_id",". Whitelisted to ",[306,544,483],{},[446,546,548],{"className":448,"code":547,"language":450,"meta":451,"style":451},"HTTP/1.1 200 OK\nContent-Type: image/svg+xml; charset=utf-8\nDTPR-Content-Hash: sha256-…\nCache-Control: public, max-age=3600          # beta\nCache-Control: public, max-age=31536000, immutable    # stable\n",[306,549,550,554,558,563,569],{"__ignoreMap":451},[455,551,552],{"class":457,"line":458},[455,553,461],{},[455,555,556],{"class":457,"line":464},[455,557,467],{},[455,559,560],{"class":457,"line":470},[455,561,562],{},"DTPR-Content-Hash: sha256-…\n",[455,564,566],{"class":457,"line":565},4,[455,567,568],{},"Cache-Control: public, max-age=3600          # beta\n",[455,570,572],{"class":457,"line":571},5,[455,573,574],{},"Cache-Control: public, max-age=31536000, immutable    # stable\n",[317,576,578],{"id":577},"get-apiv2schemasversionelementselement_idiconvariantsvg",[306,579,376],{},[383,581,582],{},"Return a composed icon for an element.",[322,584,585,595],{},[325,586,587],{},[328,588,589,591,593],{},[331,590,410],{},[331,592,413],{},[331,594,416],{},[341,596,597,607,621],{},[328,598,599,603,605],{},[346,600,601],{},[306,602,521],{},[346,604,428],{},[346,606,526],{},[328,608,609,614,616],{},[346,610,611],{},[306,612,613],{},"element_id",[346,615,428],{},[346,617,618,619,393],{},"Whitelisted to ",[306,620,483],{},[328,622,623,628,630],{},[346,624,625],{},[306,626,627],{},"variant",[346,629,428],{},[346,631,632,633,636,637,640,641,644],{},"Optional suffix. Valid values: ",[306,634,635],{},"default"," (implicit — omit to use), ",[306,638,639],{},"dark",", or any ",[306,642,643],{},"context.value.id"," defined on the element's category.",[383,646,647],{},"URL forms:",[446,649,654],{"className":650,"code":652,"language":653},[651],"language-text","/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.svg          # default\n/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.dark.svg     # dark\n/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.commercial.svg  # context-colored\n","text",[306,655,652],{"__ignoreMap":451},[657,658,660],"h3",{"id":659},"fallback-behavior","Fallback behavior",[383,662,663,664,667,668,671,672,675],{},"The route first attempts a pre-baked R2 point-read. On miss, it logs an ",[306,665,666],{},"icon_miss_fallback"," event and composes the SVG on the fly using the same pure compositor as the build step — the fallback output is byte-identical to the pre-baked output. Callers observe the same response; only the ",[306,669,670],{},"Cache-Control"," max-age differs (60 s for beta miss, 3600 s for beta hit, ",[306,673,674],{},"immutable"," for stable).",[657,677,149],{"id":678},"errors",[322,680,681,694],{},[325,682,683],{},[328,684,685,688,691],{},[331,686,687],{},"Code",[331,689,690],{},"HTTP",[331,692,693],{},"Meaning",[341,695,696,715],{},[328,697,698,702,705],{},[346,699,700],{},[306,701,479],{},[346,703,704],{},"400",[346,706,707,709,710,712,713,393],{},[306,708,613],{}," / ",[306,711,627],{}," outside ",[306,714,483],{},[328,716,717,721,724],{},[346,718,719],{},[306,720,487],{},[346,722,723],{},"404",[346,725,726,727,729,730,393],{},"Unknown version, element, symbol, or variant. ",[306,728,491],{}," lists valid variants for ",[306,731,732],{},"unknown_variant",[317,734,736],{"id":735},"examples","Examples",[738,739,740,764,781],"code-group",{},[446,741,746],{"className":742,"code":743,"filename":744,"language":745,"meta":451,"style":451},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -s -i https://api.dtpr.io/api/v2/shapes/hexagon.svg\n","curl — shape","bash",[306,747,748],{"__ignoreMap":451},[455,749,750,754,758,761],{"class":457,"line":458},[455,751,753],{"class":752},"sBMFI","curl",[455,755,757],{"class":756},"sfazB"," -s",[455,759,760],{"class":756}," -i",[455,762,763],{"class":756}," https://api.dtpr.io/api/v2/shapes/hexagon.svg\n",[446,765,768],{"className":742,"code":766,"filename":767,"language":745,"meta":451,"style":451},"curl -s -i https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/symbols/example-symbol.svg\n","curl — symbol",[306,769,770],{"__ignoreMap":451},[455,771,772,774,776,778],{"class":457,"line":458},[455,773,753],{"class":752},[455,775,757],{"class":756},[455,777,760],{"class":756},[455,779,780],{"class":756}," https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/symbols/example-symbol.svg\n",[446,782,785],{"className":742,"code":783,"filename":784,"language":745,"meta":451,"style":451},"curl -s -i https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.dark.svg\n","curl — composed",[306,786,787],{"__ignoreMap":451},[455,788,789,791,793,795],{"class":457,"line":458},[455,790,753],{"class":752},[455,792,757],{"class":756},[455,794,760],{"class":756},[455,796,797],{"class":756}," https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.dark.svg\n",[317,799,801],{"id":800},"see-also","See also",[803,804,805,811,816,821],"ul",{},[806,807,808],"li",{},[311,809,810],{"href":392},"Icon composition overview",[806,812,813],{},[311,814,167],{"href":815},"/icons/composed-variants",[806,817,818],{},[311,819,171],{"href":820},"/icons/urls",[806,822,823],{},[311,824,826,827],{"href":825},"/mcp/tools/get-icon-url","MCP ",[306,828,95],{},[830,831,832],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":451,"searchDepth":464,"depth":464,"links":834},[835,836,837,838,842,843],{"id":319,"depth":464,"text":320},{"id":396,"depth":464,"text":350},{"id":495,"depth":464,"text":363},{"id":577,"depth":464,"text":376,"children":839},[840,841],{"id":659,"depth":470,"text":660},{"id":678,"depth":470,"text":149},{"id":735,"depth":464,"text":736},{"id":800,"depth":464,"text":801},"Shape primitives, release-pinned symbols, and composed element icons.","md",null,{},{"title":141,"description":844},"NXU4QWdjr_em8OPZq30TN8AcqxrRHZP6fnnkj0D_jnQ",[851,853],{"title":137,"path":138,"stem":139,"description":852,"children":-1},"Validate a datachain instance against a schema version.",{"title":145,"path":146,"stem":147,"description":854,"children":-1},"Cursor semantics, limits, field projection, and locale filtering.",1779049693489]