[{"data":1,"prerenderedAt":2512},["ShallowReactive",2],{"navigation":3,"\u002Fguides\u002Fsequences":170,"\u002Fguides\u002Fsequences-surround":2507},[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":56,"body":172,"description":2500,"extension":2501,"links":2502,"meta":2503,"navigation":2504,"path":57,"seo":2505,"stem":58,"__hash__":2506},"docs\u002F2.guides\u002F06.sequences.md",{"type":173,"value":174,"toc":2489},"minimark",[175,184,192,204,208,713,723,727,790,801,1556,1560,1563,1599,1770,1777,1944,1954,1965,1978,1982,2053,2057,2273,2292,2485],[176,177,179,180],"h2",{"id":178},"why-not-index-1","Why not ",[181,182,183],"code",{},"index + 1",[185,186,187,188,191],"p",{},"Numbering from ",[181,189,190],{},"ctx.Index + 1"," looks reasonable while a test has one Add. Add another batch, though, and the index starts over. In zeeq-app tests, that produced duplicate \"PR #1\" rows and a unique-constraint failure.",[185,193,194,195,199,200,203],{},"A ",[196,197,198],"strong",{},"sequence"," addresses that by keeping its position across Adds. Declare a start value and a ",[181,201,202],{},"next"," function once, then choose where the counter should be shared. Its state lives in each session, so one test's numbering does not affect another.",[176,205,207],{"id":206},"declare-scope-derive","Declare, scope, derive",[209,210,221],"pre",{"className":211,"code":212,"filename":213,"highlights":214,"language":219,"meta":220,"style":220},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark","public static partial class Blueprints\n{\n    public static readonly Sequence\u003Cint> PullRequestNumbers = Sequence\n        .Of(1, n => n + 1)\n        .Per\u003CCodeRepository>(); \u002F\u002F numbering restarts per repository\n\n    public static readonly ChildBlueprint\u003C\n        ZeeqSeed,\n        CodeRepository,\n        PullRequestRecord\n    > PullRequest = Blueprint\n        .ChildOf\u003CZeeqSeed, CodeRepository, PullRequestRecord>(\n            (repo, ctx) =>\n                new()\n                {\n                    Id = ctx.NewId(\"pr\"),\n                    OrganizationId = repo.OrganizationId,\n                    RepositoryId = repo.Id,\n                    State = PullRequestState.Open,\n                    CreatedAtUtc = ctx.Now,\n                }\n        )\n        .Derive(pr => pr.PullRequestNumber, PullRequestNumbers)\n        \u002F\u002F runs after the number\n        .Derive(pr => pr.Title, (pr, _) => $\"Pull request {pr.PullRequestNumber}\")\n        .Derive(pr => pr.Branch, (pr, _) => $\"feature\u002F{pr.PullRequestNumber}\")\n        \u002F\u002F globally unique\n        .Derive(pr => pr.GitHubNodeId, (_, ctx) => ctx.NewId(\"PR\"));\n}\n","Blueprints.cs",[215,216,217,218],3,4,5,23,"csharp","",[181,222,223,246,253,288,326,346,353,365,371,377,383,389,398,415,424,430,462,481,498,516,533,539,545,562,568,615,656,662,707],{"__ignoreMap":220},[224,225,228,232,235,238,242],"span",{"class":226,"line":227},"line",1,[224,229,231],{"class":230},"sbsja","public",[224,233,234],{"class":230}," static",[224,236,237],{"class":230}," partial",[224,239,241],{"class":240},"sG8yY"," class",[224,243,245],{"class":244},"sbgvK"," Blueprints\n",[224,247,249],{"class":226,"line":248},2,[224,250,252],{"class":251},"sP7_E","{\n",[224,254,257,260,262,265,268,271,275,278,281,284],{"class":255,"line":215},[226,256],"highlight",[224,258,259],{"class":230},"    public",[224,261,234],{"class":230},[224,263,264],{"class":230}," readonly",[224,266,267],{"class":244}," Sequence",[224,269,270],{"class":251},"\u003C",[224,272,274],{"class":273},"smGrS","int",[224,276,277],{"class":251},">",[224,279,280],{"class":244}," PullRequestNumbers",[224,282,283],{"class":273}," =",[224,285,287],{"class":286},"su5hD"," Sequence\n",[224,289,291,294,298,301,305,308,311,314,317,320,323],{"class":290,"line":216},[226,256],[224,292,293],{"class":251},"        .",[224,295,297],{"class":296},"sGLFI","Of",[224,299,300],{"class":251},"(",[224,302,304],{"class":303},"srdBf","1",[224,306,307],{"class":251},",",[224,309,310],{"class":244}," n",[224,312,313],{"class":273}," =>",[224,315,316],{"class":286}," n ",[224,318,319],{"class":273},"+",[224,321,322],{"class":303}," 1",[224,324,325],{"class":251},")\n",[224,327,329,331,334,336,339,342],{"class":328,"line":217},[226,256],[224,330,293],{"class":251},[224,332,333],{"class":296},"Per",[224,335,270],{"class":251},[224,337,338],{"class":244},"CodeRepository",[224,340,341],{"class":251},">();",[224,343,345],{"class":344},"sutJx"," \u002F\u002F numbering restarts per repository\n",[224,347,349],{"class":226,"line":348},6,[224,350,352],{"emptyLinePlaceholder":351},true,"\n",[224,354,356,358,360,362],{"class":226,"line":355},7,[224,357,259],{"class":230},[224,359,234],{"class":230},[224,361,264],{"class":230},[224,363,364],{"class":286}," ChildBlueprint\u003C\n",[224,366,368],{"class":226,"line":367},8,[224,369,370],{"class":286},"        ZeeqSeed,\n",[224,372,374],{"class":226,"line":373},9,[224,375,376],{"class":286},"        CodeRepository,\n",[224,378,380],{"class":226,"line":379},10,[224,381,382],{"class":296},"        PullRequestRecord\n",[224,384,386],{"class":226,"line":385},11,[224,387,388],{"class":286},"    > PullRequest = Blueprint\n",[224,390,392,395],{"class":226,"line":391},12,[224,393,394],{"class":286},"        .ChildOf\u003CZeeqSeed, CodeRepository, PullRequestRecord>",[224,396,397],{"class":251},"(\n",[224,399,401,404,406,409,412],{"class":226,"line":400},13,[224,402,403],{"class":286},"            (repo",[224,405,307],{"class":251},[224,407,408],{"class":286}," ctx",[224,410,411],{"class":251},")",[224,413,414],{"class":273}," =>\n",[224,416,418,421],{"class":226,"line":417},14,[224,419,420],{"class":273},"                new",[224,422,423],{"class":251},"()\n",[224,425,427],{"class":226,"line":426},15,[224,428,429],{"class":251},"                {\n",[224,431,433,436,439,441,444,447,449,453,457,459],{"class":226,"line":432},16,[224,434,435],{"class":286},"                    Id ",[224,437,438],{"class":273},"=",[224,440,408],{"class":286},[224,442,443],{"class":251},".",[224,445,446],{"class":296},"NewId",[224,448,300],{"class":251},[224,450,452],{"class":451},"sjJ54","\"",[224,454,456],{"class":455},"s_sjI","pr",[224,458,452],{"class":451},[224,460,461],{"class":251},"),\n",[224,463,465,468,470,473,475,478],{"class":226,"line":464},17,[224,466,467],{"class":286},"                    OrganizationId ",[224,469,438],{"class":273},[224,471,472],{"class":286}," repo",[224,474,443],{"class":251},[224,476,477],{"class":286},"OrganizationId",[224,479,480],{"class":251},",\n",[224,482,484,487,489,491,493,496],{"class":226,"line":483},18,[224,485,486],{"class":286},"                    RepositoryId ",[224,488,438],{"class":273},[224,490,472],{"class":286},[224,492,443],{"class":251},[224,494,495],{"class":286},"Id",[224,497,480],{"class":251},[224,499,501,504,506,509,511,514],{"class":226,"line":500},19,[224,502,503],{"class":286},"                    State ",[224,505,438],{"class":273},[224,507,508],{"class":286}," PullRequestState",[224,510,443],{"class":251},[224,512,513],{"class":286},"Open",[224,515,480],{"class":251},[224,517,519,522,524,526,528,531],{"class":226,"line":518},20,[224,520,521],{"class":286},"                    CreatedAtUtc ",[224,523,438],{"class":273},[224,525,408],{"class":286},[224,527,443],{"class":251},[224,529,530],{"class":286},"Now",[224,532,480],{"class":251},[224,534,536],{"class":226,"line":535},21,[224,537,538],{"class":251},"                }\n",[224,540,542],{"class":226,"line":541},22,[224,543,544],{"class":286},"        )\n",[224,546,548,551,553,556,558,560],{"class":547,"line":218},[226,256],[224,549,550],{"class":286},"        .Derive",[224,552,300],{"class":251},[224,554,555],{"class":286},"pr => pr.PullRequestNumber",[224,557,307],{"class":251},[224,559,280],{"class":286},[224,561,325],{"class":251},[224,563,565],{"class":226,"line":564},24,[224,566,567],{"class":344},"        \u002F\u002F runs after the number\n",[224,569,571,573,575,578,580,583,585,588,590,592,595,598,601,603,605,608,611,613],{"class":226,"line":570},25,[224,572,550],{"class":286},[224,574,300],{"class":251},[224,576,577],{"class":286},"pr => pr.Title",[224,579,307],{"class":251},[224,581,582],{"class":286}," (pr",[224,584,307],{"class":251},[224,586,587],{"class":286}," _",[224,589,411],{"class":251},[224,591,313],{"class":273},[224,593,594],{"class":451}," $\"",[224,596,597],{"class":455},"Pull request ",[224,599,600],{"class":451},"{",[224,602,456],{"class":286},[224,604,443],{"class":451},[224,606,607],{"class":286},"PullRequestNumber",[224,609,610],{"class":451},"}",[224,612,452],{"class":451},[224,614,325],{"class":286},[224,616,618,620,622,625,627,629,631,633,635,637,639,642,644,646,648,650,652,654],{"class":226,"line":617},26,[224,619,550],{"class":286},[224,621,300],{"class":251},[224,623,624],{"class":286},"pr => pr.Branch",[224,626,307],{"class":251},[224,628,582],{"class":286},[224,630,307],{"class":251},[224,632,587],{"class":286},[224,634,411],{"class":251},[224,636,313],{"class":273},[224,638,594],{"class":451},[224,640,641],{"class":455},"feature\u002F",[224,643,600],{"class":451},[224,645,456],{"class":286},[224,647,443],{"class":451},[224,649,607],{"class":286},[224,651,610],{"class":451},[224,653,452],{"class":451},[224,655,325],{"class":286},[224,657,659],{"class":226,"line":658},27,[224,660,661],{"class":344},"        \u002F\u002F globally unique\n",[224,663,665,667,669,672,674,677,679,681,683,685,687,689,691,693,695,698,700,702,704],{"class":226,"line":664},28,[224,666,550],{"class":286},[224,668,300],{"class":251},[224,670,671],{"class":286},"pr => pr.GitHubNodeId",[224,673,307],{"class":251},[224,675,676],{"class":286}," (_",[224,678,307],{"class":251},[224,680,408],{"class":286},[224,682,411],{"class":251},[224,684,313],{"class":273},[224,686,408],{"class":286},[224,688,443],{"class":251},[224,690,446],{"class":296},[224,692,300],{"class":251},[224,694,452],{"class":451},[224,696,697],{"class":455},"PR",[224,699,452],{"class":451},[224,701,411],{"class":251},[224,703,411],{"class":286},[224,705,706],{"class":251},";\n",[224,708,710],{"class":226,"line":709},29,[224,711,712],{"class":251},"}\n",[185,714,715,716,719,720,443],{},"Assign it with the ",[196,717,718],{},"fill-only"," ",[181,721,722],{},"Derive(property, sequence)",[176,724,726],{"id":725},"scope-one-counter-per","Scope: one counter per…",[728,729,730,746],"table",{},[731,732,733],"thead",{},[734,735,736,740,743],"tr",{},[737,738,739],"th",{},"Scope",[737,741,742],{},"One counter per",[737,744,745],{},"Example",[747,748,749,764,777],"tbody",{},[734,750,751,758,761],{},[752,753,754,757],"td",{},[181,755,756],{},".PerSession()"," (default)",[752,759,760],{},"test",[752,762,763],{},"anything unique across the whole test",[734,765,766,771,774],{},[752,767,768],{},[181,769,770],{},".PerParent()",[752,772,773],{},"immediate parent",[752,775,776],{},"card rank within a column",[734,778,779,784,787],{},[752,780,781],{},[181,782,783],{},".Per\u003CTAncestor>()",[752,785,786],{},"nearest ancestor of that type",[752,788,789],{},"PR number within a repository",[185,791,792,793,796,797,800],{},"State is keyed by ",[196,794,795],{},"(sequence instance, scope entity identity)",", not by blueprint and not by anchor position. So blueprint variants and ",[181,798,799],{},".Under(repo)"," resume the same progression.",[802,803,804,1021],"code-group",{},[209,805,809],{"className":211,"code":806,"filename":807,"highlights":808,"language":219,"meta":220,"style":220},"await TestBiome\n    .Start(out _)\n    .AddCodeRepositories(out var repos, 2)\n    .AddPullRequests(out var first, 2) \u002F\u002F 1, 2 | 1, 2\n    .Under(repos[0])\n    .AddPullRequest(out var third) \u002F\u002F 3: resumes repos[0]\n    .Under(repos[0])\n    .AddPullRequests(\n        out var mixed,\n        _ => { }, \u002F\u002F 5 (4 is taken below)\n        pr => pr.PullRequestNumber = 4\n    ) \u002F\u002F explicit: kept, reserved\n    .BuildAsync();\n","With Biome",[348,379,385,391],[181,810,811,819,836,860,885,906,928,944,952,964,981,1002,1011],{"__ignoreMap":220},[224,812,813,816],{"class":226,"line":227},[224,814,815],{"class":273},"await",[224,817,818],{"class":286}," TestBiome\n",[224,820,821,824,827,829,832,834],{"class":226,"line":248},[224,822,823],{"class":251},"    .",[224,825,826],{"class":296},"Start",[224,828,300],{"class":251},[224,830,831],{"class":230},"out",[224,833,587],{"class":286},[224,835,325],{"class":251},[224,837,838,840,843,845,847,850,853,855,858],{"class":226,"line":215},[224,839,823],{"class":251},[224,841,842],{"class":296},"AddCodeRepositories",[224,844,300],{"class":251},[224,846,831],{"class":230},[224,848,849],{"class":240}," var",[224,851,852],{"class":244}," repos",[224,854,307],{"class":251},[224,856,857],{"class":303}," 2",[224,859,325],{"class":251},[224,861,862,864,867,869,871,873,876,878,880,882],{"class":226,"line":216},[224,863,823],{"class":251},[224,865,866],{"class":296},"AddPullRequests",[224,868,300],{"class":251},[224,870,831],{"class":230},[224,872,849],{"class":240},[224,874,875],{"class":244}," first",[224,877,307],{"class":251},[224,879,857],{"class":303},[224,881,411],{"class":251},[224,883,884],{"class":344}," \u002F\u002F 1, 2 | 1, 2\n",[224,886,887,889,892,894,897,900,903],{"class":226,"line":217},[224,888,823],{"class":251},[224,890,891],{"class":296},"Under",[224,893,300],{"class":251},[224,895,896],{"class":286},"repos",[224,898,899],{"class":251},"[",[224,901,902],{"class":303},"0",[224,904,905],{"class":251},"])\n",[224,907,909,911,914,916,918,920,923,925],{"class":908,"line":348},[226,256],[224,910,823],{"class":251},[224,912,913],{"class":296},"AddPullRequest",[224,915,300],{"class":251},[224,917,831],{"class":230},[224,919,849],{"class":240},[224,921,922],{"class":244}," third",[224,924,411],{"class":251},[224,926,927],{"class":344}," \u002F\u002F 3: resumes repos[0]\n",[224,929,930,932,934,936,938,940,942],{"class":226,"line":355},[224,931,823],{"class":251},[224,933,891],{"class":296},[224,935,300],{"class":251},[224,937,896],{"class":286},[224,939,899],{"class":251},[224,941,902],{"class":303},[224,943,905],{"class":251},[224,945,946,948,950],{"class":226,"line":367},[224,947,823],{"class":251},[224,949,866],{"class":296},[224,951,397],{"class":251},[224,953,954,957,959,962],{"class":226,"line":373},[224,955,956],{"class":230},"        out",[224,958,849],{"class":240},[224,960,961],{"class":244}," mixed",[224,963,480],{"class":251},[224,965,967,970,972,975,978],{"class":966,"line":379},[226,256],[224,968,969],{"class":244},"        _",[224,971,313],{"class":273},[224,973,974],{"class":251}," {",[224,976,977],{"class":251}," },",[224,979,980],{"class":344}," \u002F\u002F 5 (4 is taken below)\n",[224,982,984,987,989,992,994,997,999],{"class":983,"line":385},[226,256],[224,985,986],{"class":244},"        pr",[224,988,313],{"class":273},[224,990,991],{"class":286}," pr",[224,993,443],{"class":251},[224,995,996],{"class":286},"PullRequestNumber ",[224,998,438],{"class":273},[224,1000,1001],{"class":303}," 4\n",[224,1003,1005,1008],{"class":1004,"line":391},[226,256],[224,1006,1007],{"class":251},"    )",[224,1009,1010],{"class":344}," \u002F\u002F explicit: kept, reserved\n",[224,1012,1013,1015,1018],{"class":226,"line":400},[224,1014,823],{"class":251},[224,1016,1017],{"class":296},"BuildAsync",[224,1019,1020],{"class":251},"();\n",[1022,1023,1026],"code-collapse",{"label":1024,"name":1025},"Without Biome","setup",[209,1027,1029],{"className":211,"code":1028,"language":219,"meta":220,"style":220},"\u002F\u002F Hand numbering: the counter has to be threaded through every helper call,\n\u002F\u002F and an explicit number has to be avoided by hand.\nvar repos = new[] { NewRepository(), NewRepository() };\nvar next = new Dictionary\u003CCodeRepository, int> { [repos[0]] = 1, [repos[1]] = 1 };\n\nPullRequestRecord NewPr(CodeRepository repo, int? number = null)\n{\n    var n = number ?? next[repo]++;\n    return new PullRequestRecord\n    {\n        Id = $\"pr_{Guid.CreateVersion7():N}\",\n        OrganizationId = repo.OrganizationId,\n        RepositoryId = repo.Id,\n        PullRequestNumber = n,\n        Title = $\"Pull request {n}\",\n        Branch = $\"feature\u002F{n}\",\n        State = PullRequestState.Open,\n    };\n}\n\nvar first = new[]\n{\n    NewPr(repos[0]),\n    NewPr(repos[0]),\n    NewPr(repos[1]),\n    NewPr(repos[1]),\n}; \u002F\u002F 1, 2 | 1, 2\nvar third = NewPr(repos[0]); \u002F\u002F 3\nvar explicit4 = NewPr(repos[0], number: 4);\nnext[repos[0]] = 5; \u002F\u002F skip 4 by hand\nvar fifth = NewPr(repos[0]); \u002F\u002F 5\n",[181,1030,1031,1036,1041,1072,1133,1137,1169,1173,1203,1214,1219,1255,1270,1285,1296,1318,1339,1354,1359,1363,1367,1380,1384,1400,1414,1428,1442,1449,1473,1505,1531],{"__ignoreMap":220},[224,1032,1033],{"class":226,"line":227},[224,1034,1035],{"class":344},"\u002F\u002F Hand numbering: the counter has to be threaded through every helper call,\n",[224,1037,1038],{"class":226,"line":248},[224,1039,1040],{"class":344},"\u002F\u002F and an explicit number has to be avoided by hand.\n",[224,1042,1043,1046,1048,1050,1053,1056,1058,1061,1064,1066,1069],{"class":226,"line":215},[224,1044,1045],{"class":240},"var",[224,1047,852],{"class":244},[224,1049,283],{"class":273},[224,1051,1052],{"class":273}," new",[224,1054,1055],{"class":251},"[]",[224,1057,974],{"class":251},[224,1059,1060],{"class":296}," NewRepository",[224,1062,1063],{"class":251},"(),",[224,1065,1060],{"class":296},[224,1067,1068],{"class":251},"()",[224,1070,1071],{"class":251}," };\n",[224,1073,1074,1076,1079,1081,1083,1086,1088,1090,1092,1095,1097,1099,1102,1104,1106,1108,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131],{"class":226,"line":216},[224,1075,1045],{"class":240},[224,1077,1078],{"class":244}," next",[224,1080,283],{"class":273},[224,1082,1052],{"class":273},[224,1084,1085],{"class":244}," Dictionary",[224,1087,270],{"class":251},[224,1089,338],{"class":244},[224,1091,307],{"class":251},[224,1093,1094],{"class":273}," int",[224,1096,277],{"class":251},[224,1098,974],{"class":251},[224,1100,1101],{"class":251}," [",[224,1103,896],{"class":286},[224,1105,899],{"class":251},[224,1107,902],{"class":303},[224,1109,1110],{"class":251},"]]",[224,1112,283],{"class":273},[224,1114,322],{"class":303},[224,1116,307],{"class":251},[224,1118,1101],{"class":251},[224,1120,896],{"class":286},[224,1122,899],{"class":251},[224,1124,304],{"class":303},[224,1126,1110],{"class":251},[224,1128,283],{"class":273},[224,1130,322],{"class":303},[224,1132,1071],{"class":251},[224,1134,1135],{"class":226,"line":217},[224,1136,352],{"emptyLinePlaceholder":351},[224,1138,1139,1142,1145,1147,1149,1151,1153,1155,1158,1161,1163,1167],{"class":226,"line":348},[224,1140,1141],{"class":244},"PullRequestRecord",[224,1143,1144],{"class":296}," NewPr",[224,1146,300],{"class":251},[224,1148,338],{"class":244},[224,1150,472],{"class":244},[224,1152,307],{"class":251},[224,1154,1094],{"class":273},[224,1156,1157],{"class":251},"?",[224,1159,1160],{"class":244}," number",[224,1162,283],{"class":273},[224,1164,1166],{"class":1165},"s39Yj"," null",[224,1168,325],{"class":251},[224,1170,1171],{"class":226,"line":355},[224,1172,252],{"class":251},[224,1174,1175,1178,1180,1182,1185,1188,1190,1192,1195,1198,1201],{"class":226,"line":367},[224,1176,1177],{"class":240},"    var",[224,1179,310],{"class":244},[224,1181,283],{"class":273},[224,1183,1184],{"class":286}," number ",[224,1186,1187],{"class":273},"??",[224,1189,1078],{"class":286},[224,1191,899],{"class":251},[224,1193,1194],{"class":286},"repo",[224,1196,1197],{"class":251},"]",[224,1199,1200],{"class":273},"++",[224,1202,706],{"class":251},[224,1204,1205,1209,1211],{"class":226,"line":373},[224,1206,1208],{"class":1207},"sVHd0","    return",[224,1210,1052],{"class":273},[224,1212,1213],{"class":244}," PullRequestRecord\n",[224,1215,1216],{"class":226,"line":379},[224,1217,1218],{"class":251},"    {\n",[224,1220,1221,1224,1226,1228,1231,1233,1236,1238,1241,1243,1246,1249,1251,1253],{"class":226,"line":385},[224,1222,1223],{"class":286},"        Id ",[224,1225,438],{"class":273},[224,1227,594],{"class":451},[224,1229,1230],{"class":455},"pr_",[224,1232,600],{"class":451},[224,1234,1235],{"class":286},"Guid",[224,1237,443],{"class":451},[224,1239,1240],{"class":296},"CreateVersion7",[224,1242,1068],{"class":451},[224,1244,1245],{"class":273},":",[224,1247,1248],{"class":286},"N",[224,1250,610],{"class":451},[224,1252,452],{"class":451},[224,1254,480],{"class":251},[224,1256,1257,1260,1262,1264,1266,1268],{"class":226,"line":391},[224,1258,1259],{"class":286},"        OrganizationId ",[224,1261,438],{"class":273},[224,1263,472],{"class":286},[224,1265,443],{"class":251},[224,1267,477],{"class":286},[224,1269,480],{"class":251},[224,1271,1272,1275,1277,1279,1281,1283],{"class":226,"line":400},[224,1273,1274],{"class":286},"        RepositoryId ",[224,1276,438],{"class":273},[224,1278,472],{"class":286},[224,1280,443],{"class":251},[224,1282,495],{"class":286},[224,1284,480],{"class":251},[224,1286,1287,1290,1292,1294],{"class":226,"line":417},[224,1288,1289],{"class":286},"        PullRequestNumber ",[224,1291,438],{"class":273},[224,1293,310],{"class":286},[224,1295,480],{"class":251},[224,1297,1298,1301,1303,1305,1307,1309,1312,1314,1316],{"class":226,"line":426},[224,1299,1300],{"class":286},"        Title ",[224,1302,438],{"class":273},[224,1304,594],{"class":451},[224,1306,597],{"class":455},[224,1308,600],{"class":451},[224,1310,1311],{"class":286},"n",[224,1313,610],{"class":451},[224,1315,452],{"class":451},[224,1317,480],{"class":251},[224,1319,1320,1323,1325,1327,1329,1331,1333,1335,1337],{"class":226,"line":432},[224,1321,1322],{"class":286},"        Branch ",[224,1324,438],{"class":273},[224,1326,594],{"class":451},[224,1328,641],{"class":455},[224,1330,600],{"class":451},[224,1332,1311],{"class":286},[224,1334,610],{"class":451},[224,1336,452],{"class":451},[224,1338,480],{"class":251},[224,1340,1341,1344,1346,1348,1350,1352],{"class":226,"line":464},[224,1342,1343],{"class":286},"        State ",[224,1345,438],{"class":273},[224,1347,508],{"class":286},[224,1349,443],{"class":251},[224,1351,513],{"class":286},[224,1353,480],{"class":251},[224,1355,1356],{"class":226,"line":483},[224,1357,1358],{"class":251},"    };\n",[224,1360,1361],{"class":226,"line":500},[224,1362,712],{"class":251},[224,1364,1365],{"class":226,"line":518},[224,1366,352],{"emptyLinePlaceholder":351},[224,1368,1369,1371,1373,1375,1377],{"class":226,"line":535},[224,1370,1045],{"class":240},[224,1372,875],{"class":244},[224,1374,283],{"class":273},[224,1376,1052],{"class":273},[224,1378,1379],{"class":251},"[]\n",[224,1381,1382],{"class":226,"line":541},[224,1383,252],{"class":251},[224,1385,1386,1389,1391,1393,1395,1397],{"class":226,"line":218},[224,1387,1388],{"class":296},"    NewPr",[224,1390,300],{"class":251},[224,1392,896],{"class":286},[224,1394,899],{"class":251},[224,1396,902],{"class":303},[224,1398,1399],{"class":251},"]),\n",[224,1401,1402,1404,1406,1408,1410,1412],{"class":226,"line":564},[224,1403,1388],{"class":296},[224,1405,300],{"class":251},[224,1407,896],{"class":286},[224,1409,899],{"class":251},[224,1411,902],{"class":303},[224,1413,1399],{"class":251},[224,1415,1416,1418,1420,1422,1424,1426],{"class":226,"line":570},[224,1417,1388],{"class":296},[224,1419,300],{"class":251},[224,1421,896],{"class":286},[224,1423,899],{"class":251},[224,1425,304],{"class":303},[224,1427,1399],{"class":251},[224,1429,1430,1432,1434,1436,1438,1440],{"class":226,"line":617},[224,1431,1388],{"class":296},[224,1433,300],{"class":251},[224,1435,896],{"class":286},[224,1437,899],{"class":251},[224,1439,304],{"class":303},[224,1441,1399],{"class":251},[224,1443,1444,1447],{"class":226,"line":658},[224,1445,1446],{"class":251},"};",[224,1448,884],{"class":344},[224,1450,1451,1453,1455,1457,1459,1461,1463,1465,1467,1470],{"class":226,"line":664},[224,1452,1045],{"class":240},[224,1454,922],{"class":244},[224,1456,283],{"class":273},[224,1458,1144],{"class":296},[224,1460,300],{"class":251},[224,1462,896],{"class":286},[224,1464,899],{"class":251},[224,1466,902],{"class":303},[224,1468,1469],{"class":251},"]);",[224,1471,1472],{"class":344}," \u002F\u002F 3\n",[224,1474,1475,1477,1480,1482,1484,1486,1488,1490,1492,1495,1497,1499,1502],{"class":226,"line":709},[224,1476,1045],{"class":240},[224,1478,1479],{"class":244}," explicit4",[224,1481,283],{"class":273},[224,1483,1144],{"class":296},[224,1485,300],{"class":251},[224,1487,896],{"class":286},[224,1489,899],{"class":251},[224,1491,902],{"class":303},[224,1493,1494],{"class":251},"],",[224,1496,1160],{"class":244},[224,1498,1245],{"class":251},[224,1500,1501],{"class":303}," 4",[224,1503,1504],{"class":251},");\n",[224,1506,1508,1510,1512,1514,1516,1518,1520,1522,1525,1528],{"class":226,"line":1507},30,[224,1509,202],{"class":286},[224,1511,899],{"class":251},[224,1513,896],{"class":286},[224,1515,899],{"class":251},[224,1517,902],{"class":303},[224,1519,1110],{"class":251},[224,1521,283],{"class":273},[224,1523,1524],{"class":303}," 5",[224,1526,1527],{"class":251},";",[224,1529,1530],{"class":344}," \u002F\u002F skip 4 by hand\n",[224,1532,1534,1536,1539,1541,1543,1545,1547,1549,1551,1553],{"class":226,"line":1533},31,[224,1535,1045],{"class":240},[224,1537,1538],{"class":244}," fifth",[224,1540,283],{"class":273},[224,1542,1144],{"class":296},[224,1544,300],{"class":251},[224,1546,896],{"class":286},[224,1548,899],{"class":251},[224,1550,902],{"class":303},[224,1552,1469],{"class":251},[224,1554,1555],{"class":344}," \u002F\u002F 5\n",[176,1557,1559],{"id":1558},"explicit-values-win","Explicit values win",[185,1561,1562],{},"Sometimes the number itself matters to the test. The sequence needs to leave that value available while assigning the surrounding defaults. Biome reserves explicit values before filling the unset ones:",[1564,1565,1566,1577],"ul",{},[1567,1568,1569,1572,1573,1576],"li",{},[196,1570,1571],{},"Explicit values never move the sequence."," And the sequence ",[196,1574,1575],{},"skips"," any value already set explicitly in that scope, in this step or an earlier one.",[1567,1578,1579,1580,1583,1584,1587,1588,1591,1592,1594,1595,1598],{},"Within one step, Biome first ",[196,1581,1582],{},"reserves every explicit value",", then fills the rest. The test below shows ",[181,1585,1586],{},"[2, 1, 3, 4]",": the first unset entry takes ",[181,1589,1590],{},"2"," because ",[181,1593,304],{}," and ",[181,1596,1597],{},"3"," are explicit.",[209,1600,1604],{"className":211,"code":1601,"filename":1602,"highlights":1603,"language":219,"meta":220,"style":220},"await TestBiome\n    .Start(out _)\n    .AddCodeRepository(out var repo)\n    .AddPullRequests(\n        out var prs,\n        _ => { },\n        pr => pr.Number = 1,\n        pr => pr.Number = 3,\n        _ => { }\n    )\n    .Under(repo)\n    .AddPullRequest(out var next)\n    .BuildAsync();\n\u002F\u002F prs numbers: 2, 1, 3, 4; next.Number: 5\n","CodeReviewTests.cs",[355,367],[181,1605,1606,1612,1626,1643,1651,1662,1673,1693,1713,1724,1729,1741,1757,1765],{"__ignoreMap":220},[224,1607,1608,1610],{"class":226,"line":227},[224,1609,815],{"class":273},[224,1611,818],{"class":286},[224,1613,1614,1616,1618,1620,1622,1624],{"class":226,"line":248},[224,1615,823],{"class":251},[224,1617,826],{"class":296},[224,1619,300],{"class":251},[224,1621,831],{"class":230},[224,1623,587],{"class":286},[224,1625,325],{"class":251},[224,1627,1628,1630,1633,1635,1637,1639,1641],{"class":226,"line":215},[224,1629,823],{"class":251},[224,1631,1632],{"class":296},"AddCodeRepository",[224,1634,300],{"class":251},[224,1636,831],{"class":230},[224,1638,849],{"class":240},[224,1640,472],{"class":244},[224,1642,325],{"class":251},[224,1644,1645,1647,1649],{"class":226,"line":216},[224,1646,823],{"class":251},[224,1648,866],{"class":296},[224,1650,397],{"class":251},[224,1652,1653,1655,1657,1660],{"class":226,"line":217},[224,1654,956],{"class":230},[224,1656,849],{"class":240},[224,1658,1659],{"class":244}," prs",[224,1661,480],{"class":251},[224,1663,1664,1666,1668,1670],{"class":226,"line":348},[224,1665,969],{"class":244},[224,1667,313],{"class":273},[224,1669,974],{"class":251},[224,1671,1672],{"class":251}," },\n",[224,1674,1676,1678,1680,1682,1684,1687,1689,1691],{"class":1675,"line":355},[226,256],[224,1677,986],{"class":244},[224,1679,313],{"class":273},[224,1681,991],{"class":286},[224,1683,443],{"class":251},[224,1685,1686],{"class":286},"Number ",[224,1688,438],{"class":273},[224,1690,322],{"class":303},[224,1692,480],{"class":251},[224,1694,1696,1698,1700,1702,1704,1706,1708,1711],{"class":1695,"line":367},[226,256],[224,1697,986],{"class":244},[224,1699,313],{"class":273},[224,1701,991],{"class":286},[224,1703,443],{"class":251},[224,1705,1686],{"class":286},[224,1707,438],{"class":273},[224,1709,1710],{"class":303}," 3",[224,1712,480],{"class":251},[224,1714,1715,1717,1719,1721],{"class":226,"line":373},[224,1716,969],{"class":244},[224,1718,313],{"class":273},[224,1720,974],{"class":251},[224,1722,1723],{"class":251}," }\n",[224,1725,1726],{"class":226,"line":379},[224,1727,1728],{"class":251},"    )\n",[224,1730,1731,1733,1735,1737,1739],{"class":226,"line":385},[224,1732,823],{"class":251},[224,1734,891],{"class":296},[224,1736,300],{"class":251},[224,1738,1194],{"class":286},[224,1740,325],{"class":251},[224,1742,1743,1745,1747,1749,1751,1753,1755],{"class":226,"line":391},[224,1744,823],{"class":251},[224,1746,913],{"class":296},[224,1748,300],{"class":251},[224,1750,831],{"class":230},[224,1752,849],{"class":240},[224,1754,1078],{"class":244},[224,1756,325],{"class":251},[224,1758,1759,1761,1763],{"class":226,"line":400},[224,1760,823],{"class":251},[224,1762,1017],{"class":296},[224,1764,1020],{"class":251},[224,1766,1767],{"class":226,"line":417},[224,1768,1769],{"class":344},"\u002F\u002F prs numbers: 2, 1, 3, 4; next.Number: 5\n",[185,1771,1772,1773,1776],{},"An explicit ",[196,1774,1775],{},"high"," value doesn't advance the counter either:",[209,1778,1781],{"className":211,"code":1779,"filename":1602,"highlights":1780,"language":219,"meta":220,"style":220},"await TestBiome\n    .Start(out _)\n    .AddCodeRepository(out var repo)\n    .AddPullRequest(\n        out var explicitPr,\n        pr =>\n        {\n            pr.Number = 99;\n            pr.Title = \"Regression\";\n        }\n    )\n    .Under(repo)\n    \u002F\u002F Number == 1; the explicit 99 did not move the sequence\n    .AddPullRequest(out var generated)\n    .BuildAsync();\n",[348,355,367,373,379,385,417],[181,1782,1783,1789,1803,1819,1827,1838,1845,1851,1868,1890,1896,1901,1913,1918,1936],{"__ignoreMap":220},[224,1784,1785,1787],{"class":226,"line":227},[224,1786,815],{"class":273},[224,1788,818],{"class":286},[224,1790,1791,1793,1795,1797,1799,1801],{"class":226,"line":248},[224,1792,823],{"class":251},[224,1794,826],{"class":296},[224,1796,300],{"class":251},[224,1798,831],{"class":230},[224,1800,587],{"class":286},[224,1802,325],{"class":251},[224,1804,1805,1807,1809,1811,1813,1815,1817],{"class":226,"line":215},[224,1806,823],{"class":251},[224,1808,1632],{"class":296},[224,1810,300],{"class":251},[224,1812,831],{"class":230},[224,1814,849],{"class":240},[224,1816,472],{"class":244},[224,1818,325],{"class":251},[224,1820,1821,1823,1825],{"class":226,"line":216},[224,1822,823],{"class":251},[224,1824,913],{"class":296},[224,1826,397],{"class":251},[224,1828,1829,1831,1833,1836],{"class":226,"line":217},[224,1830,956],{"class":230},[224,1832,849],{"class":240},[224,1834,1835],{"class":244}," explicitPr",[224,1837,480],{"class":251},[224,1839,1841,1843],{"class":1840,"line":348},[226,256],[224,1842,986],{"class":244},[224,1844,414],{"class":273},[224,1846,1848],{"class":1847,"line":355},[226,256],[224,1849,1850],{"class":251},"        {\n",[224,1852,1854,1857,1859,1861,1863,1866],{"class":1853,"line":367},[226,256],[224,1855,1856],{"class":286},"            pr",[224,1858,443],{"class":251},[224,1860,1686],{"class":286},[224,1862,438],{"class":273},[224,1864,1865],{"class":303}," 99",[224,1867,706],{"class":251},[224,1869,1871,1873,1875,1878,1880,1883,1886,1888],{"class":1870,"line":373},[226,256],[224,1872,1856],{"class":286},[224,1874,443],{"class":251},[224,1876,1877],{"class":286},"Title ",[224,1879,438],{"class":273},[224,1881,1882],{"class":451}," \"",[224,1884,1885],{"class":455},"Regression",[224,1887,452],{"class":451},[224,1889,706],{"class":251},[224,1891,1893],{"class":1892,"line":379},[226,256],[224,1894,1895],{"class":251},"        }\n",[224,1897,1899],{"class":1898,"line":385},[226,256],[224,1900,1728],{"class":251},[224,1902,1903,1905,1907,1909,1911],{"class":226,"line":391},[224,1904,823],{"class":251},[224,1906,891],{"class":296},[224,1908,300],{"class":251},[224,1910,1194],{"class":286},[224,1912,325],{"class":251},[224,1914,1915],{"class":226,"line":400},[224,1916,1917],{"class":344},"    \u002F\u002F Number == 1; the explicit 99 did not move the sequence\n",[224,1919,1921,1923,1925,1927,1929,1931,1934],{"class":1920,"line":417},[226,256],[224,1922,823],{"class":251},[224,1924,913],{"class":296},[224,1926,300],{"class":251},[224,1928,831],{"class":230},[224,1930,849],{"class":240},[224,1932,1933],{"class":244}," generated",[224,1935,325],{"class":251},[224,1937,1938,1940,1942],{"class":226,"line":426},[224,1939,823],{"class":251},[224,1941,1017],{"class":296},[224,1943,1020],{"class":251},[1945,1946,1947],"warning",{},[185,1948,1949,1950,1953],{},"Reservation applies to values Biome already knows about. If a later step supplies a number used by an earlier one, the earlier assignment stays as it was. Set a required number in the ",[196,1951,1952],{},"same step"," as the defaults, or before them, to avoid that collision.",[176,1955,1957,1958,1961,1962],{"id":1956},"prefer-deriveprop-sequence-over-ctxnext","Prefer ",[181,1959,1960],{},"Derive(prop, sequence)"," over ",[181,1963,1964],{},"ctx.Next",[1945,1966,1967],{},[185,1968,1969,1970,1973,1974,1977],{},"The factory runs before customizers, so ",[181,1971,1972],{},"ctx.Next(sequence)"," cannot see values the test will supply. That can create a collision. Prefer ",[181,1975,1976],{},".Derive(property, sequence)",", which reserves explicit values before assigning defaults.",[176,1979,1981],{"id":1980},"rules-of-thumb","Rules of thumb",[1564,1983,1984,1994,2007,2017,2042,2048],{},[1567,1985,1986,1989,1990,1993],{},[196,1987,1988],{},"Declare the sequence above the blueprints that use it."," In a static class, fields initialize top to bottom. Keep a base blueprint and its variants in the same file; across ",[181,1991,1992],{},"partial"," files the initialization order is unspecified.",[1567,1995,1996,1999,2000,719,2003,2006],{},[181,1997,1998],{},"Derive","s run in declaration order, so derive ",[181,2001,2002],{},"Title",[196,2004,2005],{},"after"," the number it depends on.",[1567,2008,2009,2010,719,2013,2016],{},"Variants made with ",[181,2011,2012],{},".With",[196,2014,2015],{},"share"," their base blueprint's sequence.",[1567,2018,2019,2022,2023,2026,2027,2030,2031,2034,2035,2038,2039,443],{},[196,2020,2021],{},"Globally unique"," values (node IDs, slugs, emails) use a ",[181,2024,2025],{},"PerSession"," sequence or ",[181,2028,2029],{},"ctx.NewId",", never ",[181,2032,2033],{},"PerParent"," \u002F ",[181,2036,2037],{},"Per\u003CT>",": two parents would both produce ",[181,2040,2041],{},"PR_1",[1567,2043,2044,2045,2047],{},"The ",[181,2046,202],{}," function may be any type. Ranks work too, as in the Board tests below.",[1567,2049,194,2050,2052],{},[181,2051,202],{}," function that cycles through reserved values throws, rather than hanging.",[176,2054,2056],{"id":2055},"non-numeric-sequences-ranks","Non-numeric sequences: ranks",[209,2058,2062],{"className":211,"code":2059,"filename":2060,"highlights":2061,"language":219,"meta":220,"style":220},"\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 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",[215,216,217,391],[181,2063,2064,2069,2074,2100,2136,2145,2149,2182,2187,2209,2241,2245],{"__ignoreMap":220},[224,2065,2066],{"class":226,"line":227},[224,2067,2068],{"class":344},"\u002F\u002F PerParent resumes for the same column reference;\n",[224,2070,2071],{"class":226,"line":248},[224,2072,2073],{"class":344},"\u002F\u002F it restarts for a different column.\n",[224,2075,2077,2080,2082,2084,2086,2088,2091,2093,2096,2098],{"class":2076,"line":215},[226,256],[224,2078,2079],{"class":230},"internal",[224,2081,234],{"class":230},[224,2083,264],{"class":230},[224,2085,267],{"class":244},[224,2087,270],{"class":251},[224,2089,2090],{"class":273},"string",[224,2092,277],{"class":251},[224,2094,2095],{"class":244}," Ranks",[224,2097,283],{"class":273},[224,2099,287],{"class":286},[224,2101,2103,2105,2107,2109,2111,2114,2116,2118,2121,2123,2126,2128,2130,2132,2134],{"class":2102,"line":216},[226,256],[224,2104,823],{"class":251},[224,2106,297],{"class":296},[224,2108,300],{"class":251},[224,2110,452],{"class":451},[224,2112,2113],{"class":455},"a",[224,2115,452],{"class":451},[224,2117,307],{"class":251},[224,2119,2120],{"class":244}," rank",[224,2122,313],{"class":273},[224,2124,2125],{"class":286}," rank ",[224,2127,319],{"class":273},[224,2129,1882],{"class":451},[224,2131,2113],{"class":455},[224,2133,452],{"class":451},[224,2135,325],{"class":251},[224,2137,2139,2141,2143],{"class":2138,"line":217},[226,256],[224,2140,823],{"class":251},[224,2142,2033],{"class":296},[224,2144,1020],{"class":251},[224,2146,2147],{"class":226,"line":348},[224,2148,352],{"emptyLinePlaceholder":351},[224,2150,2151,2153,2155,2157,2160,2162,2165,2167,2170,2172,2175,2177,2179],{"class":226,"line":355},[224,2152,2079],{"class":230},[224,2154,234],{"class":230},[224,2156,264],{"class":230},[224,2158,2159],{"class":244}," ChildBlueprint",[224,2161,270],{"class":251},[224,2163,2164],{"class":244},"BoardSeed",[224,2166,307],{"class":251},[224,2168,2169],{"class":244}," Column",[224,2171,307],{"class":251},[224,2173,2174],{"class":244}," Card",[224,2176,277],{"class":251},[224,2178,2174],{"class":244},[224,2180,2181],{"class":273}," =\n",[224,2183,2184],{"class":226,"line":367},[224,2185,2186],{"class":286},"    Blueprint\n",[224,2188,2189,2191,2194,2196,2198,2200,2202,2204,2206],{"class":226,"line":373},[224,2190,293],{"class":251},[224,2192,2193],{"class":296},"ChildOf",[224,2195,270],{"class":251},[224,2197,2164],{"class":244},[224,2199,307],{"class":251},[224,2201,2169],{"class":244},[224,2203,307],{"class":251},[224,2205,2174],{"class":244},[224,2207,2208],{"class":251},">(\n",[224,2210,2211,2214,2217,2219,2221,2223,2225,2227,2229,2231,2234,2236,2239],{"class":226,"line":379},[224,2212,2213],{"class":251},"            (",[224,2215,2216],{"class":244},"column",[224,2218,307],{"class":251},[224,2220,587],{"class":244},[224,2222,411],{"class":251},[224,2224,313],{"class":273},[224,2226,1052],{"class":273},[224,2228,1068],{"class":251},[224,2230,974],{"class":251},[224,2232,2233],{"class":286}," Column ",[224,2235,438],{"class":273},[224,2237,2238],{"class":286}," column ",[224,2240,712],{"class":251},[224,2242,2243],{"class":226,"line":385},[224,2244,544],{"class":251},[224,2246,2248,2250,2252,2254,2257,2259,2262,2264,2267,2269,2271],{"class":2247,"line":391},[226,256],[224,2249,293],{"class":251},[224,2251,1998],{"class":296},[224,2253,300],{"class":251},[224,2255,2256],{"class":244},"c",[224,2258,313],{"class":273},[224,2260,2261],{"class":286}," c",[224,2263,443],{"class":251},[224,2265,2266],{"class":286},"Rank",[224,2268,307],{"class":251},[224,2270,2095],{"class":286},[224,2272,1504],{"class":251},[2274,2275,2276],"caution",{},[185,2277,2278,2280,2281,2284,2285,2287,2288,2291],{},[181,2279,2266],{}," here is ",[181,2282,2283],{},"null"," until the ",[181,2286,1998],{}," runs. An ",[196,2289,2290],{},"empty string would count as explicitly set"," and the sequence would never fill it.",[209,2293,2297],{"className":211,"code":2294,"filename":2295,"highlights":2296,"language":219,"meta":220,"style":220},"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","BoardTests.cs",[348,355,367,373,379],[181,2298,2299,2305,2319,2337,2359,2384,2402,2423,2437,2456,2477],{"__ignoreMap":220},[224,2300,2301,2303],{"class":226,"line":227},[224,2302,815],{"class":273},[224,2304,818],{"class":286},[224,2306,2307,2309,2311,2313,2315,2317],{"class":226,"line":248},[224,2308,823],{"class":251},[224,2310,826],{"class":296},[224,2312,300],{"class":251},[224,2314,831],{"class":230},[224,2316,587],{"class":286},[224,2318,325],{"class":251},[224,2320,2321,2323,2326,2328,2330,2332,2335],{"class":226,"line":215},[224,2322,823],{"class":251},[224,2324,2325],{"class":296},"AddBoard",[224,2327,300],{"class":251},[224,2329,831],{"class":230},[224,2331,849],{"class":240},[224,2333,2334],{"class":244}," board",[224,2336,325],{"class":251},[224,2338,2339,2341,2344,2346,2348,2350,2353,2355,2357],{"class":226,"line":216},[224,2340,823],{"class":251},[224,2342,2343],{"class":296},"AddColumns",[224,2345,300],{"class":251},[224,2347,831],{"class":230},[224,2349,849],{"class":240},[224,2351,2352],{"class":244}," columns",[224,2354,307],{"class":251},[224,2356,857],{"class":303},[224,2358,325],{"class":251},[224,2360,2361,2363,2366,2368,2370,2372,2375,2377,2379,2381],{"class":226,"line":217},[224,2362,823],{"class":251},[224,2364,2365],{"class":296},"AddCards",[224,2367,300],{"class":251},[224,2369,831],{"class":230},[224,2371,849],{"class":240},[224,2373,2374],{"class":244}," cards",[224,2376,307],{"class":251},[224,2378,857],{"class":303},[224,2380,411],{"class":251},[224,2382,2383],{"class":344}," \u002F\u002F \"a\", \"aa\" | \"a\", \"aa\"\n",[224,2385,2387,2389,2391,2393,2396,2398,2400],{"class":2386,"line":348},[226,256],[224,2388,823],{"class":251},[224,2390,891],{"class":296},[224,2392,300],{"class":251},[224,2394,2395],{"class":286},"columns",[224,2397,899],{"class":251},[224,2399,902],{"class":303},[224,2401,905],{"class":251},[224,2403,2405,2407,2410,2412,2414,2416,2418,2420],{"class":2404,"line":355},[226,256],[224,2406,823],{"class":251},[224,2408,2409],{"class":296},"AddCard",[224,2411,300],{"class":251},[224,2413,831],{"class":230},[224,2415,849],{"class":240},[224,2417,1078],{"class":244},[224,2419,411],{"class":251},[224,2421,2422],{"class":344}," \u002F\u002F \"aaa\": resumes only this column\n",[224,2424,2426,2428,2430,2432,2435],{"class":2425,"line":367},[226,256],[224,2427,823],{"class":251},[224,2429,891],{"class":296},[224,2431,300],{"class":251},[224,2433,2434],{"class":286},"board",[224,2436,325],{"class":251},[224,2438,2440,2442,2445,2447,2449,2451,2454],{"class":2439,"line":373},[226,256],[224,2441,823],{"class":251},[224,2443,2444],{"class":296},"AddColumn",[224,2446,300],{"class":251},[224,2448,831],{"class":230},[224,2450,849],{"class":240},[224,2452,2453],{"class":244}," sibling",[224,2455,325],{"class":251},[224,2457,2459,2461,2463,2465,2467,2469,2472,2474],{"class":2458,"line":379},[226,256],[224,2460,823],{"class":251},[224,2462,2409],{"class":296},[224,2464,300],{"class":251},[224,2466,831],{"class":230},[224,2468,849],{"class":240},[224,2470,2471],{"class":244}," siblingCard",[224,2473,411],{"class":251},[224,2475,2476],{"class":344}," \u002F\u002F \"a\": a new column restarts\n",[224,2478,2479,2481,2483],{"class":226,"line":385},[224,2480,823],{"class":251},[224,2482,1017],{"class":296},[224,2484,1020],{"class":251},[2486,2487,2488],"style",{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sG8yY, html code.shiki .sG8yY{--shiki-light:#E2931D;--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 .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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 .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--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":220,"searchDepth":227,"depth":248,"links":2490},[2491,2493,2494,2495,2496,2498,2499],{"id":178,"depth":248,"text":2492},"Why not index + 1",{"id":206,"depth":248,"text":207},{"id":725,"depth":248,"text":726},{"id":1558,"depth":248,"text":1559},{"id":1956,"depth":248,"text":2497},"Prefer Derive(prop, sequence) over ctx.Next",{"id":1980,"depth":248,"text":1981},{"id":2055,"depth":248,"text":2056},"Numbers and ordering that continue across Add calls, per session, parent or ancestor.","md",null,{},{"icon":59},{"title":56,"description":2500},"eJYCe5VG2HGsOaNDo6Lbz1T-f1yHyQwyLlQQR1iWT_o",[2508,2510],{"title":51,"path":52,"stem":53,"description":2509,"icon":54,"children":-1},"Child counts and customizers multiply per parent, and come back as one flat array.",{"title":61,"path":62,"stem":63,"description":2511,"icon":64,"children":-1},"One clock per test, frozen or shared with the code under test, rounded to match your database.",1791831052128]