[{"data":1,"prerenderedAt":538},["ShallowReactive",2],{"navigation_docs":3,"-concepts-datachains":194,"-concepts-datachains-surround":533},[4,22,82,124,146,168,190],{"title":5,"path":6,"stem":7,"children":8},"Getting started","/getting-started","1.getting-started/0.index",[9,10,14,18],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"MCP quickstart","/getting-started/mcp-quickstart","1.getting-started/1.mcp-quickstart",{"title":15,"path":16,"stem":17},"REST quickstart","/getting-started/rest-quickstart","1.getting-started/2.rest-quickstart",{"title":19,"path":20,"stem":21},"UI quickstart","/getting-started/ui-quickstart","1.getting-started/3.ui-quickstart",{"title":23,"path":24,"stem":25,"children":26},"MCP server","/mcp","2.mcp/0.index",[27,28,32,36,40],{"title":23,"path":24,"stem":25},{"title":29,"path":30,"stem":31},"Connecting","/mcp/connection","2.mcp/1.connection",{"title":33,"path":34,"stem":35},"Envelope","/mcp/envelope","2.mcp/2.envelope",{"title":37,"path":38,"stem":39},"Resources","/mcp/resources","2.mcp/3.resources",{"title":41,"path":42,"stem":43,"children":44},"Tools","/mcp/tools","2.mcp/4.tools/0.index",[45,46,50,54,58,62,66,70,74,78],{"title":41,"path":42,"stem":43},{"title":47,"path":48,"stem":49},"list_schema_versions","/mcp/tools/list-schema-versions","2.mcp/4.tools/1.list-schema-versions",{"title":51,"path":52,"stem":53},"get_schema","/mcp/tools/get-schema","2.mcp/4.tools/2.get-schema",{"title":55,"path":56,"stem":57},"list_categories","/mcp/tools/list-categories","2.mcp/4.tools/3.list-categories",{"title":59,"path":60,"stem":61},"list_elements","/mcp/tools/list-elements","2.mcp/4.tools/4.list-elements",{"title":63,"path":64,"stem":65},"get_element","/mcp/tools/get-element","2.mcp/4.tools/5.get-element",{"title":67,"path":68,"stem":69},"get_elements","/mcp/tools/get-elements","2.mcp/4.tools/6.get-elements",{"title":71,"path":72,"stem":73},"validate_datachain","/mcp/tools/validate-datachain","2.mcp/4.tools/7.validate-datachain",{"title":75,"path":76,"stem":77},"render_datachain","/mcp/tools/render-datachain","2.mcp/4.tools/8.render-datachain",{"title":79,"path":80,"stem":81},"get_icon_url","/mcp/tools/get-icon-url","2.mcp/4.tools/9.get-icon-url",{"title":83,"path":84,"stem":85,"children":86},"REST API (v2)","/rest","3.rest/0.index",[87,88,92,96,100,104,108,112,116,120],{"title":83,"path":84,"stem":85},{"title":89,"path":90,"stem":91},"GET /schemas","/rest/schemas","3.rest/1.schemas",{"title":93,"path":94,"stem":95},"GET /schemas/:version/manifest","/rest/manifest","3.rest/2.manifest",{"title":97,"path":98,"stem":99},"GET /schemas/:version/categories","/rest/categories","3.rest/3.categories",{"title":101,"path":102,"stem":103},"GET /schemas/:version/elements","/rest/elements-list","3.rest/4.elements-list",{"title":105,"path":106,"stem":107},"GET /schemas/:version/elements/:element_id","/rest/element-detail","3.rest/5.element-detail",{"title":109,"path":110,"stem":111},"POST /schemas/:version/validate","/rest/validate","3.rest/6.validate",{"title":113,"path":114,"stem":115},"Icon routes","/rest/icons","3.rest/7.icons",{"title":117,"path":118,"stem":119},"Pagination & fields","/rest/pagination-and-fields","3.rest/8.pagination-and-fields",{"title":121,"path":122,"stem":123},"Errors","/rest/errors","3.rest/9.errors",{"title":125,"path":126,"stem":127,"children":128},"Icon composition","/icons","4.icons/0.index",[129,130,134,138,142],{"title":125,"path":126,"stem":127},{"title":131,"path":132,"stem":133},"Shapes","/icons/shapes","4.icons/1.shapes",{"title":135,"path":136,"stem":137},"Symbols","/icons/symbols","4.icons/2.symbols",{"title":139,"path":140,"stem":141},"Composed variants","/icons/composed-variants","4.icons/3.composed-variants",{"title":143,"path":144,"stem":145},"URLs","/icons/urls","4.icons/4.urls",{"title":147,"path":148,"stem":149,"children":150},"@dtpr/ui","/ui","5.ui/0.index",[151,152,156,160,164],{"title":147,"path":148,"stem":149},{"title":153,"path":154,"stem":155},"@dtpr/ui/core","/ui/core","5.ui/1.core",{"title":157,"path":158,"stem":159},"@dtpr/ui/vue","/ui/vue","5.ui/2.vue",{"title":161,"path":162,"stem":163},"@dtpr/ui/html","/ui/html","5.ui/3.html",{"title":165,"path":166,"stem":167},"Theming","/ui/theming","5.ui/4.theming",{"title":169,"path":170,"stem":171,"children":172},"Concepts","/concepts","6.concepts/0.index",[173,174,178,182,186],{"title":169,"path":170,"stem":171},{"title":175,"path":176,"stem":177},"Datachains","/concepts/datachains","6.concepts/1.datachains",{"title":179,"path":180,"stem":181},"Elements & categories","/concepts/elements-categories","6.concepts/2.elements-categories",{"title":183,"path":184,"stem":185},"Versions & releases","/concepts/versions-and-releases","6.concepts/3.versions-and-releases",{"title":187,"path":188,"stem":189},"Content hash","/concepts/content-hash","6.concepts/4.content-hash",{"title":191,"path":192,"stem":193},"Changelog","/changelog","7.changelog",{"id":195,"title":175,"body":196,"description":526,"extension":527,"links":528,"meta":529,"navigation":530,"path":176,"seo":531,"stem":177,"__hash__":532},"docs/6.concepts/1.datachains.md",{"type":197,"value":198,"toc":520},"minimark",[199,203,212,217,233,389,400,423,426,430,433,450,457,461,464,498,502,516],[200,201,175],"h1",{"id":202},"datachains",[204,205,206,207,211],"p",{},"A ",[208,209,210],"strong",{},"datachain"," is a concrete instance of a DTPR schema. It describes one data-collecting technology — what it collects, why, who operates it, and what happens to the data downstream.",[213,214,216],"h2",{"id":215},"structure","Structure",[204,218,219,220,224,225,228,229,232],{},"At the top level, a ",[221,222,223],"code",{},"DatachainInstance"," carries a ",[221,226,227],{},"schema_version"," and an ordered list of ",[221,230,231],{},"elements",":",[234,235,240],"pre",{"className":236,"code":237,"language":238,"meta":239,"style":239},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"schema_version\": \"ai@2026-04-16-beta\",\n  \"elements\": [\n    { \"element_id\": \"purpose.example\", \"category_id\": \"purpose\" },\n    { \"element_id\": \"data.camera\",    \"category_id\": \"data-collected\" }\n  ]\n}\n","json","",[221,241,242,251,277,291,336,377,383],{"__ignoreMap":239},[243,244,247],"span",{"class":245,"line":246},"line",1,[243,248,250],{"class":249},"sMK4o","{\n",[243,252,254,257,260,263,265,268,272,274],{"class":245,"line":253},2,[243,255,256],{"class":249},"  \"",[243,258,227],{"class":259},"spNyl",[243,261,262],{"class":249},"\"",[243,264,232],{"class":249},[243,266,267],{"class":249}," \"",[243,269,271],{"class":270},"sfazB","ai@2026-04-16-beta",[243,273,262],{"class":249},[243,275,276],{"class":249},",\n",[243,278,280,282,284,286,288],{"class":245,"line":279},3,[243,281,256],{"class":249},[243,283,231],{"class":259},[243,285,262],{"class":249},[243,287,232],{"class":249},[243,289,290],{"class":249}," [\n",[243,292,294,297,299,303,305,307,309,312,314,317,319,322,324,326,328,331,333],{"class":245,"line":293},4,[243,295,296],{"class":249},"    {",[243,298,267],{"class":249},[243,300,302],{"class":301},"sBMFI","element_id",[243,304,262],{"class":249},[243,306,232],{"class":249},[243,308,267],{"class":249},[243,310,311],{"class":270},"purpose.example",[243,313,262],{"class":249},[243,315,316],{"class":249},",",[243,318,267],{"class":249},[243,320,321],{"class":301},"category_id",[243,323,262],{"class":249},[243,325,232],{"class":249},[243,327,267],{"class":249},[243,329,330],{"class":270},"purpose",[243,332,262],{"class":249},[243,334,335],{"class":249}," },\n",[243,337,339,341,343,345,347,349,351,354,356,358,361,363,365,367,369,372,374],{"class":245,"line":338},5,[243,340,296],{"class":249},[243,342,267],{"class":249},[243,344,302],{"class":301},[243,346,262],{"class":249},[243,348,232],{"class":249},[243,350,267],{"class":249},[243,352,353],{"class":270},"data.camera",[243,355,262],{"class":249},[243,357,316],{"class":249},[243,359,360],{"class":249},"    \"",[243,362,321],{"class":301},[243,364,262],{"class":249},[243,366,232],{"class":249},[243,368,267],{"class":249},[243,370,371],{"class":270},"data-collected",[243,373,262],{"class":249},[243,375,376],{"class":249}," }\n",[243,378,380],{"class":245,"line":379},6,[243,381,382],{"class":249},"  ]\n",[243,384,386],{"class":245,"line":385},7,[243,387,388],{"class":249},"}\n",[204,390,391,392,395,396,399],{},"Each entry in ",[221,393,394],{},"elements[]"," is an ",[208,397,398],{},"element placement"," — a reference to an element definition from the schema, optionally carrying:",[401,402,403,411,417],"ul",{},[404,405,406,407,410],"li",{},"a ",[221,408,409],{},"label"," override,",[404,412,413,416],{},[221,414,415],{},"variables"," with filled values (the element's description gets interpolated using them),",[404,418,406,419,422],{},[221,420,421],{},"citation",".",[204,424,425],{},"The schema defines the vocabulary (elements, categories, variables); the datachain picks from it.",[213,427,429],{"id":428},"validation","Validation",[204,431,432],{},"Datachains are validated against a pinned schema version. See:",[401,434,435,443],{},[404,436,437,442],{},[438,439,440],"a",{"href":110},[221,441,109],{}," — REST.",[404,444,445,449],{},[438,446,447],{"href":72},[221,448,71],{}," — MCP.",[204,451,452,453,456],{},"Both validate both shape (Zod) and semantics (cardinality, required categories, placement rules). Shape errors surface as ",[221,454,455],{},"parse_error","; semantic errors carry stable codes per rule.",[213,458,460],{"id":459},"rendering","Rendering",[204,462,463],{},"Once valid, a datachain can be rendered to HTML:",[401,465,466,476,487],{},[404,467,468,472,473,422],{},[438,469,470],{"href":76},[221,471,75],{}," (MCP Apps) — produces HTML consumed via ",[221,474,475],{},"resources/read",[404,477,478,482,483,486],{},[438,479,480],{"href":158},[221,481,157],{}," + ",[221,484,485],{},"DtprDatachain"," — render inside a Vue app.",[404,488,489,493,494,497],{},[438,490,491],{"href":162},[221,492,161],{}," ",[221,495,496],{},"renderDatachainDocument"," — SSR the same components to a standalone HTML document.",[213,499,501],{"id":500},"see-also","See also",[401,503,504,508,512],{},[404,505,506],{},[438,507,179],{"href":180},[404,509,510],{},[438,511,183],{"href":184},[404,513,514],{},[438,515,187],{"href":188},[517,518,519],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}",{"title":239,"searchDepth":253,"depth":253,"links":521},[522,523,524,525],{"id":215,"depth":253,"text":216},{"id":428,"depth":253,"text":429},{"id":459,"depth":253,"text":460},{"id":500,"depth":253,"text":501},"The DTPR instance that describes a data-collecting technology.","md",null,{},true,{"title":175,"description":526},"vb_lvcg3848cRVeVDvV-vgeph7gJExuOZqCuhQhhCR0",[534,536],{"title":169,"path":170,"stem":171,"description":535,"children":-1},"DTPR vocabulary you will see across the MCP, REST, icon, and UI reference.",{"title":179,"path":180,"stem":181,"description":537,"children":-1},"The two-level vocabulary DTPR uses to describe data-collecting technologies.",1776525922453]