[{"data":1,"prerenderedAt":2861},["ShallowReactive",2],{"navigation":3,"\u002Fexamples\u002Fproject-management":170,"\u002Fexamples\u002Fproject-management-surround":2856},[4,25,104,150,160],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-rocket",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Guides","\u002Fguides","2.guides",[30,35,40,45,50,55,60,65,70,75,79,84,89,94,99],{"title":31,"path":32,"stem":33,"icon":34},"Seeds and TestBiome","\u002Fguides\u002Fseeds-and-testbiome","2.guides\u002F01.seeds-and-testbiome","i-lucide-sprout",{"title":36,"path":37,"stem":38,"icon":39},"Blueprints","\u002Fguides\u002Fblueprints","2.guides\u002F02.blueprints","i-lucide-drafting-compass",{"title":41,"path":42,"stem":43,"icon":44},"Customizing","\u002Fguides\u002Fcustomizing","2.guides\u002F03.customizing","i-lucide-sliders-horizontal",{"title":46,"path":47,"stem":48,"icon":49},"Parent\u002Fchild chains and .Under","\u002Fguides\u002Fparents-and-children","2.guides\u002F04.parents-and-children","i-lucide-git-fork",{"title":51,"path":52,"stem":53,"icon":54},"Fan-out","\u002Fguides\u002Ffan-out","2.guides\u002F05.fan-out","i-lucide-split",{"title":56,"path":57,"stem":58,"icon":59},"Sequences","\u002Fguides\u002Fsequences","2.guides\u002F06.sequences","i-lucide-list-ordered",{"title":61,"path":62,"stem":63,"icon":64},"Time and precision","\u002Fguides\u002Ftime-and-precision","2.guides\u002F07.time-and-precision","i-lucide-clock",{"title":66,"path":67,"stem":68,"icon":69},"Transients","\u002Fguides\u002Ftransients","2.guides\u002F08.transients","i-lucide-ghost",{"title":71,"path":72,"stem":73,"icon":74},"Aggregates","\u002Fguides\u002Faggregates","2.guides\u002F09.aggregates","i-lucide-boxes",{"title":76,"path":77,"stem":78,"icon":74},"Input blueprints","\u002Fguides\u002Finput-blueprints","2.guides\u002F09.input-blueprints",{"title":80,"path":81,"stem":82,"icon":83},"Save hooks and global defaults","\u002Fguides\u002Fsave-hooks-and-defaults","2.guides\u002F10.save-hooks-and-defaults","i-lucide-webhook",{"title":85,"path":86,"stem":87,"icon":88},"EF Core store","\u002Fguides\u002Fef-core-store","2.guides\u002F11.ef-core-store","i-lucide-database",{"title":90,"path":91,"stem":92,"icon":93},"No-DB unit tests","\u002Fguides\u002Fno-db-unit-tests","2.guides\u002F12.no-db-unit-tests","i-lucide-flask-conical",{"title":95,"path":96,"stem":97,"icon":98},"Generated grafts and scenario helpers","\u002Fguides\u002Fscenario-helpers-and-sugar","2.guides\u002F13.scenario-helpers-and-sugar","i-lucide-wand-sparkles",{"title":100,"path":101,"stem":102,"icon":103},"Constructor setup","\u002Fguides\u002Fconstructor-setup","2.guides\u002F14.constructor-setup","i-lucide-blocks",{"title":105,"path":106,"stem":107,"children":108,"icon":6},"Examples","\u002Fexamples","3.examples\u002F1.index",[109,111,116,121,126,130,135,140,145],{"title":105,"path":106,"stem":107,"icon":110},"i-lucide-library",{"title":112,"path":113,"stem":114,"icon":115},"Code reviews","\u002Fexamples\u002Fcode-reviews","3.examples\u002F2.code-reviews","i-lucide-git-pull-request",{"title":117,"path":118,"stem":119,"icon":120},"Membership","\u002Fexamples\u002Fmembership","3.examples\u002F3.membership","i-lucide-users",{"title":122,"path":123,"stem":124,"icon":125},"Board","\u002Fexamples\u002Fboard","3.examples\u002F4.board","i-lucide-kanban",{"title":127,"path":128,"stem":129,"icon":44},"Custom seed","\u002Fexamples\u002Fcustom-seed","3.examples\u002F5.custom-seed",{"title":131,"path":132,"stem":133,"icon":134},"Commerce","\u002Fexamples\u002Fcommerce","3.examples\u002F6.commerce","i-lucide-shopping-cart",{"title":136,"path":137,"stem":138,"icon":139},"Project management","\u002Fexamples\u002Fproject-management","3.examples\u002F7.project-management","i-lucide-folder-kanban",{"title":141,"path":142,"stem":143,"icon":144},"Learning","\u002Fexamples\u002Flearning","3.examples\u002F8.learning","i-lucide-graduation-cap",{"title":146,"path":147,"stem":148,"icon":149},"Docs ingest","\u002Fexamples\u002Fdocs-ingest","3.examples\u002F9.docs-ingest","i-lucide-file-search",{"title":151,"icon":6,"path":152,"stem":153,"children":154,"page":6},"Reference","\u002Freference","4.reference",[155],{"title":156,"path":157,"stem":158,"icon":159},"API cheat sheet","\u002Freference\u002Fapi-cheat-sheet","4.reference\u002F1.api-cheat-sheet","i-lucide-list-checks",{"title":161,"icon":6,"path":162,"stem":163,"children":164,"page":6},"Agent Skills","\u002Fagents","5.agents",[165],{"title":166,"path":167,"stem":168,"icon":169},"Agent skills","\u002Fagents\u002Fagent-skills","5.agents\u002F1.agent-skills","i-lucide-bot",{"id":171,"title":136,"body":172,"description":2849,"extension":2850,"links":2851,"meta":2852,"navigation":2853,"path":137,"seo":2854,"stem":138,"__hash__":2855},"docs\u002F3.examples\u002F7.project-management.md",{"type":173,"value":174,"toc":2843},"minimark",[175,179,220,225,750,763,767,778,2275,2284,2302,2306,2578,2596,2600,2839],[176,177,178],"p",{},"A workspace can contain many nested boards and cards, but ticket numbers may need to span the whole workspace. This example combines local ranks with that wider counter and shows how to return to cards to add a sibling branch.",[176,180,181,185,186,185,189,185,191,185,194,185,197,200,201,204,205,209,210,219],{},[182,183,184],"code",{},"Workspace"," → ",[182,187,188],{},"Project",[182,190,122],{},[182,192,193],{},"Column",[182,195,196],{},"Card",[182,198,199],{},"ChecklistItem",", with ",[182,202,203],{},"Comment"," as a ",[206,207,208],"strong",{},"sibling branch"," of the checklist. Ranks restart per parent, but ticket numbers span the whole workspace. Source: ",[211,212,216],"a",{"href":213,"rel":214},"https:\u002F\u002Fgithub.com\u002Fzeeq-ai\u002Fzeeq-biome\u002Ftree\u002Fmain\u002Ftests\u002FZeeq.Biome.Tests\u002FProjectManagement",[215],"nofollow",[182,217,218],{},"tests\u002FZeeq.Biome.Tests\u002FProjectManagement",".",[221,222,224],"h2",{"id":223},"rank-scopes-and-a-workspace-ticket-counter","Rank scopes and a workspace ticket counter",[226,227,242],"pre",{"className":228,"code":229,"filename":230,"highlights":231,"language":240,"meta":241,"style":241},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark","\u002F\u002F A new column restarts card ranks while Under(column) resumes its progression.\ninternal static readonly Sequence\u003Cstring> CardRanks = Sequence\n    .Of(\"a\", r => r + \"a\")\n    .PerParent();\n\n\u002F\u002F Ticket numbers span columns\u002Fboards\u002Fprojects,\n\u002F\u002F reaching the nearest workspace ancestor.\ninternal static readonly Sequence\u003Cint> Tickets = Sequence\n    .Of(1, n => n + 1)\n    .Per\u003CWorkspace>();\n\n\u002F\u002F A deep ancestor supplies tenancy; a Derive\n\u002F\u002F chain supplies a title from the ticket.\ninternal static readonly ChildBlueprint\u003CProjectSeed, Column, Card> Card =\n    Blueprint\n        .ChildOf\u003CProjectSeed, Column, Card>(\n            (column, ctx) =>\n                new()\n                {\n                    Column = column,\n                    Workspace = ctx.Ancestor\u003CWorkspace>(),\n                    DueAt = ctx.FromNow(TimeSpan.FromDays(1)),\n                }\n        )\n        .Derive(c => c.Rank, CardRanks)\n        .Derive(c => c.Ticket, Tickets)\n        .Derive(c => c.Title, (c, _) => $\"Ticket {c.Ticket}\");\n","ProjectManagement\u002FDomain.cs",[232,233,234,235,236,237,238,239],2,3,4,8,9,10,21,26,"csharp","",[182,243,244,253,292,339,350,357,363,369,394,424,439,444,450,456,490,496,520,540,549,555,570,592,624,630,636,665,691],{"__ignoreMap":241},[245,246,249],"span",{"class":247,"line":248},"line",1,[245,250,252],{"class":251},"sutJx","\u002F\u002F A new column restarts card ranks while Under(column) resumes its progression.\n",[245,254,257,261,264,267,271,275,279,282,285,288],{"class":255,"line":232},[247,256],"highlight",[245,258,260],{"class":259},"sbsja","internal",[245,262,263],{"class":259}," static",[245,265,266],{"class":259}," readonly",[245,268,270],{"class":269},"sbgvK"," Sequence",[245,272,274],{"class":273},"sP7_E","\u003C",[245,276,278],{"class":277},"smGrS","string",[245,280,281],{"class":273},">",[245,283,284],{"class":269}," CardRanks",[245,286,287],{"class":277}," =",[245,289,291],{"class":290},"su5hD"," Sequence\n",[245,293,295,298,302,305,309,312,314,317,320,323,326,329,332,334,336],{"class":294,"line":233},[247,256],[245,296,297],{"class":273},"    .",[245,299,301],{"class":300},"sGLFI","Of",[245,303,304],{"class":273},"(",[245,306,308],{"class":307},"sjJ54","\"",[245,310,211],{"class":311},"s_sjI",[245,313,308],{"class":307},[245,315,316],{"class":273},",",[245,318,319],{"class":269}," r",[245,321,322],{"class":277}," =>",[245,324,325],{"class":290}," r ",[245,327,328],{"class":277},"+",[245,330,331],{"class":307}," \"",[245,333,211],{"class":311},[245,335,308],{"class":307},[245,337,338],{"class":273},")\n",[245,340,342,344,347],{"class":341,"line":234},[247,256],[245,343,297],{"class":273},[245,345,346],{"class":300},"PerParent",[245,348,349],{"class":273},"();\n",[245,351,353],{"class":247,"line":352},5,[245,354,356],{"emptyLinePlaceholder":355},true,"\n",[245,358,360],{"class":247,"line":359},6,[245,361,362],{"class":251},"\u002F\u002F Ticket numbers span columns\u002Fboards\u002Fprojects,\n",[245,364,366],{"class":247,"line":365},7,[245,367,368],{"class":251},"\u002F\u002F reaching the nearest workspace ancestor.\n",[245,370,372,374,376,378,380,382,385,387,390,392],{"class":371,"line":235},[247,256],[245,373,260],{"class":259},[245,375,263],{"class":259},[245,377,266],{"class":259},[245,379,270],{"class":269},[245,381,274],{"class":273},[245,383,384],{"class":277},"int",[245,386,281],{"class":273},[245,388,389],{"class":269}," Tickets",[245,391,287],{"class":277},[245,393,291],{"class":290},[245,395,397,399,401,403,407,409,412,414,417,419,422],{"class":396,"line":236},[247,256],[245,398,297],{"class":273},[245,400,301],{"class":300},[245,402,304],{"class":273},[245,404,406],{"class":405},"srdBf","1",[245,408,316],{"class":273},[245,410,411],{"class":269}," n",[245,413,322],{"class":277},[245,415,416],{"class":290}," n ",[245,418,328],{"class":277},[245,420,421],{"class":405}," 1",[245,423,338],{"class":273},[245,425,427,429,432,434,436],{"class":426,"line":237},[247,256],[245,428,297],{"class":273},[245,430,431],{"class":300},"Per",[245,433,274],{"class":273},[245,435,184],{"class":269},[245,437,438],{"class":273},">();\n",[245,440,442],{"class":247,"line":441},11,[245,443,356],{"emptyLinePlaceholder":355},[245,445,447],{"class":247,"line":446},12,[245,448,449],{"class":251},"\u002F\u002F A deep ancestor supplies tenancy; a Derive\n",[245,451,453],{"class":247,"line":452},13,[245,454,455],{"class":251},"\u002F\u002F chain supplies a title from the ticket.\n",[245,457,459,461,463,465,468,470,473,475,478,480,483,485,487],{"class":247,"line":458},14,[245,460,260],{"class":259},[245,462,263],{"class":259},[245,464,266],{"class":259},[245,466,467],{"class":269}," ChildBlueprint",[245,469,274],{"class":273},[245,471,472],{"class":269},"ProjectSeed",[245,474,316],{"class":273},[245,476,477],{"class":269}," Column",[245,479,316],{"class":273},[245,481,482],{"class":269}," Card",[245,484,281],{"class":273},[245,486,482],{"class":269},[245,488,489],{"class":277}," =\n",[245,491,493],{"class":247,"line":492},15,[245,494,495],{"class":290},"    Blueprint\n",[245,497,499,502,505,507,509,511,513,515,517],{"class":247,"line":498},16,[245,500,501],{"class":273},"        .",[245,503,504],{"class":300},"ChildOf",[245,506,274],{"class":273},[245,508,472],{"class":269},[245,510,316],{"class":273},[245,512,477],{"class":269},[245,514,316],{"class":273},[245,516,482],{"class":269},[245,518,519],{"class":273},">(\n",[245,521,523,526,529,531,534,537],{"class":247,"line":522},17,[245,524,525],{"class":273},"            (",[245,527,528],{"class":269},"column",[245,530,316],{"class":273},[245,532,533],{"class":269}," ctx",[245,535,536],{"class":273},")",[245,538,539],{"class":277}," =>\n",[245,541,543,546],{"class":247,"line":542},18,[245,544,545],{"class":277},"                new",[245,547,548],{"class":273},"()\n",[245,550,552],{"class":247,"line":551},19,[245,553,554],{"class":273},"                {\n",[245,556,558,561,564,567],{"class":247,"line":557},20,[245,559,560],{"class":290},"                    Column ",[245,562,563],{"class":277},"=",[245,565,566],{"class":290}," column",[245,568,569],{"class":273},",\n",[245,571,573,576,578,580,582,585,587,589],{"class":572,"line":238},[247,256],[245,574,575],{"class":290},"                    Workspace ",[245,577,563],{"class":277},[245,579,533],{"class":290},[245,581,219],{"class":273},[245,583,584],{"class":300},"Ancestor",[245,586,274],{"class":273},[245,588,184],{"class":269},[245,590,591],{"class":273},">(),\n",[245,593,595,598,600,602,604,607,609,612,614,617,619,621],{"class":247,"line":594},22,[245,596,597],{"class":290},"                    DueAt ",[245,599,563],{"class":277},[245,601,533],{"class":290},[245,603,219],{"class":273},[245,605,606],{"class":300},"FromNow",[245,608,304],{"class":273},[245,610,611],{"class":290},"TimeSpan",[245,613,219],{"class":273},[245,615,616],{"class":300},"FromDays",[245,618,304],{"class":273},[245,620,406],{"class":405},[245,622,623],{"class":273},")),\n",[245,625,627],{"class":247,"line":626},23,[245,628,629],{"class":273},"                }\n",[245,631,633],{"class":247,"line":632},24,[245,634,635],{"class":273},"        )\n",[245,637,639,641,644,646,649,651,654,656,659,661,663],{"class":247,"line":638},25,[245,640,501],{"class":273},[245,642,643],{"class":300},"Derive",[245,645,304],{"class":273},[245,647,648],{"class":269},"c",[245,650,322],{"class":277},[245,652,653],{"class":290}," c",[245,655,219],{"class":273},[245,657,658],{"class":290},"Rank",[245,660,316],{"class":273},[245,662,284],{"class":290},[245,664,338],{"class":273},[245,666,668,670,672,674,676,678,680,682,685,687,689],{"class":667,"line":239},[247,256],[245,669,501],{"class":273},[245,671,643],{"class":300},[245,673,304],{"class":273},[245,675,648],{"class":269},[245,677,322],{"class":277},[245,679,653],{"class":290},[245,681,219],{"class":273},[245,683,684],{"class":290},"Ticket",[245,686,316],{"class":273},[245,688,389],{"class":290},[245,690,338],{"class":273},[245,692,694,696,698,700,702,704,706,708,711,713,716,718,720,723,725,727,730,733,736,738,740,742,745,747],{"class":247,"line":693},27,[245,695,501],{"class":273},[245,697,643],{"class":300},[245,699,304],{"class":273},[245,701,648],{"class":269},[245,703,322],{"class":277},[245,705,653],{"class":290},[245,707,219],{"class":273},[245,709,710],{"class":290},"Title",[245,712,316],{"class":273},[245,714,715],{"class":273}," (",[245,717,648],{"class":269},[245,719,316],{"class":273},[245,721,722],{"class":269}," _",[245,724,536],{"class":273},[245,726,322],{"class":277},[245,728,729],{"class":307}," $\"",[245,731,732],{"class":311},"Ticket ",[245,734,735],{"class":307},"{",[245,737,648],{"class":290},[245,739,219],{"class":307},[245,741,684],{"class":290},[245,743,744],{"class":307},"}",[245,746,308],{"class":307},[245,748,749],{"class":273},");\n",[751,752,753],"note",{},[176,754,755,758,759,762],{},[182,756,757],{},"ctx.Ancestor\u003CWorkspace>()"," reaches ",[206,760,761],{},"five edges up"," from a card's column. There's no runtime ancestor auto-creation: the chain must already contain a workspace, and the error says so when it doesn't.",[221,764,766],{"id":765},"a-portfolio-then-sibling-comments","A portfolio, then sibling comments",[176,768,769,770,773,774,777],{},"Each count multiplies the previous output. After the deepest leaves, ",[182,771,772],{},".Under(cards)"," jumps back to attach ",[206,775,776],{},"comments"," as siblings of the checklist.",[779,780,781,990],"code-group",{},[226,782,786],{"className":228,"code":783,"filename":784,"highlights":785,"language":240,"meta":241,"style":241},"await biome\n    .AddWorkspaces(out var workspaces, 2)\n    .AddProjects(out _, 2) \u002F\u002F 4 projects\n    .AddBoards(out _, 1)\n    .AddColumns(out var columns, 2) \u002F\u002F 8 columns\n    .AddCards(out var cards, 3) \u002F\u002F 24 cards\n    .AddChecklistItems(out var checklist, 4) \u002F\u002F 96 deepest leaves\n    .Under(cards) \u002F\u002F comments attach to cards, not checklist items\n    .AddComments(out var comments, 2)\n    .BuildAsync();\n","With Biome",[235,236],[182,787,788,796,822,844,863,888,914,940,958,981],{"__ignoreMap":241},[245,789,790,793],{"class":247,"line":248},[245,791,792],{"class":277},"await",[245,794,795],{"class":290}," biome\n",[245,797,798,800,803,805,808,812,815,817,820],{"class":247,"line":232},[245,799,297],{"class":273},[245,801,802],{"class":300},"AddWorkspaces",[245,804,304],{"class":273},[245,806,807],{"class":259},"out",[245,809,811],{"class":810},"sG8yY"," var",[245,813,814],{"class":269}," workspaces",[245,816,316],{"class":273},[245,818,819],{"class":405}," 2",[245,821,338],{"class":273},[245,823,824,826,829,831,833,835,837,839,841],{"class":247,"line":233},[245,825,297],{"class":273},[245,827,828],{"class":300},"AddProjects",[245,830,304],{"class":273},[245,832,807],{"class":259},[245,834,722],{"class":290},[245,836,316],{"class":273},[245,838,819],{"class":405},[245,840,536],{"class":273},[245,842,843],{"class":251}," \u002F\u002F 4 projects\n",[245,845,846,848,851,853,855,857,859,861],{"class":247,"line":234},[245,847,297],{"class":273},[245,849,850],{"class":300},"AddBoards",[245,852,304],{"class":273},[245,854,807],{"class":259},[245,856,722],{"class":290},[245,858,316],{"class":273},[245,860,421],{"class":405},[245,862,338],{"class":273},[245,864,865,867,870,872,874,876,879,881,883,885],{"class":247,"line":352},[245,866,297],{"class":273},[245,868,869],{"class":300},"AddColumns",[245,871,304],{"class":273},[245,873,807],{"class":259},[245,875,811],{"class":810},[245,877,878],{"class":269}," columns",[245,880,316],{"class":273},[245,882,819],{"class":405},[245,884,536],{"class":273},[245,886,887],{"class":251}," \u002F\u002F 8 columns\n",[245,889,890,892,895,897,899,901,904,906,909,911],{"class":247,"line":359},[245,891,297],{"class":273},[245,893,894],{"class":300},"AddCards",[245,896,304],{"class":273},[245,898,807],{"class":259},[245,900,811],{"class":810},[245,902,903],{"class":269}," cards",[245,905,316],{"class":273},[245,907,908],{"class":405}," 3",[245,910,536],{"class":273},[245,912,913],{"class":251}," \u002F\u002F 24 cards\n",[245,915,916,918,921,923,925,927,930,932,935,937],{"class":247,"line":365},[245,917,297],{"class":273},[245,919,920],{"class":300},"AddChecklistItems",[245,922,304],{"class":273},[245,924,807],{"class":259},[245,926,811],{"class":810},[245,928,929],{"class":269}," checklist",[245,931,316],{"class":273},[245,933,934],{"class":405}," 4",[245,936,536],{"class":273},[245,938,939],{"class":251}," \u002F\u002F 96 deepest leaves\n",[245,941,943,945,948,950,953,955],{"class":942,"line":235},[247,256],[245,944,297],{"class":273},[245,946,947],{"class":300},"Under",[245,949,304],{"class":273},[245,951,952],{"class":290},"cards",[245,954,536],{"class":273},[245,956,957],{"class":251}," \u002F\u002F comments attach to cards, not checklist items\n",[245,959,961,963,966,968,970,972,975,977,979],{"class":960,"line":236},[247,256],[245,962,297],{"class":273},[245,964,965],{"class":300},"AddComments",[245,967,304],{"class":273},[245,969,807],{"class":259},[245,971,811],{"class":810},[245,973,974],{"class":269}," comments",[245,976,316],{"class":273},[245,978,819],{"class":405},[245,980,338],{"class":273},[245,982,983,985,988],{"class":247,"line":237},[245,984,297],{"class":273},[245,986,987],{"class":300},"BuildAsync",[245,989,349],{"class":273},[991,992,995],"code-collapse",{"label":993,"name":994},"Without Biome","setup",[226,996,998],{"className":228,"code":997,"language":240,"meta":241,"style":241},"var now = DateTimeOffset.UtcNow;\nvar workspaces = new[]\n{\n    new Workspace { Owner = \"owner\" },\n    new Workspace { Owner = \"owner\" },\n};\nvar projects = workspaces\n    .SelectMany(w =>\n        Enumerable.Range(0, 2).Select(_ => new Project { Workspace = w })\n    )\n    .ToList();\nvar boards = projects.Select(p => new Board { Project = p }).ToList();\n\nvar columns = new List\u003CColumn>();\nvar cards = new List\u003CCard>();\nvar checklist = new List\u003CChecklistItem>();\nvar comments = new List\u003CComment>();\nvar ticket = workspaces.ToDictionary(w => w, _ => 1); \u002F\u002F per workspace, by hand\n\nforeach (var board in boards)\n{\n    var workspace = board.Project.Workspace;\n    var columnRank = \"a\";\n    foreach (var _ in Enumerable.Range(0, 2))\n    {\n        var column = new Column\n        {\n            Board = board,\n            Rank = columnRank,\n            Name = $\"Column {columnRank}\",\n        };\n        columnRank += \"a\";\n        columns.Add(column);\n        var cardRank = \"a\"; \u002F\u002F restarts per column\n        foreach (var __ in Enumerable.Range(0, 3))\n        {\n            var card = new Card\n            {\n                Column = column,\n                Workspace = workspace,\n                Rank = cardRank,\n                Ticket = ticket[workspace]++,\n                DueAt = now.AddDays(1),\n            };\n            card.Title = $\"Ticket {card.Ticket}\";\n            cardRank += \"a\";\n            cards.Add(card);\n\n            var itemRank = \"a\"; \u002F\u002F restarts per card\n            foreach (var ___ in Enumerable.Range(0, 4))\n            {\n                checklist.Add(\n                    new ChecklistItem\n                    {\n                        Card = card,\n                        Workspace = workspace,\n                        Rank = itemRank,\n                        Text = $\"Task {itemRank}\",\n                    }\n                );\n                itemRank += \"a\";\n            }\n            for (var c = 1; c \u003C= 2; c++)\n            {\n                comments.Add(\n                    new Comment\n                    {\n                        Card = card,\n                        Workspace = workspace,\n                        Number = c,\n                        Text = $\"Comment {c}\",\n                        CreatedAt = now.AddHours(-1),\n                    }\n                );\n            }\n        }\n    }\n}\n\ndb.AddRange(workspaces);\ndb.AddRange(projects);\ndb.AddRange(boards);\ndb.AddRange(columns);\ndb.AddRange(cards);\ndb.AddRange(checklist);\ndb.AddRange(comments);\nawait db.SaveChangesAsync();\n",[182,999,1000,1021,1035,1040,1066,1086,1091,1103,1117,1167,1172,1181,1224,1228,1247,1265,1283,1301,1340,1344,1364,1368,1390,1407,1438,1443,1457,1462,1474,1486,1510,1516,1533,1550,1572,1603,1608,1624,1630,1642,1654,1666,1690,1712,1718,1750,1766,1782,1787,1808,1839,1844,1857,1866,1872,1884,1896,1908,1932,1938,1944,1960,1966,2000,2005,2017,2025,2030,2041,2052,2064,2086,2110,2115,2120,2125,2131,2137,2143,2148,2166,2182,2198,2214,2229,2245,2260],{"__ignoreMap":241},[245,1001,1002,1005,1008,1010,1013,1015,1018],{"class":247,"line":248},[245,1003,1004],{"class":810},"var",[245,1006,1007],{"class":269}," now",[245,1009,287],{"class":277},[245,1011,1012],{"class":290}," DateTimeOffset",[245,1014,219],{"class":273},[245,1016,1017],{"class":290},"UtcNow",[245,1019,1020],{"class":273},";\n",[245,1022,1023,1025,1027,1029,1032],{"class":247,"line":232},[245,1024,1004],{"class":810},[245,1026,814],{"class":269},[245,1028,287],{"class":277},[245,1030,1031],{"class":277}," new",[245,1033,1034],{"class":273},"[]\n",[245,1036,1037],{"class":247,"line":233},[245,1038,1039],{"class":273},"{\n",[245,1041,1042,1045,1048,1051,1054,1056,1058,1061,1063],{"class":247,"line":234},[245,1043,1044],{"class":277},"    new",[245,1046,1047],{"class":269}," Workspace",[245,1049,1050],{"class":273}," {",[245,1052,1053],{"class":290}," Owner ",[245,1055,563],{"class":277},[245,1057,331],{"class":307},[245,1059,1060],{"class":311},"owner",[245,1062,308],{"class":307},[245,1064,1065],{"class":273}," },\n",[245,1067,1068,1070,1072,1074,1076,1078,1080,1082,1084],{"class":247,"line":352},[245,1069,1044],{"class":277},[245,1071,1047],{"class":269},[245,1073,1050],{"class":273},[245,1075,1053],{"class":290},[245,1077,563],{"class":277},[245,1079,331],{"class":307},[245,1081,1060],{"class":311},[245,1083,308],{"class":307},[245,1085,1065],{"class":273},[245,1087,1088],{"class":247,"line":359},[245,1089,1090],{"class":273},"};\n",[245,1092,1093,1095,1098,1100],{"class":247,"line":365},[245,1094,1004],{"class":810},[245,1096,1097],{"class":269}," projects",[245,1099,287],{"class":277},[245,1101,1102],{"class":290}," workspaces\n",[245,1104,1105,1107,1110,1112,1115],{"class":247,"line":235},[245,1106,297],{"class":273},[245,1108,1109],{"class":300},"SelectMany",[245,1111,304],{"class":273},[245,1113,1114],{"class":269},"w",[245,1116,539],{"class":277},[245,1118,1119,1122,1124,1127,1129,1132,1134,1136,1139,1142,1144,1147,1149,1151,1154,1156,1159,1161,1164],{"class":247,"line":236},[245,1120,1121],{"class":290},"        Enumerable",[245,1123,219],{"class":273},[245,1125,1126],{"class":300},"Range",[245,1128,304],{"class":273},[245,1130,1131],{"class":405},"0",[245,1133,316],{"class":273},[245,1135,819],{"class":405},[245,1137,1138],{"class":273},").",[245,1140,1141],{"class":300},"Select",[245,1143,304],{"class":273},[245,1145,1146],{"class":269},"_",[245,1148,322],{"class":277},[245,1150,1031],{"class":277},[245,1152,1153],{"class":269}," Project",[245,1155,1050],{"class":273},[245,1157,1158],{"class":290}," Workspace ",[245,1160,563],{"class":277},[245,1162,1163],{"class":290}," w ",[245,1165,1166],{"class":273},"})\n",[245,1168,1169],{"class":247,"line":237},[245,1170,1171],{"class":273},"    )\n",[245,1173,1174,1176,1179],{"class":247,"line":441},[245,1175,297],{"class":273},[245,1177,1178],{"class":300},"ToList",[245,1180,349],{"class":273},[245,1182,1183,1185,1188,1190,1192,1194,1196,1198,1200,1202,1204,1207,1209,1212,1214,1217,1220,1222],{"class":247,"line":446},[245,1184,1004],{"class":810},[245,1186,1187],{"class":269}," boards",[245,1189,287],{"class":277},[245,1191,1097],{"class":290},[245,1193,219],{"class":273},[245,1195,1141],{"class":300},[245,1197,304],{"class":273},[245,1199,176],{"class":269},[245,1201,322],{"class":277},[245,1203,1031],{"class":277},[245,1205,1206],{"class":269}," Board",[245,1208,1050],{"class":273},[245,1210,1211],{"class":290}," Project ",[245,1213,563],{"class":277},[245,1215,1216],{"class":290}," p ",[245,1218,1219],{"class":273},"}).",[245,1221,1178],{"class":300},[245,1223,349],{"class":273},[245,1225,1226],{"class":247,"line":452},[245,1227,356],{"emptyLinePlaceholder":355},[245,1229,1230,1232,1234,1236,1238,1241,1243,1245],{"class":247,"line":458},[245,1231,1004],{"class":810},[245,1233,878],{"class":269},[245,1235,287],{"class":277},[245,1237,1031],{"class":277},[245,1239,1240],{"class":269}," List",[245,1242,274],{"class":273},[245,1244,193],{"class":269},[245,1246,438],{"class":273},[245,1248,1249,1251,1253,1255,1257,1259,1261,1263],{"class":247,"line":492},[245,1250,1004],{"class":810},[245,1252,903],{"class":269},[245,1254,287],{"class":277},[245,1256,1031],{"class":277},[245,1258,1240],{"class":269},[245,1260,274],{"class":273},[245,1262,196],{"class":269},[245,1264,438],{"class":273},[245,1266,1267,1269,1271,1273,1275,1277,1279,1281],{"class":247,"line":498},[245,1268,1004],{"class":810},[245,1270,929],{"class":269},[245,1272,287],{"class":277},[245,1274,1031],{"class":277},[245,1276,1240],{"class":269},[245,1278,274],{"class":273},[245,1280,199],{"class":269},[245,1282,438],{"class":273},[245,1284,1285,1287,1289,1291,1293,1295,1297,1299],{"class":247,"line":522},[245,1286,1004],{"class":810},[245,1288,974],{"class":269},[245,1290,287],{"class":277},[245,1292,1031],{"class":277},[245,1294,1240],{"class":269},[245,1296,274],{"class":273},[245,1298,203],{"class":269},[245,1300,438],{"class":273},[245,1302,1303,1305,1308,1310,1312,1314,1317,1319,1321,1323,1326,1328,1330,1332,1334,1337],{"class":247,"line":542},[245,1304,1004],{"class":810},[245,1306,1307],{"class":269}," ticket",[245,1309,287],{"class":277},[245,1311,814],{"class":290},[245,1313,219],{"class":273},[245,1315,1316],{"class":300},"ToDictionary",[245,1318,304],{"class":273},[245,1320,1114],{"class":269},[245,1322,322],{"class":277},[245,1324,1325],{"class":290}," w",[245,1327,316],{"class":273},[245,1329,722],{"class":269},[245,1331,322],{"class":277},[245,1333,421],{"class":405},[245,1335,1336],{"class":273},");",[245,1338,1339],{"class":251}," \u002F\u002F per workspace, by hand\n",[245,1341,1342],{"class":247,"line":551},[245,1343,356],{"emptyLinePlaceholder":355},[245,1345,1346,1350,1352,1354,1357,1360,1362],{"class":247,"line":557},[245,1347,1349],{"class":1348},"sVHd0","foreach",[245,1351,715],{"class":273},[245,1353,1004],{"class":810},[245,1355,1356],{"class":269}," board",[245,1358,1359],{"class":1348}," in",[245,1361,1187],{"class":290},[245,1363,338],{"class":273},[245,1365,1366],{"class":247,"line":238},[245,1367,1039],{"class":273},[245,1369,1370,1373,1376,1378,1380,1382,1384,1386,1388],{"class":247,"line":594},[245,1371,1372],{"class":810},"    var",[245,1374,1375],{"class":269}," workspace",[245,1377,287],{"class":277},[245,1379,1356],{"class":290},[245,1381,219],{"class":273},[245,1383,188],{"class":290},[245,1385,219],{"class":273},[245,1387,184],{"class":290},[245,1389,1020],{"class":273},[245,1391,1392,1394,1397,1399,1401,1403,1405],{"class":247,"line":626},[245,1393,1372],{"class":810},[245,1395,1396],{"class":269}," columnRank",[245,1398,287],{"class":277},[245,1400,331],{"class":307},[245,1402,211],{"class":311},[245,1404,308],{"class":307},[245,1406,1020],{"class":273},[245,1408,1409,1412,1414,1416,1418,1420,1423,1425,1427,1429,1431,1433,1435],{"class":247,"line":632},[245,1410,1411],{"class":1348},"    foreach",[245,1413,715],{"class":273},[245,1415,1004],{"class":810},[245,1417,722],{"class":269},[245,1419,1359],{"class":1348},[245,1421,1422],{"class":290}," Enumerable",[245,1424,219],{"class":273},[245,1426,1126],{"class":300},[245,1428,304],{"class":273},[245,1430,1131],{"class":405},[245,1432,316],{"class":273},[245,1434,819],{"class":405},[245,1436,1437],{"class":273},"))\n",[245,1439,1440],{"class":247,"line":638},[245,1441,1442],{"class":273},"    {\n",[245,1444,1445,1448,1450,1452,1454],{"class":247,"line":239},[245,1446,1447],{"class":810},"        var",[245,1449,566],{"class":269},[245,1451,287],{"class":277},[245,1453,1031],{"class":277},[245,1455,1456],{"class":269}," Column\n",[245,1458,1459],{"class":247,"line":693},[245,1460,1461],{"class":273},"        {\n",[245,1463,1465,1468,1470,1472],{"class":247,"line":1464},28,[245,1466,1467],{"class":290},"            Board ",[245,1469,563],{"class":277},[245,1471,1356],{"class":290},[245,1473,569],{"class":273},[245,1475,1477,1480,1482,1484],{"class":247,"line":1476},29,[245,1478,1479],{"class":290},"            Rank ",[245,1481,563],{"class":277},[245,1483,1396],{"class":290},[245,1485,569],{"class":273},[245,1487,1489,1492,1494,1496,1499,1501,1504,1506,1508],{"class":247,"line":1488},30,[245,1490,1491],{"class":290},"            Name ",[245,1493,563],{"class":277},[245,1495,729],{"class":307},[245,1497,1498],{"class":311},"Column ",[245,1500,735],{"class":307},[245,1502,1503],{"class":290},"columnRank",[245,1505,744],{"class":307},[245,1507,308],{"class":307},[245,1509,569],{"class":273},[245,1511,1513],{"class":247,"line":1512},31,[245,1514,1515],{"class":273},"        };\n",[245,1517,1519,1522,1525,1527,1529,1531],{"class":247,"line":1518},32,[245,1520,1521],{"class":290},"        columnRank ",[245,1523,1524],{"class":277},"+=",[245,1526,331],{"class":307},[245,1528,211],{"class":311},[245,1530,308],{"class":307},[245,1532,1020],{"class":273},[245,1534,1536,1539,1541,1544,1546,1548],{"class":247,"line":1535},33,[245,1537,1538],{"class":290},"        columns",[245,1540,219],{"class":273},[245,1542,1543],{"class":300},"Add",[245,1545,304],{"class":273},[245,1547,528],{"class":290},[245,1549,749],{"class":273},[245,1551,1553,1555,1558,1560,1562,1564,1566,1569],{"class":247,"line":1552},34,[245,1554,1447],{"class":810},[245,1556,1557],{"class":269}," cardRank",[245,1559,287],{"class":277},[245,1561,331],{"class":307},[245,1563,211],{"class":311},[245,1565,308],{"class":307},[245,1567,1568],{"class":273},";",[245,1570,1571],{"class":251}," \u002F\u002F restarts per column\n",[245,1573,1575,1578,1580,1582,1585,1587,1589,1591,1593,1595,1597,1599,1601],{"class":247,"line":1574},35,[245,1576,1577],{"class":1348},"        foreach",[245,1579,715],{"class":273},[245,1581,1004],{"class":810},[245,1583,1584],{"class":269}," __",[245,1586,1359],{"class":1348},[245,1588,1422],{"class":290},[245,1590,219],{"class":273},[245,1592,1126],{"class":300},[245,1594,304],{"class":273},[245,1596,1131],{"class":405},[245,1598,316],{"class":273},[245,1600,908],{"class":405},[245,1602,1437],{"class":273},[245,1604,1606],{"class":247,"line":1605},36,[245,1607,1461],{"class":273},[245,1609,1611,1614,1617,1619,1621],{"class":247,"line":1610},37,[245,1612,1613],{"class":810},"            var",[245,1615,1616],{"class":269}," card",[245,1618,287],{"class":277},[245,1620,1031],{"class":277},[245,1622,1623],{"class":269}," Card\n",[245,1625,1627],{"class":247,"line":1626},38,[245,1628,1629],{"class":273},"            {\n",[245,1631,1633,1636,1638,1640],{"class":247,"line":1632},39,[245,1634,1635],{"class":290},"                Column ",[245,1637,563],{"class":277},[245,1639,566],{"class":290},[245,1641,569],{"class":273},[245,1643,1645,1648,1650,1652],{"class":247,"line":1644},40,[245,1646,1647],{"class":290},"                Workspace ",[245,1649,563],{"class":277},[245,1651,1375],{"class":290},[245,1653,569],{"class":273},[245,1655,1657,1660,1662,1664],{"class":247,"line":1656},41,[245,1658,1659],{"class":290},"                Rank ",[245,1661,563],{"class":277},[245,1663,1557],{"class":290},[245,1665,569],{"class":273},[245,1667,1669,1672,1674,1676,1679,1682,1685,1688],{"class":247,"line":1668},42,[245,1670,1671],{"class":290},"                Ticket ",[245,1673,563],{"class":277},[245,1675,1307],{"class":290},[245,1677,1678],{"class":273},"[",[245,1680,1681],{"class":290},"workspace",[245,1683,1684],{"class":273},"]",[245,1686,1687],{"class":277},"++",[245,1689,569],{"class":273},[245,1691,1693,1696,1698,1700,1702,1705,1707,1709],{"class":247,"line":1692},43,[245,1694,1695],{"class":290},"                DueAt ",[245,1697,563],{"class":277},[245,1699,1007],{"class":290},[245,1701,219],{"class":273},[245,1703,1704],{"class":300},"AddDays",[245,1706,304],{"class":273},[245,1708,406],{"class":405},[245,1710,1711],{"class":273},"),\n",[245,1713,1715],{"class":247,"line":1714},44,[245,1716,1717],{"class":273},"            };\n",[245,1719,1721,1724,1726,1729,1731,1733,1735,1737,1740,1742,1744,1746,1748],{"class":247,"line":1720},45,[245,1722,1723],{"class":290},"            card",[245,1725,219],{"class":273},[245,1727,1728],{"class":290},"Title ",[245,1730,563],{"class":277},[245,1732,729],{"class":307},[245,1734,732],{"class":311},[245,1736,735],{"class":307},[245,1738,1739],{"class":290},"card",[245,1741,219],{"class":307},[245,1743,684],{"class":290},[245,1745,744],{"class":307},[245,1747,308],{"class":307},[245,1749,1020],{"class":273},[245,1751,1753,1756,1758,1760,1762,1764],{"class":247,"line":1752},46,[245,1754,1755],{"class":290},"            cardRank ",[245,1757,1524],{"class":277},[245,1759,331],{"class":307},[245,1761,211],{"class":311},[245,1763,308],{"class":307},[245,1765,1020],{"class":273},[245,1767,1769,1772,1774,1776,1778,1780],{"class":247,"line":1768},47,[245,1770,1771],{"class":290},"            cards",[245,1773,219],{"class":273},[245,1775,1543],{"class":300},[245,1777,304],{"class":273},[245,1779,1739],{"class":290},[245,1781,749],{"class":273},[245,1783,1785],{"class":247,"line":1784},48,[245,1786,356],{"emptyLinePlaceholder":355},[245,1788,1790,1792,1795,1797,1799,1801,1803,1805],{"class":247,"line":1789},49,[245,1791,1613],{"class":810},[245,1793,1794],{"class":269}," itemRank",[245,1796,287],{"class":277},[245,1798,331],{"class":307},[245,1800,211],{"class":311},[245,1802,308],{"class":307},[245,1804,1568],{"class":273},[245,1806,1807],{"class":251}," \u002F\u002F restarts per card\n",[245,1809,1811,1814,1816,1818,1821,1823,1825,1827,1829,1831,1833,1835,1837],{"class":247,"line":1810},50,[245,1812,1813],{"class":1348},"            foreach",[245,1815,715],{"class":273},[245,1817,1004],{"class":810},[245,1819,1820],{"class":269}," ___",[245,1822,1359],{"class":1348},[245,1824,1422],{"class":290},[245,1826,219],{"class":273},[245,1828,1126],{"class":300},[245,1830,304],{"class":273},[245,1832,1131],{"class":405},[245,1834,316],{"class":273},[245,1836,934],{"class":405},[245,1838,1437],{"class":273},[245,1840,1842],{"class":247,"line":1841},51,[245,1843,1629],{"class":273},[245,1845,1847,1850,1852,1854],{"class":247,"line":1846},52,[245,1848,1849],{"class":290},"                checklist",[245,1851,219],{"class":273},[245,1853,1543],{"class":300},[245,1855,1856],{"class":273},"(\n",[245,1858,1860,1863],{"class":247,"line":1859},53,[245,1861,1862],{"class":277},"                    new",[245,1864,1865],{"class":269}," ChecklistItem\n",[245,1867,1869],{"class":247,"line":1868},54,[245,1870,1871],{"class":273},"                    {\n",[245,1873,1875,1878,1880,1882],{"class":247,"line":1874},55,[245,1876,1877],{"class":290},"                        Card ",[245,1879,563],{"class":277},[245,1881,1616],{"class":290},[245,1883,569],{"class":273},[245,1885,1887,1890,1892,1894],{"class":247,"line":1886},56,[245,1888,1889],{"class":290},"                        Workspace ",[245,1891,563],{"class":277},[245,1893,1375],{"class":290},[245,1895,569],{"class":273},[245,1897,1899,1902,1904,1906],{"class":247,"line":1898},57,[245,1900,1901],{"class":290},"                        Rank ",[245,1903,563],{"class":277},[245,1905,1794],{"class":290},[245,1907,569],{"class":273},[245,1909,1911,1914,1916,1918,1921,1923,1926,1928,1930],{"class":247,"line":1910},58,[245,1912,1913],{"class":290},"                        Text ",[245,1915,563],{"class":277},[245,1917,729],{"class":307},[245,1919,1920],{"class":311},"Task ",[245,1922,735],{"class":307},[245,1924,1925],{"class":290},"itemRank",[245,1927,744],{"class":307},[245,1929,308],{"class":307},[245,1931,569],{"class":273},[245,1933,1935],{"class":247,"line":1934},59,[245,1936,1937],{"class":273},"                    }\n",[245,1939,1941],{"class":247,"line":1940},60,[245,1942,1943],{"class":273},"                );\n",[245,1945,1947,1950,1952,1954,1956,1958],{"class":247,"line":1946},61,[245,1948,1949],{"class":290},"                itemRank ",[245,1951,1524],{"class":277},[245,1953,331],{"class":307},[245,1955,211],{"class":311},[245,1957,308],{"class":307},[245,1959,1020],{"class":273},[245,1961,1963],{"class":247,"line":1962},62,[245,1964,1965],{"class":273},"            }\n",[245,1967,1969,1972,1974,1976,1978,1980,1982,1984,1987,1990,1992,1994,1996,1998],{"class":247,"line":1968},63,[245,1970,1971],{"class":1348},"            for",[245,1973,715],{"class":273},[245,1975,1004],{"class":810},[245,1977,653],{"class":269},[245,1979,287],{"class":277},[245,1981,421],{"class":405},[245,1983,1568],{"class":273},[245,1985,1986],{"class":290}," c ",[245,1988,1989],{"class":277},"\u003C=",[245,1991,819],{"class":405},[245,1993,1568],{"class":273},[245,1995,653],{"class":290},[245,1997,1687],{"class":277},[245,1999,338],{"class":273},[245,2001,2003],{"class":247,"line":2002},64,[245,2004,1629],{"class":273},[245,2006,2008,2011,2013,2015],{"class":247,"line":2007},65,[245,2009,2010],{"class":290},"                comments",[245,2012,219],{"class":273},[245,2014,1543],{"class":300},[245,2016,1856],{"class":273},[245,2018,2020,2022],{"class":247,"line":2019},66,[245,2021,1862],{"class":277},[245,2023,2024],{"class":269}," Comment\n",[245,2026,2028],{"class":247,"line":2027},67,[245,2029,1871],{"class":273},[245,2031,2033,2035,2037,2039],{"class":247,"line":2032},68,[245,2034,1877],{"class":290},[245,2036,563],{"class":277},[245,2038,1616],{"class":290},[245,2040,569],{"class":273},[245,2042,2044,2046,2048,2050],{"class":247,"line":2043},69,[245,2045,1889],{"class":290},[245,2047,563],{"class":277},[245,2049,1375],{"class":290},[245,2051,569],{"class":273},[245,2053,2055,2058,2060,2062],{"class":247,"line":2054},70,[245,2056,2057],{"class":290},"                        Number ",[245,2059,563],{"class":277},[245,2061,653],{"class":290},[245,2063,569],{"class":273},[245,2065,2067,2069,2071,2073,2076,2078,2080,2082,2084],{"class":247,"line":2066},71,[245,2068,1913],{"class":290},[245,2070,563],{"class":277},[245,2072,729],{"class":307},[245,2074,2075],{"class":311},"Comment ",[245,2077,735],{"class":307},[245,2079,648],{"class":290},[245,2081,744],{"class":307},[245,2083,308],{"class":307},[245,2085,569],{"class":273},[245,2087,2089,2092,2094,2096,2098,2101,2103,2106,2108],{"class":247,"line":2088},72,[245,2090,2091],{"class":290},"                        CreatedAt ",[245,2093,563],{"class":277},[245,2095,1007],{"class":290},[245,2097,219],{"class":273},[245,2099,2100],{"class":300},"AddHours",[245,2102,304],{"class":273},[245,2104,2105],{"class":277},"-",[245,2107,406],{"class":405},[245,2109,1711],{"class":273},[245,2111,2113],{"class":247,"line":2112},73,[245,2114,1937],{"class":273},[245,2116,2118],{"class":247,"line":2117},74,[245,2119,1943],{"class":273},[245,2121,2123],{"class":247,"line":2122},75,[245,2124,1965],{"class":273},[245,2126,2128],{"class":247,"line":2127},76,[245,2129,2130],{"class":273},"        }\n",[245,2132,2134],{"class":247,"line":2133},77,[245,2135,2136],{"class":273},"    }\n",[245,2138,2140],{"class":247,"line":2139},78,[245,2141,2142],{"class":273},"}\n",[245,2144,2146],{"class":247,"line":2145},79,[245,2147,356],{"emptyLinePlaceholder":355},[245,2149,2151,2154,2156,2159,2161,2164],{"class":247,"line":2150},80,[245,2152,2153],{"class":290},"db",[245,2155,219],{"class":273},[245,2157,2158],{"class":300},"AddRange",[245,2160,304],{"class":273},[245,2162,2163],{"class":290},"workspaces",[245,2165,749],{"class":273},[245,2167,2169,2171,2173,2175,2177,2180],{"class":247,"line":2168},81,[245,2170,2153],{"class":290},[245,2172,219],{"class":273},[245,2174,2158],{"class":300},[245,2176,304],{"class":273},[245,2178,2179],{"class":290},"projects",[245,2181,749],{"class":273},[245,2183,2185,2187,2189,2191,2193,2196],{"class":247,"line":2184},82,[245,2186,2153],{"class":290},[245,2188,219],{"class":273},[245,2190,2158],{"class":300},[245,2192,304],{"class":273},[245,2194,2195],{"class":290},"boards",[245,2197,749],{"class":273},[245,2199,2201,2203,2205,2207,2209,2212],{"class":247,"line":2200},83,[245,2202,2153],{"class":290},[245,2204,219],{"class":273},[245,2206,2158],{"class":300},[245,2208,304],{"class":273},[245,2210,2211],{"class":290},"columns",[245,2213,749],{"class":273},[245,2215,2217,2219,2221,2223,2225,2227],{"class":247,"line":2216},84,[245,2218,2153],{"class":290},[245,2220,219],{"class":273},[245,2222,2158],{"class":300},[245,2224,304],{"class":273},[245,2226,952],{"class":290},[245,2228,749],{"class":273},[245,2230,2232,2234,2236,2238,2240,2243],{"class":247,"line":2231},85,[245,2233,2153],{"class":290},[245,2235,219],{"class":273},[245,2237,2158],{"class":300},[245,2239,304],{"class":273},[245,2241,2242],{"class":290},"checklist",[245,2244,749],{"class":273},[245,2246,2248,2250,2252,2254,2256,2258],{"class":247,"line":2247},86,[245,2249,2153],{"class":290},[245,2251,219],{"class":273},[245,2253,2158],{"class":300},[245,2255,304],{"class":273},[245,2257,776],{"class":290},[245,2259,749],{"class":273},[245,2261,2263,2265,2268,2270,2273],{"class":247,"line":2262},87,[245,2264,792],{"class":277},[245,2266,2267],{"class":290}," db",[245,2269,219],{"class":273},[245,2271,2272],{"class":300},"SaveChangesAsync",[245,2274,349],{"class":273},[751,2276,2277],{},[176,2278,2279,2280,2283],{},"The hand-written setup has three nested loops, three rank counters, and a ticket dictionary. Moving the shared rules into blueprints reduces the call site from ",[206,2281,2282],{},"57 lines to 10"," and gives later tests the same numbering behavior.",[176,2285,2286,2287,2290,2291,2294,2295,2298,2299,219],{},"The real test checks that tenancy flows through every level (",[182,2288,2289],{},"checklist[95].Workspace == workspaces[1]","), that ranks restart (",[182,2292,2293],{},"columns[2].Rank == \"a\"",", ",[182,2296,2297],{},"cards[3].Rank == \"a\"","), and that ",[206,2300,2301],{},"all 24 × 2 comments share one frozen timestamp",[221,2303,2305],{"id":2304},"local-ranks-skip-explicit-values-tickets-span-columns","Local ranks skip explicit values; tickets span columns",[226,2307,2311],{"className":228,"code":2308,"filename":2309,"highlights":2310,"language":240,"meta":241,"style":241},"await biome\n    .AddWorkspace(out _)\n    .AddProject(out _)\n    .AddBoard(out _)\n    .AddColumns(out var columns, 2)\n    .AddCards(\n        out var cards,\n        Cards.Blocked + Cards.Urgent,\n        \u002F\u002F Explicit \"a\" is reserved before the first card\n        \u002F\u002F is filled; its rank becomes \"aa\".\n        c =>\n        {\n            c.Rank = \"a\";\n            c.Title = \"Regression\";\n        }\n    )\n    .AddChecklistItems(out _, 2)\n    \u002F\u002F Resume one column's rank and the encompassing workspace's ticket sequence.\n    .Under(columns[0])\n    .AddCard(out var next)\n    .BuildAsync();\n\n\u002F\u002F cards[0].Rank == \"aa\"; cards[2].Ticket == 3\n\u002F\u002F next.Rank == \"aaa\"; next.Ticket == 5; next.Title == \"Ticket 5\"\n","ProjectManagementTests.cs",[235,452,458,551,557],[182,2312,2313,2319,2334,2349,2364,2384,2392,2403,2426,2431,2436,2443,2447,2468,2488,2492,2496,2514,2519,2537,2556,2564,2568,2573],{"__ignoreMap":241},[245,2314,2315,2317],{"class":247,"line":248},[245,2316,792],{"class":277},[245,2318,795],{"class":290},[245,2320,2321,2323,2326,2328,2330,2332],{"class":247,"line":232},[245,2322,297],{"class":273},[245,2324,2325],{"class":300},"AddWorkspace",[245,2327,304],{"class":273},[245,2329,807],{"class":259},[245,2331,722],{"class":290},[245,2333,338],{"class":273},[245,2335,2336,2338,2341,2343,2345,2347],{"class":247,"line":233},[245,2337,297],{"class":273},[245,2339,2340],{"class":300},"AddProject",[245,2342,304],{"class":273},[245,2344,807],{"class":259},[245,2346,722],{"class":290},[245,2348,338],{"class":273},[245,2350,2351,2353,2356,2358,2360,2362],{"class":247,"line":234},[245,2352,297],{"class":273},[245,2354,2355],{"class":300},"AddBoard",[245,2357,304],{"class":273},[245,2359,807],{"class":259},[245,2361,722],{"class":290},[245,2363,338],{"class":273},[245,2365,2366,2368,2370,2372,2374,2376,2378,2380,2382],{"class":247,"line":352},[245,2367,297],{"class":273},[245,2369,869],{"class":300},[245,2371,304],{"class":273},[245,2373,807],{"class":259},[245,2375,811],{"class":810},[245,2377,878],{"class":269},[245,2379,316],{"class":273},[245,2381,819],{"class":405},[245,2383,338],{"class":273},[245,2385,2386,2388,2390],{"class":247,"line":359},[245,2387,297],{"class":273},[245,2389,894],{"class":300},[245,2391,1856],{"class":273},[245,2393,2394,2397,2399,2401],{"class":247,"line":365},[245,2395,2396],{"class":259},"        out",[245,2398,811],{"class":810},[245,2400,903],{"class":269},[245,2402,569],{"class":273},[245,2404,2406,2409,2411,2414,2416,2419,2421,2424],{"class":2405,"line":235},[247,256],[245,2407,2408],{"class":290},"        Cards",[245,2410,219],{"class":273},[245,2412,2413],{"class":290},"Blocked ",[245,2415,328],{"class":277},[245,2417,2418],{"class":290}," Cards",[245,2420,219],{"class":273},[245,2422,2423],{"class":290},"Urgent",[245,2425,569],{"class":273},[245,2427,2428],{"class":247,"line":236},[245,2429,2430],{"class":251},"        \u002F\u002F Explicit \"a\" is reserved before the first card\n",[245,2432,2433],{"class":247,"line":237},[245,2434,2435],{"class":251},"        \u002F\u002F is filled; its rank becomes \"aa\".\n",[245,2437,2438,2441],{"class":247,"line":441},[245,2439,2440],{"class":269},"        c",[245,2442,539],{"class":277},[245,2444,2445],{"class":247,"line":446},[245,2446,1461],{"class":273},[245,2448,2450,2453,2455,2458,2460,2462,2464,2466],{"class":2449,"line":452},[247,256],[245,2451,2452],{"class":290},"            c",[245,2454,219],{"class":273},[245,2456,2457],{"class":290},"Rank ",[245,2459,563],{"class":277},[245,2461,331],{"class":307},[245,2463,211],{"class":311},[245,2465,308],{"class":307},[245,2467,1020],{"class":273},[245,2469,2471,2473,2475,2477,2479,2481,2484,2486],{"class":2470,"line":458},[247,256],[245,2472,2452],{"class":290},[245,2474,219],{"class":273},[245,2476,1728],{"class":290},[245,2478,563],{"class":277},[245,2480,331],{"class":307},[245,2482,2483],{"class":311},"Regression",[245,2485,308],{"class":307},[245,2487,1020],{"class":273},[245,2489,2490],{"class":247,"line":492},[245,2491,2130],{"class":273},[245,2493,2494],{"class":247,"line":498},[245,2495,1171],{"class":273},[245,2497,2498,2500,2502,2504,2506,2508,2510,2512],{"class":247,"line":522},[245,2499,297],{"class":273},[245,2501,920],{"class":300},[245,2503,304],{"class":273},[245,2505,807],{"class":259},[245,2507,722],{"class":290},[245,2509,316],{"class":273},[245,2511,819],{"class":405},[245,2513,338],{"class":273},[245,2515,2516],{"class":247,"line":542},[245,2517,2518],{"class":251},"    \u002F\u002F Resume one column's rank and the encompassing workspace's ticket sequence.\n",[245,2520,2522,2524,2526,2528,2530,2532,2534],{"class":2521,"line":551},[247,256],[245,2523,297],{"class":273},[245,2525,947],{"class":300},[245,2527,304],{"class":273},[245,2529,2211],{"class":290},[245,2531,1678],{"class":273},[245,2533,1131],{"class":405},[245,2535,2536],{"class":273},"])\n",[245,2538,2540,2542,2545,2547,2549,2551,2554],{"class":2539,"line":557},[247,256],[245,2541,297],{"class":273},[245,2543,2544],{"class":300},"AddCard",[245,2546,304],{"class":273},[245,2548,807],{"class":259},[245,2550,811],{"class":810},[245,2552,2553],{"class":269}," next",[245,2555,338],{"class":273},[245,2557,2558,2560,2562],{"class":247,"line":238},[245,2559,297],{"class":273},[245,2561,987],{"class":300},[245,2563,349],{"class":273},[245,2565,2566],{"class":247,"line":594},[245,2567,356],{"emptyLinePlaceholder":355},[245,2569,2570],{"class":247,"line":626},[245,2571,2572],{"class":251},"\u002F\u002F cards[0].Rank == \"aa\"; cards[2].Ticket == 3\n",[245,2574,2575],{"class":247,"line":632},[245,2576,2577],{"class":251},"\u002F\u002F next.Rank == \"aaa\"; next.Ticket == 5; next.Title == \"Ticket 5\"\n",[2579,2580,2581],"tip",{},[176,2582,2583,2586,2587,2590,2591,2595],{},[182,2584,2585],{},"Cards.Blocked + Cards.Urgent"," is ",[206,2588,2589],{},"one"," card with both traits, while the second customizer is the second card in ",[2592,2593,2594],"em",{},"each"," column. Four cards total, each column ranking its own.",[221,2597,2599],{"id":2598},"a-ready-made-six-level-branch-with-a-transient-comment","A ready-made six-level branch, with a transient comment",[226,2601,2604],{"className":228,"code":2602,"filename":2309,"highlights":2603,"language":240,"meta":241,"style":241},"var time = new FakeTimeProvider(\n    new DateTimeOffset(2026, 10, 11, 12, 0, 0, TimeSpan.Zero)\n);\nvar biome = TestBiome.Start(out _, store, time);\nbiome.AddReadyChecklist(out var leaf);\n\ntime.Advance(TimeSpan.FromHours(2));\nawait biome\n    .Under(leaf.Card)\n    .AddComment(out var preview)\n    \u002F\u002F Built and returned, but NOT saved: this models a draft comment request.\n    .Transient()\n    .BuildAsync();\n\n\u002F\u002F store.Entities.Count == 6; no Comment saved\n\u002F\u002F preview.CreatedAt == time.GetUtcNow().AddHours(-1)\n",[236,237,446],[182,2605,2606,2622,2669,2673,2707,2728,2732,2759,2765,2783,2802,2807,2817,2825,2829,2834],{"__ignoreMap":241},[245,2607,2608,2610,2613,2615,2617,2620],{"class":247,"line":248},[245,2609,1004],{"class":810},[245,2611,2612],{"class":269}," time",[245,2614,287],{"class":277},[245,2616,1031],{"class":277},[245,2618,2619],{"class":269}," FakeTimeProvider",[245,2621,1856],{"class":273},[245,2623,2624,2626,2628,2630,2633,2635,2638,2640,2643,2645,2648,2650,2653,2655,2657,2659,2662,2664,2667],{"class":247,"line":232},[245,2625,1044],{"class":277},[245,2627,1012],{"class":269},[245,2629,304],{"class":273},[245,2631,2632],{"class":405},"2026",[245,2634,316],{"class":273},[245,2636,2637],{"class":405}," 10",[245,2639,316],{"class":273},[245,2641,2642],{"class":405}," 11",[245,2644,316],{"class":273},[245,2646,2647],{"class":405}," 12",[245,2649,316],{"class":273},[245,2651,2652],{"class":405}," 0",[245,2654,316],{"class":273},[245,2656,2652],{"class":405},[245,2658,316],{"class":273},[245,2660,2661],{"class":290}," TimeSpan",[245,2663,219],{"class":273},[245,2665,2666],{"class":290},"Zero",[245,2668,338],{"class":273},[245,2670,2671],{"class":247,"line":233},[245,2672,749],{"class":273},[245,2674,2675,2677,2680,2682,2685,2687,2690,2692,2694,2696,2698,2701,2703,2705],{"class":247,"line":234},[245,2676,1004],{"class":810},[245,2678,2679],{"class":269}," biome",[245,2681,287],{"class":277},[245,2683,2684],{"class":290}," TestBiome",[245,2686,219],{"class":273},[245,2688,2689],{"class":300},"Start",[245,2691,304],{"class":273},[245,2693,807],{"class":259},[245,2695,722],{"class":290},[245,2697,316],{"class":273},[245,2699,2700],{"class":290}," store",[245,2702,316],{"class":273},[245,2704,2612],{"class":290},[245,2706,749],{"class":273},[245,2708,2709,2712,2714,2717,2719,2721,2723,2726],{"class":247,"line":352},[245,2710,2711],{"class":290},"biome",[245,2713,219],{"class":273},[245,2715,2716],{"class":300},"AddReadyChecklist",[245,2718,304],{"class":273},[245,2720,807],{"class":259},[245,2722,811],{"class":810},[245,2724,2725],{"class":269}," leaf",[245,2727,749],{"class":273},[245,2729,2730],{"class":247,"line":359},[245,2731,356],{"emptyLinePlaceholder":355},[245,2733,2734,2737,2739,2742,2744,2746,2748,2751,2753,2756],{"class":247,"line":365},[245,2735,2736],{"class":290},"time",[245,2738,219],{"class":273},[245,2740,2741],{"class":300},"Advance",[245,2743,304],{"class":273},[245,2745,611],{"class":290},[245,2747,219],{"class":273},[245,2749,2750],{"class":300},"FromHours",[245,2752,304],{"class":273},[245,2754,2755],{"class":405},"2",[245,2757,2758],{"class":273},"));\n",[245,2760,2761,2763],{"class":247,"line":235},[245,2762,792],{"class":277},[245,2764,795],{"class":290},[245,2766,2768,2770,2772,2774,2777,2779,2781],{"class":2767,"line":236},[247,256],[245,2769,297],{"class":273},[245,2771,947],{"class":300},[245,2773,304],{"class":273},[245,2775,2776],{"class":290},"leaf",[245,2778,219],{"class":273},[245,2780,196],{"class":290},[245,2782,338],{"class":273},[245,2784,2786,2788,2791,2793,2795,2797,2800],{"class":2785,"line":237},[247,256],[245,2787,297],{"class":273},[245,2789,2790],{"class":300},"AddComment",[245,2792,304],{"class":273},[245,2794,807],{"class":259},[245,2796,811],{"class":810},[245,2798,2799],{"class":269}," preview",[245,2801,338],{"class":273},[245,2803,2804],{"class":247,"line":441},[245,2805,2806],{"class":251},"    \u002F\u002F Built and returned, but NOT saved: this models a draft comment request.\n",[245,2808,2810,2812,2815],{"class":2809,"line":446},[247,256],[245,2811,297],{"class":273},[245,2813,2814],{"class":300},"Transient",[245,2816,548],{"class":273},[245,2818,2819,2821,2823],{"class":247,"line":452},[245,2820,297],{"class":273},[245,2822,987],{"class":300},[245,2824,349],{"class":273},[245,2826,2827],{"class":247,"line":458},[245,2828,356],{"emptyLinePlaceholder":355},[245,2830,2831],{"class":247,"line":492},[245,2832,2833],{"class":251},"\u002F\u002F store.Entities.Count == 6; no Comment saved\n",[245,2835,2836],{"class":247,"line":498},[245,2837,2838],{"class":251},"\u002F\u002F preview.CreatedAt == time.GetUtcNow().AddHours(-1)\n",[2840,2841,2842],"style",{},"html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sG8yY, html code.shiki .sG8yY{--shiki-light:#E2931D;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}",{"title":241,"searchDepth":248,"depth":232,"links":2844},[2845,2846,2847,2848],{"id":223,"depth":232,"text":224},{"id":765,"depth":232,"text":766},{"id":2304,"depth":232,"text":2305},{"id":2598,"depth":232,"text":2599},"Six levels, three rank scopes, workspace-wide tickets and sibling branches.","md",null,{},{"icon":139},{"title":136,"description":2849},"WXf9V68F4sJveoH9JTU2LGVVKqpHWHZcjUMosZMfaWQ",[2857,2859],{"title":131,"path":132,"stem":133,"description":2858,"icon":134,"children":-1},"A five-level fulfilment tree with mixed sequence scopes and transient request inputs.",{"title":141,"path":142,"stem":143,"description":2860,"icon":144,"children":-1},"School to submission, with roster numbers across sections and a clock shared with the code under test.",1791831050382]