[{"data":1,"prerenderedAt":1756},["ShallowReactive",2],{"navigation":3,"\u002Fexamples\u002Fboard":170,"\u002Fexamples\u002Fboard-surround":1751},[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":122,"body":172,"description":1744,"extension":1745,"links":1746,"meta":1747,"navigation":1748,"path":123,"seo":1749,"stem":124,"__hash__":1750},"docs\u002F3.examples\u002F4.board.md",{"type":173,"value":174,"toc":1738},"minimark",[175,179,219,224,675,702,710,1506,1524,1549,1553,1734],[176,177,178],"p",{},"Card ordering belongs to a column. Adding more cards later should continue that column's ranks without changing another column's sequence. This example uses string ranks to show that sequences are useful beyond integer IDs.",[176,180,181,182,185,186,185,189,192,193,197,198,201,202,201,205,208,209,218],{},"A kanban board: ",[183,184,122],"code",{}," → ",[183,187,188],{},"Column",[183,190,191],{},"Card",". Cards are ordered by a ",[194,195,196],"strong",{},"string rank"," (",[183,199,200],{},"\"a\"",", ",[183,203,204],{},"\"aa\"",[183,206,207],{},"\"aaa\"","…, in the spirit of LexoRank) that restarts for every column. Source: ",[210,211,215],"a",{"href":212,"rel":213},"https:\u002F\u002Fgithub.com\u002Fzeeq-ai\u002Fzeeq-biome\u002Ftree\u002Fmain\u002Ftests\u002FZeeq.Biome.Tests\u002FBoard",[214],"nofollow",[183,216,217],{},"tests\u002FZeeq.Biome.Tests\u002FBoard",".",[220,221,223],"h2",{"id":222},"the-blueprints","The blueprints",[225,226,237],"pre",{"className":227,"code":228,"filename":229,"highlights":230,"language":235,"meta":236,"style":236},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark","\u002F\u002F PerParent resumes for the same column reference;\n\u002F\u002F it restarts for a different column.\ninternal static readonly Sequence\u003Cstring> Ranks = Sequence\n    .Of(\"a\", rank => rank + \"a\")\n    .PerParent();\n\ninternal static readonly Blueprint\u003CBoardSeed, Board> Board = Blueprint.For\u003C\n    BoardSeed,\n    Board\n>(_ => new());\n\ninternal static readonly ChildBlueprint\u003CBoardSeed, Board, Column> Column =\n    Blueprint.ChildOf\u003CBoardSeed, Board, Column>(\n        (board, _) => new() { Board = board }\n    );\n\n\u002F\u002F Rank stays null until Derive; empty string would count as explicitly set.\ninternal static readonly ChildBlueprint\u003CBoardSeed, Column, Card> Card =\n    Blueprint\n        .ChildOf\u003CBoardSeed, Column, Card>(\n            (column, _) => new() { Column = column }\n        )\n        .Derive(c => c.Rank, Ranks);\n","Board\u002FDomain.cs",[231,232,233,234],3,4,5,23,"csharp","",[183,238,239,248,254,293,340,351,358,392,401,407,428,433,465,491,531,537,542,548,578,584,606,639,645],{"__ignoreMap":236},[240,241,244],"span",{"class":242,"line":243},"line",1,[240,245,247],{"class":246},"sutJx","\u002F\u002F PerParent resumes for the same column reference;\n",[240,249,251],{"class":242,"line":250},2,[240,252,253],{"class":246},"\u002F\u002F it restarts for a different column.\n",[240,255,258,262,265,268,272,276,280,283,286,289],{"class":256,"line":231},[242,257],"highlight",[240,259,261],{"class":260},"sbsja","internal",[240,263,264],{"class":260}," static",[240,266,267],{"class":260}," readonly",[240,269,271],{"class":270},"sbgvK"," Sequence",[240,273,275],{"class":274},"sP7_E","\u003C",[240,277,279],{"class":278},"smGrS","string",[240,281,282],{"class":274},">",[240,284,285],{"class":270}," Ranks",[240,287,288],{"class":278}," =",[240,290,292],{"class":291},"su5hD"," Sequence\n",[240,294,296,299,303,306,310,313,315,318,321,324,327,330,333,335,337],{"class":295,"line":232},[242,257],[240,297,298],{"class":274},"    .",[240,300,302],{"class":301},"sGLFI","Of",[240,304,305],{"class":274},"(",[240,307,309],{"class":308},"sjJ54","\"",[240,311,210],{"class":312},"s_sjI",[240,314,309],{"class":308},[240,316,317],{"class":274},",",[240,319,320],{"class":270}," rank",[240,322,323],{"class":278}," =>",[240,325,326],{"class":291}," rank ",[240,328,329],{"class":278},"+",[240,331,332],{"class":308}," \"",[240,334,210],{"class":312},[240,336,309],{"class":308},[240,338,339],{"class":274},")\n",[240,341,343,345,348],{"class":342,"line":233},[242,257],[240,344,298],{"class":274},[240,346,347],{"class":301},"PerParent",[240,349,350],{"class":274},"();\n",[240,352,354],{"class":242,"line":353},6,[240,355,357],{"emptyLinePlaceholder":356},true,"\n",[240,359,361,363,365,367,370,372,375,377,380,382,384,386,389],{"class":242,"line":360},7,[240,362,261],{"class":260},[240,364,264],{"class":260},[240,366,267],{"class":260},[240,368,369],{"class":270}," Blueprint",[240,371,275],{"class":274},[240,373,374],{"class":270},"BoardSeed",[240,376,317],{"class":274},[240,378,379],{"class":270}," Board",[240,381,282],{"class":274},[240,383,379],{"class":270},[240,385,288],{"class":278},[240,387,388],{"class":291}," Blueprint.For",[240,390,391],{"class":278},"\u003C\n",[240,393,395,398],{"class":242,"line":394},8,[240,396,397],{"class":291},"    BoardSeed",[240,399,400],{"class":274},",\n",[240,402,404],{"class":242,"line":403},9,[240,405,406],{"class":270},"    Board\n",[240,408,410,413,416,419,422,425],{"class":242,"line":409},10,[240,411,412],{"class":291},">(",[240,414,415],{"class":270},"_",[240,417,418],{"class":291}," => ",[240,420,421],{"class":270},"new",[240,423,424],{"class":291},"())",[240,426,427],{"class":274},";\n",[240,429,431],{"class":242,"line":430},11,[240,432,357],{"emptyLinePlaceholder":356},[240,434,436,438,440,442,445,447,449,451,453,455,458,460,462],{"class":242,"line":435},12,[240,437,261],{"class":260},[240,439,264],{"class":260},[240,441,267],{"class":260},[240,443,444],{"class":270}," ChildBlueprint",[240,446,275],{"class":274},[240,448,374],{"class":270},[240,450,317],{"class":274},[240,452,379],{"class":270},[240,454,317],{"class":274},[240,456,457],{"class":270}," Column",[240,459,282],{"class":274},[240,461,457],{"class":270},[240,463,464],{"class":278}," =\n",[240,466,468,471,473,476,478,480,482,484,486,488],{"class":242,"line":467},13,[240,469,470],{"class":291},"    Blueprint",[240,472,218],{"class":274},[240,474,475],{"class":301},"ChildOf",[240,477,275],{"class":274},[240,479,374],{"class":270},[240,481,317],{"class":274},[240,483,379],{"class":270},[240,485,317],{"class":274},[240,487,457],{"class":270},[240,489,490],{"class":274},">(\n",[240,492,494,497,500,502,505,508,510,513,516,519,522,525,528],{"class":242,"line":493},14,[240,495,496],{"class":274},"        (",[240,498,499],{"class":270},"board",[240,501,317],{"class":274},[240,503,504],{"class":270}," _",[240,506,507],{"class":274},")",[240,509,323],{"class":278},[240,511,512],{"class":278}," new",[240,514,515],{"class":274},"()",[240,517,518],{"class":274}," {",[240,520,521],{"class":291}," Board ",[240,523,524],{"class":278},"=",[240,526,527],{"class":291}," board ",[240,529,530],{"class":274},"}\n",[240,532,534],{"class":242,"line":533},15,[240,535,536],{"class":274},"    );\n",[240,538,540],{"class":242,"line":539},16,[240,541,357],{"emptyLinePlaceholder":356},[240,543,545],{"class":242,"line":544},17,[240,546,547],{"class":246},"\u002F\u002F Rank stays null until Derive; empty string would count as explicitly set.\n",[240,549,551,553,555,557,559,561,563,565,567,569,572,574,576],{"class":242,"line":550},18,[240,552,261],{"class":260},[240,554,264],{"class":260},[240,556,267],{"class":260},[240,558,444],{"class":270},[240,560,275],{"class":274},[240,562,374],{"class":270},[240,564,317],{"class":274},[240,566,457],{"class":270},[240,568,317],{"class":274},[240,570,571],{"class":270}," Card",[240,573,282],{"class":274},[240,575,571],{"class":270},[240,577,464],{"class":278},[240,579,581],{"class":242,"line":580},19,[240,582,583],{"class":291},"    Blueprint\n",[240,585,587,590,592,594,596,598,600,602,604],{"class":242,"line":586},20,[240,588,589],{"class":274},"        .",[240,591,475],{"class":301},[240,593,275],{"class":274},[240,595,374],{"class":270},[240,597,317],{"class":274},[240,599,457],{"class":270},[240,601,317],{"class":274},[240,603,571],{"class":270},[240,605,490],{"class":274},[240,607,609,612,615,617,619,621,623,625,627,629,632,634,637],{"class":242,"line":608},21,[240,610,611],{"class":274},"            (",[240,613,614],{"class":270},"column",[240,616,317],{"class":274},[240,618,504],{"class":270},[240,620,507],{"class":274},[240,622,323],{"class":278},[240,624,512],{"class":278},[240,626,515],{"class":274},[240,628,518],{"class":274},[240,630,631],{"class":291}," Column ",[240,633,524],{"class":278},[240,635,636],{"class":291}," column ",[240,638,530],{"class":274},[240,640,642],{"class":242,"line":641},22,[240,643,644],{"class":274},"        )\n",[240,646,648,650,653,655,658,660,663,665,668,670,672],{"class":647,"line":234},[242,257],[240,649,589],{"class":274},[240,651,652],{"class":301},"Derive",[240,654,305],{"class":274},[240,656,657],{"class":270},"c",[240,659,323],{"class":278},[240,661,662],{"class":291}," c",[240,664,218],{"class":274},[240,666,667],{"class":291},"Rank",[240,669,317],{"class":274},[240,671,285],{"class":291},[240,673,674],{"class":274},");\n",[676,677,678],"caution",{},[176,679,680,682,683,686,687,690,691,693,694,697,698,701],{},[183,681,667],{}," is declared ",[183,684,685],{},"string Rank { get; set; } = null!;"," and is ",[183,688,689],{},"null"," until the ",[183,692,652],{}," runs. A default of ",[183,695,696],{},"\"\""," would count as ",[194,699,700],{},"explicitly set",", and the sequence would never fill it.",[220,703,705,706,709],{"id":704},"ranks-resume-per-column-and-under-revisits","Ranks resume per column, and ",[183,707,708],{},".Under"," revisits",[711,712,713,918],"code-group",{},[225,714,718],{"className":227,"code":715,"filename":716,"highlights":717,"language":235,"meta":236,"style":236},"await TestBiome\n    .Start(out _)\n    .AddBoard(out var board)\n    .AddColumns(out var columns, 2)\n    .AddCards(out var cards, 2) \u002F\u002F \"a\", \"aa\" | \"a\", \"aa\"\n    .Under(columns[0])\n    .AddCard(out var next) \u002F\u002F \"aaa\": resumes only this column\n    .Under(board)\n    .AddColumn(out var sibling)\n    .AddCard(out var siblingCard) \u002F\u002F \"a\": a new column restarts\n    .BuildAsync();\n","With Biome",[353,360,403,409],[183,719,720,728,744,764,788,813,835,857,869,888,909],{"__ignoreMap":236},[240,721,722,725],{"class":242,"line":243},[240,723,724],{"class":278},"await",[240,726,727],{"class":291}," TestBiome\n",[240,729,730,732,735,737,740,742],{"class":242,"line":250},[240,731,298],{"class":274},[240,733,734],{"class":301},"Start",[240,736,305],{"class":274},[240,738,739],{"class":260},"out",[240,741,504],{"class":291},[240,743,339],{"class":274},[240,745,746,748,751,753,755,759,762],{"class":242,"line":231},[240,747,298],{"class":274},[240,749,750],{"class":301},"AddBoard",[240,752,305],{"class":274},[240,754,739],{"class":260},[240,756,758],{"class":757},"sG8yY"," var",[240,760,761],{"class":270}," board",[240,763,339],{"class":274},[240,765,766,768,771,773,775,777,780,782,786],{"class":242,"line":232},[240,767,298],{"class":274},[240,769,770],{"class":301},"AddColumns",[240,772,305],{"class":274},[240,774,739],{"class":260},[240,776,758],{"class":757},[240,778,779],{"class":270}," columns",[240,781,317],{"class":274},[240,783,785],{"class":784},"srdBf"," 2",[240,787,339],{"class":274},[240,789,790,792,795,797,799,801,804,806,808,810],{"class":242,"line":233},[240,791,298],{"class":274},[240,793,794],{"class":301},"AddCards",[240,796,305],{"class":274},[240,798,739],{"class":260},[240,800,758],{"class":757},[240,802,803],{"class":270}," cards",[240,805,317],{"class":274},[240,807,785],{"class":784},[240,809,507],{"class":274},[240,811,812],{"class":246}," \u002F\u002F \"a\", \"aa\" | \"a\", \"aa\"\n",[240,814,816,818,821,823,826,829,832],{"class":815,"line":353},[242,257],[240,817,298],{"class":274},[240,819,820],{"class":301},"Under",[240,822,305],{"class":274},[240,824,825],{"class":291},"columns",[240,827,828],{"class":274},"[",[240,830,831],{"class":784},"0",[240,833,834],{"class":274},"])\n",[240,836,838,840,843,845,847,849,852,854],{"class":837,"line":360},[242,257],[240,839,298],{"class":274},[240,841,842],{"class":301},"AddCard",[240,844,305],{"class":274},[240,846,739],{"class":260},[240,848,758],{"class":757},[240,850,851],{"class":270}," next",[240,853,507],{"class":274},[240,855,856],{"class":246}," \u002F\u002F \"aaa\": resumes only this column\n",[240,858,859,861,863,865,867],{"class":242,"line":394},[240,860,298],{"class":274},[240,862,820],{"class":301},[240,864,305],{"class":274},[240,866,499],{"class":291},[240,868,339],{"class":274},[240,870,872,874,877,879,881,883,886],{"class":871,"line":403},[242,257],[240,873,298],{"class":274},[240,875,876],{"class":301},"AddColumn",[240,878,305],{"class":274},[240,880,739],{"class":260},[240,882,758],{"class":757},[240,884,885],{"class":270}," sibling",[240,887,339],{"class":274},[240,889,891,893,895,897,899,901,904,906],{"class":890,"line":409},[242,257],[240,892,298],{"class":274},[240,894,842],{"class":301},[240,896,305],{"class":274},[240,898,739],{"class":260},[240,900,758],{"class":757},[240,902,903],{"class":270}," siblingCard",[240,905,507],{"class":274},[240,907,908],{"class":246}," \u002F\u002F \"a\": a new column restarts\n",[240,910,911,913,916],{"class":242,"line":430},[240,912,298],{"class":274},[240,914,915],{"class":301},"BuildAsync",[240,917,350],{"class":274},[919,920,923],"code-collapse",{"label":921,"name":922},"Without Biome","setup",[225,924,926],{"className":227,"code":925,"language":235,"meta":236,"style":236},"var board = new Board();\nvar columns = new[]\n{\n    new Column { Board = board },\n    new Column { Board = board },\n};\n\n\u002F\u002F Ranks are generated and tracked by hand, one counter per column.\nvar ranks = new Dictionary\u003CColumn, string>();\nstring NextRank(Column column)\n{\n    var rank = ranks.GetValueOrDefault(column, \"a\");\n    ranks[column] = rank + \"a\";\n    return rank;\n}\n\nvar cards = new[]\n{\n    new Card { Column = columns[0], Rank = NextRank(columns[0]) },\n    new Card { Column = columns[0], Rank = NextRank(columns[0]) },\n    new Card { Column = columns[1], Rank = NextRank(columns[1]) },\n    new Card { Column = columns[1], Rank = NextRank(columns[1]) },\n};\nvar next = new Card { Column = columns[0], Rank = NextRank(columns[0]) };\nvar sibling = new Column { Board = board };\nvar siblingCard = new Card { Column = sibling, Rank = NextRank(sibling) };\n\ndb.AddRange(board, columns[0], columns[1], sibling);\ndb.AddRange(cards);\ndb.AddRange(next, siblingCard);\nawait db.SaveChangesAsync();\n",[183,927,928,943,956,961,979,995,1000,1004,1009,1035,1051,1055,1085,1111,1121,1125,1129,1141,1145,1187,1225,1264,1302,1306,1352,1375,1413,1418,1455,1471,1491],{"__ignoreMap":236},[240,929,930,933,935,937,939,941],{"class":242,"line":243},[240,931,932],{"class":757},"var",[240,934,761],{"class":270},[240,936,288],{"class":278},[240,938,512],{"class":278},[240,940,379],{"class":270},[240,942,350],{"class":274},[240,944,945,947,949,951,953],{"class":242,"line":250},[240,946,932],{"class":757},[240,948,779],{"class":270},[240,950,288],{"class":278},[240,952,512],{"class":278},[240,954,955],{"class":274},"[]\n",[240,957,958],{"class":242,"line":231},[240,959,960],{"class":274},"{\n",[240,962,963,966,968,970,972,974,976],{"class":242,"line":232},[240,964,965],{"class":278},"    new",[240,967,457],{"class":270},[240,969,518],{"class":274},[240,971,521],{"class":291},[240,973,524],{"class":278},[240,975,527],{"class":291},[240,977,978],{"class":274},"},\n",[240,980,981,983,985,987,989,991,993],{"class":242,"line":233},[240,982,965],{"class":278},[240,984,457],{"class":270},[240,986,518],{"class":274},[240,988,521],{"class":291},[240,990,524],{"class":278},[240,992,527],{"class":291},[240,994,978],{"class":274},[240,996,997],{"class":242,"line":353},[240,998,999],{"class":274},"};\n",[240,1001,1002],{"class":242,"line":360},[240,1003,357],{"emptyLinePlaceholder":356},[240,1005,1006],{"class":242,"line":394},[240,1007,1008],{"class":246},"\u002F\u002F Ranks are generated and tracked by hand, one counter per column.\n",[240,1010,1011,1013,1016,1018,1020,1023,1025,1027,1029,1032],{"class":242,"line":403},[240,1012,932],{"class":757},[240,1014,1015],{"class":270}," ranks",[240,1017,288],{"class":278},[240,1019,512],{"class":278},[240,1021,1022],{"class":270}," Dictionary",[240,1024,275],{"class":274},[240,1026,188],{"class":270},[240,1028,317],{"class":274},[240,1030,1031],{"class":278}," string",[240,1033,1034],{"class":274},">();\n",[240,1036,1037,1039,1042,1044,1046,1049],{"class":242,"line":409},[240,1038,279],{"class":278},[240,1040,1041],{"class":301}," NextRank",[240,1043,305],{"class":274},[240,1045,188],{"class":270},[240,1047,1048],{"class":270}," column",[240,1050,339],{"class":274},[240,1052,1053],{"class":242,"line":430},[240,1054,960],{"class":274},[240,1056,1057,1060,1062,1064,1066,1068,1071,1073,1075,1077,1079,1081,1083],{"class":242,"line":435},[240,1058,1059],{"class":757},"    var",[240,1061,320],{"class":270},[240,1063,288],{"class":278},[240,1065,1015],{"class":291},[240,1067,218],{"class":274},[240,1069,1070],{"class":301},"GetValueOrDefault",[240,1072,305],{"class":274},[240,1074,614],{"class":291},[240,1076,317],{"class":274},[240,1078,332],{"class":308},[240,1080,210],{"class":312},[240,1082,309],{"class":308},[240,1084,674],{"class":274},[240,1086,1087,1090,1092,1094,1097,1099,1101,1103,1105,1107,1109],{"class":242,"line":467},[240,1088,1089],{"class":291},"    ranks",[240,1091,828],{"class":274},[240,1093,614],{"class":291},[240,1095,1096],{"class":274},"]",[240,1098,288],{"class":278},[240,1100,326],{"class":291},[240,1102,329],{"class":278},[240,1104,332],{"class":308},[240,1106,210],{"class":312},[240,1108,309],{"class":308},[240,1110,427],{"class":274},[240,1112,1113,1117,1119],{"class":242,"line":493},[240,1114,1116],{"class":1115},"sVHd0","    return",[240,1118,320],{"class":291},[240,1120,427],{"class":274},[240,1122,1123],{"class":242,"line":533},[240,1124,530],{"class":274},[240,1126,1127],{"class":242,"line":539},[240,1128,357],{"emptyLinePlaceholder":356},[240,1130,1131,1133,1135,1137,1139],{"class":242,"line":544},[240,1132,932],{"class":757},[240,1134,803],{"class":270},[240,1136,288],{"class":278},[240,1138,512],{"class":278},[240,1140,955],{"class":274},[240,1142,1143],{"class":242,"line":550},[240,1144,960],{"class":274},[240,1146,1147,1149,1151,1153,1155,1157,1159,1161,1163,1166,1169,1171,1173,1175,1177,1179,1181,1184],{"class":242,"line":580},[240,1148,965],{"class":278},[240,1150,571],{"class":270},[240,1152,518],{"class":274},[240,1154,631],{"class":291},[240,1156,524],{"class":278},[240,1158,779],{"class":291},[240,1160,828],{"class":274},[240,1162,831],{"class":784},[240,1164,1165],{"class":274},"],",[240,1167,1168],{"class":291}," Rank ",[240,1170,524],{"class":278},[240,1172,1041],{"class":301},[240,1174,305],{"class":274},[240,1176,825],{"class":291},[240,1178,828],{"class":274},[240,1180,831],{"class":784},[240,1182,1183],{"class":274},"])",[240,1185,1186],{"class":274}," },\n",[240,1188,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223],{"class":242,"line":586},[240,1190,965],{"class":278},[240,1192,571],{"class":270},[240,1194,518],{"class":274},[240,1196,631],{"class":291},[240,1198,524],{"class":278},[240,1200,779],{"class":291},[240,1202,828],{"class":274},[240,1204,831],{"class":784},[240,1206,1165],{"class":274},[240,1208,1168],{"class":291},[240,1210,524],{"class":278},[240,1212,1041],{"class":301},[240,1214,305],{"class":274},[240,1216,825],{"class":291},[240,1218,828],{"class":274},[240,1220,831],{"class":784},[240,1222,1183],{"class":274},[240,1224,1186],{"class":274},[240,1226,1227,1229,1231,1233,1235,1237,1239,1241,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262],{"class":242,"line":608},[240,1228,965],{"class":278},[240,1230,571],{"class":270},[240,1232,518],{"class":274},[240,1234,631],{"class":291},[240,1236,524],{"class":278},[240,1238,779],{"class":291},[240,1240,828],{"class":274},[240,1242,1243],{"class":784},"1",[240,1245,1165],{"class":274},[240,1247,1168],{"class":291},[240,1249,524],{"class":278},[240,1251,1041],{"class":301},[240,1253,305],{"class":274},[240,1255,825],{"class":291},[240,1257,828],{"class":274},[240,1259,1243],{"class":784},[240,1261,1183],{"class":274},[240,1263,1186],{"class":274},[240,1265,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300],{"class":242,"line":641},[240,1267,965],{"class":278},[240,1269,571],{"class":270},[240,1271,518],{"class":274},[240,1273,631],{"class":291},[240,1275,524],{"class":278},[240,1277,779],{"class":291},[240,1279,828],{"class":274},[240,1281,1243],{"class":784},[240,1283,1165],{"class":274},[240,1285,1168],{"class":291},[240,1287,524],{"class":278},[240,1289,1041],{"class":301},[240,1291,305],{"class":274},[240,1293,825],{"class":291},[240,1295,828],{"class":274},[240,1297,1243],{"class":784},[240,1299,1183],{"class":274},[240,1301,1186],{"class":274},[240,1303,1304],{"class":242,"line":234},[240,1305,999],{"class":274},[240,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349],{"class":242,"line":1308},24,[240,1310,932],{"class":757},[240,1312,851],{"class":270},[240,1314,288],{"class":278},[240,1316,512],{"class":278},[240,1318,571],{"class":270},[240,1320,518],{"class":274},[240,1322,631],{"class":291},[240,1324,524],{"class":278},[240,1326,779],{"class":291},[240,1328,828],{"class":274},[240,1330,831],{"class":784},[240,1332,1165],{"class":274},[240,1334,1168],{"class":291},[240,1336,524],{"class":278},[240,1338,1041],{"class":301},[240,1340,305],{"class":274},[240,1342,825],{"class":291},[240,1344,828],{"class":274},[240,1346,831],{"class":784},[240,1348,1183],{"class":274},[240,1350,1351],{"class":274}," };\n",[240,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373],{"class":242,"line":1354},25,[240,1356,932],{"class":757},[240,1358,885],{"class":270},[240,1360,288],{"class":278},[240,1362,512],{"class":278},[240,1364,457],{"class":270},[240,1366,518],{"class":274},[240,1368,521],{"class":291},[240,1370,524],{"class":278},[240,1372,527],{"class":291},[240,1374,999],{"class":274},[240,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1409,1411],{"class":242,"line":1377},26,[240,1379,932],{"class":757},[240,1381,903],{"class":270},[240,1383,288],{"class":278},[240,1385,512],{"class":278},[240,1387,571],{"class":270},[240,1389,518],{"class":274},[240,1391,631],{"class":291},[240,1393,524],{"class":278},[240,1395,885],{"class":291},[240,1397,317],{"class":274},[240,1399,1168],{"class":291},[240,1401,524],{"class":278},[240,1403,1041],{"class":301},[240,1405,305],{"class":274},[240,1407,1408],{"class":291},"sibling",[240,1410,507],{"class":274},[240,1412,1351],{"class":274},[240,1414,1416],{"class":242,"line":1415},27,[240,1417,357],{"emptyLinePlaceholder":356},[240,1419,1421,1424,1426,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453],{"class":242,"line":1420},28,[240,1422,1423],{"class":291},"db",[240,1425,218],{"class":274},[240,1427,1428],{"class":301},"AddRange",[240,1430,305],{"class":274},[240,1432,499],{"class":291},[240,1434,317],{"class":274},[240,1436,779],{"class":291},[240,1438,828],{"class":274},[240,1440,831],{"class":784},[240,1442,1165],{"class":274},[240,1444,779],{"class":291},[240,1446,828],{"class":274},[240,1448,1243],{"class":784},[240,1450,1165],{"class":274},[240,1452,885],{"class":291},[240,1454,674],{"class":274},[240,1456,1458,1460,1462,1464,1466,1469],{"class":242,"line":1457},29,[240,1459,1423],{"class":291},[240,1461,218],{"class":274},[240,1463,1428],{"class":301},[240,1465,305],{"class":274},[240,1467,1468],{"class":291},"cards",[240,1470,674],{"class":274},[240,1472,1474,1476,1478,1480,1482,1485,1487,1489],{"class":242,"line":1473},30,[240,1475,1423],{"class":291},[240,1477,218],{"class":274},[240,1479,1428],{"class":301},[240,1481,305],{"class":274},[240,1483,1484],{"class":291},"next",[240,1486,317],{"class":274},[240,1488,903],{"class":291},[240,1490,674],{"class":274},[240,1492,1494,1496,1499,1501,1504],{"class":242,"line":1493},31,[240,1495,724],{"class":278},[240,1497,1498],{"class":291}," db",[240,1500,218],{"class":274},[240,1502,1503],{"class":301},"SaveChangesAsync",[240,1505,350],{"class":274},[176,1507,1508,1509,201,1512,201,1515,201,1518,201,1521,218],{},"Assertions in the real test: ",[183,1510,1511],{},"cards[0].Rank == \"a\"",[183,1513,1514],{},"cards[1].Rank == \"aa\"",[183,1516,1517],{},"cards[2].Rank == \"a\"",[183,1519,1520],{},"next.Rank == \"aaa\"",[183,1522,1523],{},"siblingCard.Rank == \"a\"",[1525,1526,1527],"tip",{},[176,1528,1529,1530,1533,1534,1536,1537,1539,1540,1544,1545,1548],{},"Scope is declared on the ",[194,1531,1532],{},"sequence",", not chosen by ",[183,1535,708],{}," or a customizer. ",[183,1538,347],{}," keys state by the column's ",[1541,1542,1543],"em",{},"reference identity",", so two columns never share a counter, and ",[183,1546,1547],{},".Under(columns[0])"," always resumes the right one.",[220,1550,1552],{"id":1551},"an-explicit-rank-is-reserved-only-in-its-own-column","An explicit rank is reserved only in its own column",[225,1554,1558],{"className":227,"code":1555,"filename":1556,"highlights":1557,"language":235,"meta":236,"style":236},"await TestBiome\n    .Start(out _)\n    .AddBoard(out _)\n    .AddColumns(out var columns, 2)\n    .Under(columns[0])\n    .AddCards(out var first, _ => { }, c => c.Rank = \"a\")\n    .Under(columns[1])\n    .AddCard(out var other)\n    .BuildAsync();\n\n\u002F\u002F first[0].Rank == \"aa\"   (the \"a\" explicit value is skipped)\n\u002F\u002F other.Rank == \"a\"       (the second column is untouched)\n","BoardTests.cs",[353,394],[183,1559,1560,1566,1580,1594,1614,1630,1678,1694,1712,1720,1724,1729],{"__ignoreMap":236},[240,1561,1562,1564],{"class":242,"line":243},[240,1563,724],{"class":278},[240,1565,727],{"class":291},[240,1567,1568,1570,1572,1574,1576,1578],{"class":242,"line":250},[240,1569,298],{"class":274},[240,1571,734],{"class":301},[240,1573,305],{"class":274},[240,1575,739],{"class":260},[240,1577,504],{"class":291},[240,1579,339],{"class":274},[240,1581,1582,1584,1586,1588,1590,1592],{"class":242,"line":231},[240,1583,298],{"class":274},[240,1585,750],{"class":301},[240,1587,305],{"class":274},[240,1589,739],{"class":260},[240,1591,504],{"class":291},[240,1593,339],{"class":274},[240,1595,1596,1598,1600,1602,1604,1606,1608,1610,1612],{"class":242,"line":232},[240,1597,298],{"class":274},[240,1599,770],{"class":301},[240,1601,305],{"class":274},[240,1603,739],{"class":260},[240,1605,758],{"class":757},[240,1607,779],{"class":270},[240,1609,317],{"class":274},[240,1611,785],{"class":784},[240,1613,339],{"class":274},[240,1615,1616,1618,1620,1622,1624,1626,1628],{"class":242,"line":233},[240,1617,298],{"class":274},[240,1619,820],{"class":301},[240,1621,305],{"class":274},[240,1623,825],{"class":291},[240,1625,828],{"class":274},[240,1627,831],{"class":784},[240,1629,834],{"class":274},[240,1631,1633,1635,1637,1639,1641,1643,1646,1648,1650,1652,1654,1657,1659,1661,1663,1665,1668,1670,1672,1674,1676],{"class":1632,"line":353},[242,257],[240,1634,298],{"class":274},[240,1636,794],{"class":301},[240,1638,305],{"class":274},[240,1640,739],{"class":260},[240,1642,758],{"class":757},[240,1644,1645],{"class":270}," first",[240,1647,317],{"class":274},[240,1649,504],{"class":270},[240,1651,323],{"class":278},[240,1653,518],{"class":274},[240,1655,1656],{"class":274}," },",[240,1658,662],{"class":270},[240,1660,323],{"class":278},[240,1662,662],{"class":291},[240,1664,218],{"class":274},[240,1666,1667],{"class":291},"Rank ",[240,1669,524],{"class":278},[240,1671,332],{"class":308},[240,1673,210],{"class":312},[240,1675,309],{"class":308},[240,1677,339],{"class":274},[240,1679,1680,1682,1684,1686,1688,1690,1692],{"class":242,"line":360},[240,1681,298],{"class":274},[240,1683,820],{"class":301},[240,1685,305],{"class":274},[240,1687,825],{"class":291},[240,1689,828],{"class":274},[240,1691,1243],{"class":784},[240,1693,834],{"class":274},[240,1695,1697,1699,1701,1703,1705,1707,1710],{"class":1696,"line":394},[242,257],[240,1698,298],{"class":274},[240,1700,842],{"class":301},[240,1702,305],{"class":274},[240,1704,739],{"class":260},[240,1706,758],{"class":757},[240,1708,1709],{"class":270}," other",[240,1711,339],{"class":274},[240,1713,1714,1716,1718],{"class":242,"line":403},[240,1715,298],{"class":274},[240,1717,915],{"class":301},[240,1719,350],{"class":274},[240,1721,1722],{"class":242,"line":409},[240,1723,357],{"emptyLinePlaceholder":356},[240,1725,1726],{"class":242,"line":430},[240,1727,1728],{"class":246},"\u002F\u002F first[0].Rank == \"aa\"   (the \"a\" explicit value is skipped)\n",[240,1730,1731],{"class":242,"line":435},[240,1732,1733],{"class":246},"\u002F\u002F other.Rank == \"a\"       (the second column is untouched)\n",[1735,1736,1737],"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 .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 .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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":236,"searchDepth":243,"depth":250,"links":1739},[1740,1741,1743],{"id":222,"depth":250,"text":223},{"id":704,"depth":250,"text":1742},"Ranks resume per column, and .Under revisits",{"id":1551,"depth":250,"text":1552},"Board, columns and cards, with rank ordering from a per-parent string sequence.","md",null,{},{"icon":125},{"title":122,"description":1744},"kqz7YV5NA67Wvc9uYt-SKGd4Pg087cUt3_k7K7_uUw0",[1752,1754],{"title":117,"path":118,"stem":119,"description":1753,"icon":120,"children":-1},"Users, aliases, invitations and organizations - fan-out per parent, fill-only derives and an aggregate.",{"title":127,"path":128,"stem":129,"description":1755,"icon":44,"children":-1},"A plain record seed, an interface default, save hooks, frozen options and parallel safety.",1791831050381]