[{"data":1,"prerenderedAt":281},["ShallowReactive",2],{"duxt-navigation-docs_demo-docs_demo":3,"i-lucide:plug":25,"i-lucide:tag":30,"i-lucide:book-open-text":32,"i-lucide:git-compare":34,"i-lucide:library":36,"i-lucide:menu":38,"i-lucide:chevron-down":40,"i-lucide:search":42,"i-simple-icons:github":44,"i-flag:fr-4x3":46,"i-lucide:moon":50,"docs-fr-FR-\u002Fdemo\u002Fversions":52,"i-lucide:languages":255,"i-lucide:copy":257,"i-lucide:thumbs-up":259,"i-lucide:thumbs-down":261,"i-lucide:star":263,"i-lucide:circle-alert":265,"i-simple-icons:discord":267,"i-lucide:arrow-up-right":269,"i-lucide:pencil":271,"i-lucide:info":273,"i-lucide:arrow-left":275,"i-lucide:arrow-right":277,"i-lucide:chevron-right":279},[4],{"title":5,"path":6,"stem":7,"children":8},"Overview","\u002Fdemo","demo",[9,13,19],{"title":5,"path":6,"stem":10,"icon":11,"description":12},"demo\u002Findex","lucide:book-open-text","Explore an invented freight API and a sample changelog, rendered as generated sections in one demo area.",{"title":14,"path":15,"stem":16,"icon":17,"description":18},"The four versions","\u002Fdemo\u002Fversions","demo\u002F1.versions","lucide:git-compare","One artefact at four versions, and the four things a reader can be told about the one they are in.",{"title":20,"path":21,"stem":22,"icon":23,"description":24},"A source of its own","\u002Fdemo\u002Fsource","demo\u002F2.source","lucide:library","Why the demo API and changelog share a source beside the documentation.",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":29},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 22v-5m3-9V2m2 6a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1zM9 8V2\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\"\u002F>\u003Ccircle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003C\u002Fg>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":33},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m4-8h2m-2-4h2m2.001 10A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2zM6 13h2M6 9h2\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":35},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"18\" cy=\"18\" r=\"3\"\u002F>\u003Ccircle cx=\"6\" cy=\"6\" r=\"3\"\u002F>\u003Cpath d=\"M13 6h3a2 2 0 0 1 2 2v7m-7 3H8a2 2 0 0 1-2-2V9\"\u002F>\u003C\u002Fg>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":37},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 6l4 14M12 6v14M8 8v12M4 4v16\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":39},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":41},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":43},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":45},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":26,"top":26,"width":47,"height":48,"rotate":26,"vFlip":28,"hFlip":28,"body":49},640,480,"\u003Cpath fill=\"#000091\" d=\"M0 0h213.3v480H0z\"\u002F>\u003Cpath fill=\"#fff\" d=\"M213.3 0h213.4v480H213.3z\"\u002F>\u003Cpath fill=\"#e1000f\" d=\"M426.7 0H640v480H426.7z\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":51},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"page":53,"from":253,"asked":254},{"id":54,"title":14,"body":55,"compare":242,"contributors":243,"date":242,"description":18,"extension":246,"icon":17,"lastUpdated":247,"layout":242,"meta":248,"navigation":28,"path":15,"rawbody":249,"redirectFrom":242,"seo":250,"sitemap":251,"stem":16,"__hash__":252},"docs_demo\u002Fdemo\u002F1.versions.md",{"type":56,"value":57,"toc":237},"minimark",[58,67,172,191,196,225],[59,60,61,62,66],"p",{},"The switcher on any reference page moves between them. They are four files in\none folder, not four git refs — which is how an API is usually versioned, and\nthe shape the ",[63,64,65],"code",{},"versions"," key on a generated section exists for.",[68,69,70,87],"table",{},[71,72,73],"thead",{},[74,75,76,81,84],"tr",{},[77,78,80],"th",{"align":79},"left","Version",[77,82,83],{"align":79},"Status",[77,85,86],{"align":79},"What it is",[88,89,90,110,128,154],"tbody",{},[74,91,92,102,107],{},[93,94,95],"td",{"align":79},[96,97,99],"a",{"href":98},"\u002Fdemo\u002Fmain\u002Fapi",[63,100,101],{},"main",[93,103,104],{"align":79},[63,105,106],{},"upcoming",[93,108,109],{"align":79},"3.x plus a streaming endpoint. May still change",[74,111,112,120,125],{},[93,113,114],{"align":79},[96,115,117],{"href":116},"\u002Fdemo\u002Fapi",[63,118,119],{},"v3.x",[93,121,122],{"align":79},[63,123,124],{},"current",[93,126,127],{"align":79},"The full document, and the one served without a version segment",[74,129,130,138,143],{},[93,131,132],{"align":79},[96,133,135],{"href":134},"\u002Fdemo\u002Fv2.x\u002Fapi",[63,136,137],{},"v2.x",[93,139,140],{"align":79},[63,141,142],{},"deprecated",[93,144,145,146,149,150,153],{"align":79},"Where ",[63,147,148],{},"shipments"," became ",[63,151,152],{},"consignments"," and paging became a cursor",[74,155,156,164,169],{},[93,157,158],{"align":79},[96,159,161],{"href":160},"\u002Fdemo\u002Fv1.x\u002Fapi",[63,162,163],{},"v1.x",[93,165,166],{"align":79},[63,167,168],{},"eol",[93,170,171],{"align":79},"Switched off. Kept only to be read",[173,174,177],"callout",{"title":175,"type":176},"Four statuses, one each","info",[59,178,179,180,182,183,182,185,187,188,190],{},"That is deliberate. ",[63,181,106],{},", ",[63,184,124],{},[63,186,142],{}," and ",[63,189,168],{}," are everything\na reader can be told about the version they are in, and every one of them is\ndrawn by this site's own build.",[192,193,195],"h2",{"id":194},"what-differs-between-them","What differs between them",[59,197,198,200,201,203,204,207,208,211,212,214,215,217,218,207,221,224],{},[63,199,163],{}," is the shape before the rename: ",[63,202,148],{},", a ",[63,205,206],{},"label"," and a ",[63,209,210],{},"state",",\npaged by number. ",[63,213,137],{}," is where each of those became ",[63,216,152],{},", a\n",[63,219,220],{},"reference",[63,222,223],{},"status",", paged by cursor — so switching between the two on\none endpoint shows a real difference rather than a changed heading.",[59,226,227,229,230,233,234,236],{},[63,228,119],{}," adds the parts a reference has to be able to draw at all: several media\ntypes on one response, a ",[63,231,232],{},"oneOf"," with a discriminator, a callback, a webhook,\nthree authentication schemes. ",[63,235,101],{}," is that document plus a streaming endpoint\nunder a tag of its own, which is what an unreleased line usually is.",{"title":238,"searchDepth":239,"depth":239,"links":240},"",2,[241],{"id":194,"depth":239,"text":195},null,[244],{"name":245,"commits":239},"Titus Kirch","md","2026-09-10T03:39:27+02:00",{},"---\ntitle: The four versions\ndescription: One artefact at four versions, and the four things a reader can be told about the one they are in.\nicon: lucide:git-compare\n---\n\nThe switcher on any reference page moves between them. They are four files in\none folder, not four git refs — which is how an API is usually versioned, and\nthe shape the `versions` key on a generated section exists for.\n\n| Version                  | Status       | What it is                                                         |\n| :----------------------- | :----------- | :----------------------------------------------------------------- |\n| [`main`](\u002Fdemo\u002Fmain\u002Fapi) | `upcoming`   | 3.x plus a streaming endpoint. May still change                    |\n| [`v3.x`](\u002Fdemo\u002Fapi)      | `current`    | The full document, and the one served without a version segment    |\n| [`v2.x`](\u002Fdemo\u002Fv2.x\u002Fapi) | `deprecated` | Where `shipments` became `consignments` and paging became a cursor |\n| [`v1.x`](\u002Fdemo\u002Fv1.x\u002Fapi) | `eol`        | Switched off. Kept only to be read                                 |\n\n::callout{type=\"info\" title=\"Four statuses, one each\"}\nThat is deliberate. `upcoming`, `current`, `deprecated` and `eol` are everything\na reader can be told about the version they are in, and every one of them is\ndrawn by this site's own build.\n::\n\n## What differs between them\n\n`v1.x` is the shape before the rename: `shipments`, a `label` and a `state`,\npaged by number. `v2.x` is where each of those became `consignments`, a\n`reference` and a `status`, paged by cursor — so switching between the two on\none endpoint shows a real difference rather than a changed heading.\n\n`v3.x` adds the parts a reference has to be able to draw at all: several media\ntypes on one response, a `oneOf` with a discriminator, a callback, a webhook,\nthree authentication schemes. `main` is that document plus a streaming endpoint\nunder a tag of its own, which is what an unreleased line usually is.\n",{"title":14,"description":18},{"loc":15},"9ZPpvVXoCvnlIFCTgfBKaNtpGG-PM_7hDEBkXUhl2x0","en-GB","fr-FR",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":256},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m5 8l6 6m-7 0l6-6l2-3M2 5h12M7 2h1m14 20l-5-10l-5 10m2-4h6\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":258},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fg>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":260},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 5.88L14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88M7 10v12\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":262},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 18.12L10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88M17 14V2\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":264},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":266},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 8v4m0 4h.01\"\u002F>\u003C\u002Fg>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":268},"\u003Cpath fill=\"currentColor\" d=\"M20.317 4.37a19.8 19.8 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.3 18.3 0 0 0-5.487 0a13 13 0 0 0-.617-1.25a.08.08 0 0 0-.079-.037A19.7 19.7 0 0 0 3.677 4.37a.1.1 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.08.08 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.08.08 0 0 0 .084-.028a14 14 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13 13 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10 10 0 0 0 .372-.292a.07.07 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.07.07 0 0 1 .078.01q.181.149.373.292a.077.077 0 0 1-.006.127a12.3 12.3 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.08.08 0 0 0 .084.028a19.8 19.8 0 0 0 6.002-3.03a.08.08 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.06.06 0 0 0-.031-.03M8.02 15.33c-1.182 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418m7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":270},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":272},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":274},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":276},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 19l-7-7l7-7m7 7H5\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":278},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":26,"top":26,"width":27,"height":27,"rotate":26,"vFlip":28,"hFlip":28,"body":280},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",1789004685475]