[{"data":1,"prerenderedAt":2164},["ShallowReactive",2],{"navigation":3,"\u002Fexamples\u002Fcustom-seed":170,"\u002Fexamples\u002Fcustom-seed-surround":2159},[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":127,"body":172,"description":2152,"extension":2153,"links":2154,"meta":2155,"navigation":2156,"path":128,"seo":2157,"stem":129,"__hash__":2158},"docs\u002F3.examples\u002F5.custom-seed.md",{"type":173,"value":174,"toc":2145},"minimark",[175,179,202,207,822,826,840,1539,1543,1546,1723,1727,1734,1973,1989,1993,2141],[176,177,178],"p",{},"Sometimes the shared context is an actor and tenant, rather than rows to save. This example uses a plain record seed and shows how interface defaults and save hooks carry those conventions into the graph.",[176,180,181,182,186,187,191,192,201],{},"The seed doesn't have to be your app's entities. Here it is a plain record, ",[183,184,185],"code",{},"CustomSeed(string Actor, int Tenant)",", and ownership comes from a ",[188,189,190],"strong",{},"global default"," on an interface. Source: ",[193,194,198],"a",{"href":195,"rel":196},"https:\u002F\u002Fgithub.com\u002Fzeeq-ai\u002Fzeeq-biome\u002Ftree\u002Fmain\u002Ftests\u002FZeeq.Biome.Tests\u002FCustomSeed",[197],"nofollow",[183,199,200],{},"tests\u002FZeeq.Biome.Tests\u002FCustomSeed",".",[203,204,206],"h2",{"id":205},"seed-interface-default-blueprint","Seed, interface default, blueprint",[208,209,223],"pre",{"className":210,"code":211,"filename":212,"highlights":213,"language":221,"meta":222,"style":222},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark","internal sealed record CustomSeed(string Actor, int Tenant);\n\ninternal interface IHasCreatedBy\n{\n    string? CreatedBy { get; set; }\n}\n\ninternal sealed class Note : IHasCreatedBy\n{\n    public string? CreatedBy { get; set; }\n    public string? Id { get; set; }\n    public int Number { get; set; }\n    public string Text { get; set; } = \"note\";\n}\n\n\u002F\u002F PerSession spans every root Add; each test session has independent progression.\ninternal static readonly Sequence\u003Cint> Numbers = Sequence\n    .Of(1, n => n + 1)\n    .PerSession();\n\n\u002F\u002F Set the ID in the factory, leave ownership to the\n\u002F\u002F interface default, and derive numbering.\ninternal static readonly Blueprint\u003CCustomSeed, Note> Note = Blueprint\n    .For\u003CCustomSeed, Note>(ctx => new() { Id = ctx.NewId(\"note\") })\n    .Derive(n => n.Number, Numbers);\n\n\u002F\u002F Match an interface: ownership defaults apply across\n\u002F\u002F entity implementations and remain fill-only.\ninternal static BiomeOptions\u003CCustomSeed> NewOptions() =>\n    new BiomeOptions\u003CCustomSeed>().Default\u003CIHasCreatedBy, string?>(\n        n => n.CreatedBy,\n        (_, ctx) => ctx.Seed.Actor\n    );\n","CustomSeed\u002FDomain.cs",[214,215,216,217,218,219,220],1,8,25,30,31,32,33,"csharp","",[183,224,225,269,276,287,293,322,328,333,351,356,381,405,427,467,472,477,484,516,552,563,568,574,580,610,670,698,703,709,715,739,769,787,816],{"__ignoreMap":222},[226,227,231,235,238,242,246,250,254,257,260,263,266],"span",{"class":228,"line":214},[229,230],"line","highlight",[226,232,234],{"class":233},"sbsja","internal",[226,236,237],{"class":233}," sealed",[226,239,241],{"class":240},"sG8yY"," record",[226,243,245],{"class":244},"sbgvK"," CustomSeed",[226,247,249],{"class":248},"sP7_E","(",[226,251,253],{"class":252},"smGrS","string",[226,255,256],{"class":244}," Actor",[226,258,259],{"class":248},",",[226,261,262],{"class":252}," int",[226,264,265],{"class":244}," Tenant",[226,267,268],{"class":248},");\n",[226,270,272],{"class":229,"line":271},2,[226,273,275],{"emptyLinePlaceholder":274},true,"\n",[226,277,279,281,284],{"class":229,"line":278},3,[226,280,234],{"class":233},[226,282,283],{"class":240}," interface",[226,285,286],{"class":244}," IHasCreatedBy\n",[226,288,290],{"class":229,"line":289},4,[226,291,292],{"class":248},"{\n",[226,294,296,299,302,305,308,311,314,317,319],{"class":229,"line":295},5,[226,297,298],{"class":252},"    string",[226,300,301],{"class":248},"?",[226,303,304],{"class":244}," CreatedBy",[226,306,307],{"class":248}," {",[226,309,310],{"class":240}," get",[226,312,313],{"class":248},";",[226,315,316],{"class":240}," set",[226,318,313],{"class":248},[226,320,321],{"class":248}," }\n",[226,323,325],{"class":229,"line":324},6,[226,326,327],{"class":248},"}\n",[226,329,331],{"class":229,"line":330},7,[226,332,275],{"emptyLinePlaceholder":274},[226,334,336,338,340,343,346,349],{"class":335,"line":215},[229,230],[226,337,234],{"class":233},[226,339,237],{"class":233},[226,341,342],{"class":240}," class",[226,344,345],{"class":244}," Note",[226,347,348],{"class":248}," :",[226,350,286],{"class":244},[226,352,354],{"class":229,"line":353},9,[226,355,292],{"class":248},[226,357,359,362,365,367,369,371,373,375,377,379],{"class":229,"line":358},10,[226,360,361],{"class":233},"    public",[226,363,364],{"class":252}," string",[226,366,301],{"class":248},[226,368,304],{"class":244},[226,370,307],{"class":248},[226,372,310],{"class":240},[226,374,313],{"class":248},[226,376,316],{"class":240},[226,378,313],{"class":248},[226,380,321],{"class":248},[226,382,384,386,388,390,393,395,397,399,401,403],{"class":229,"line":383},11,[226,385,361],{"class":233},[226,387,364],{"class":252},[226,389,301],{"class":248},[226,391,392],{"class":244}," Id",[226,394,307],{"class":248},[226,396,310],{"class":240},[226,398,313],{"class":248},[226,400,316],{"class":240},[226,402,313],{"class":248},[226,404,321],{"class":248},[226,406,408,410,412,415,417,419,421,423,425],{"class":229,"line":407},12,[226,409,361],{"class":233},[226,411,262],{"class":252},[226,413,414],{"class":244}," Number",[226,416,307],{"class":248},[226,418,310],{"class":240},[226,420,313],{"class":248},[226,422,316],{"class":240},[226,424,313],{"class":248},[226,426,321],{"class":248},[226,428,430,432,434,437,439,441,443,445,447,450,453,457,461,464],{"class":229,"line":429},13,[226,431,361],{"class":233},[226,433,364],{"class":252},[226,435,436],{"class":244}," Text",[226,438,307],{"class":248},[226,440,310],{"class":240},[226,442,313],{"class":248},[226,444,316],{"class":240},[226,446,313],{"class":248},[226,448,449],{"class":248}," }",[226,451,452],{"class":252}," =",[226,454,456],{"class":455},"sjJ54"," \"",[226,458,460],{"class":459},"s_sjI","note",[226,462,463],{"class":455},"\"",[226,465,466],{"class":248},";\n",[226,468,470],{"class":229,"line":469},14,[226,471,327],{"class":248},[226,473,475],{"class":229,"line":474},15,[226,476,275],{"emptyLinePlaceholder":274},[226,478,480],{"class":229,"line":479},16,[226,481,483],{"class":482},"sutJx","\u002F\u002F PerSession spans every root Add; each test session has independent progression.\n",[226,485,487,489,492,495,498,501,504,507,510,512],{"class":229,"line":486},17,[226,488,234],{"class":233},[226,490,491],{"class":233}," static",[226,493,494],{"class":233}," readonly",[226,496,497],{"class":244}," Sequence",[226,499,500],{"class":248},"\u003C",[226,502,503],{"class":252},"int",[226,505,506],{"class":248},">",[226,508,509],{"class":244}," Numbers",[226,511,452],{"class":252},[226,513,515],{"class":514},"su5hD"," Sequence\n",[226,517,519,522,526,528,532,534,537,540,543,546,549],{"class":229,"line":518},18,[226,520,521],{"class":248},"    .",[226,523,525],{"class":524},"sGLFI","Of",[226,527,249],{"class":248},[226,529,531],{"class":530},"srdBf","1",[226,533,259],{"class":248},[226,535,536],{"class":244}," n",[226,538,539],{"class":252}," =>",[226,541,542],{"class":514}," n ",[226,544,545],{"class":252},"+",[226,547,548],{"class":530}," 1",[226,550,551],{"class":248},")\n",[226,553,555,557,560],{"class":229,"line":554},19,[226,556,521],{"class":248},[226,558,559],{"class":524},"PerSession",[226,561,562],{"class":248},"();\n",[226,564,566],{"class":229,"line":565},20,[226,567,275],{"emptyLinePlaceholder":274},[226,569,571],{"class":229,"line":570},21,[226,572,573],{"class":482},"\u002F\u002F Set the ID in the factory, leave ownership to the\n",[226,575,577],{"class":229,"line":576},22,[226,578,579],{"class":482},"\u002F\u002F interface default, and derive numbering.\n",[226,581,583,585,587,589,592,594,597,599,601,603,605,607],{"class":229,"line":582},23,[226,584,234],{"class":233},[226,586,491],{"class":233},[226,588,494],{"class":233},[226,590,591],{"class":244}," Blueprint",[226,593,500],{"class":248},[226,595,596],{"class":244},"CustomSeed",[226,598,259],{"class":248},[226,600,345],{"class":244},[226,602,506],{"class":248},[226,604,345],{"class":244},[226,606,452],{"class":252},[226,608,609],{"class":514}," Blueprint\n",[226,611,613,615,618,620,622,624,626,629,632,634,637,640,642,645,648,651,653,656,658,660,662,664,667],{"class":229,"line":612},24,[226,614,521],{"class":248},[226,616,617],{"class":524},"For",[226,619,500],{"class":248},[226,621,596],{"class":244},[226,623,259],{"class":248},[226,625,345],{"class":244},[226,627,628],{"class":248},">(",[226,630,631],{"class":244},"ctx",[226,633,539],{"class":252},[226,635,636],{"class":252}," new",[226,638,639],{"class":248},"()",[226,641,307],{"class":248},[226,643,644],{"class":514}," Id ",[226,646,647],{"class":252},"=",[226,649,650],{"class":514}," ctx",[226,652,201],{"class":248},[226,654,655],{"class":524},"NewId",[226,657,249],{"class":248},[226,659,463],{"class":455},[226,661,460],{"class":459},[226,663,463],{"class":455},[226,665,666],{"class":248},")",[226,668,669],{"class":248}," })\n",[226,671,673,675,678,680,683,685,687,689,692,694,696],{"class":672,"line":216},[229,230],[226,674,521],{"class":248},[226,676,677],{"class":524},"Derive",[226,679,249],{"class":248},[226,681,682],{"class":244},"n",[226,684,539],{"class":252},[226,686,536],{"class":514},[226,688,201],{"class":248},[226,690,691],{"class":514},"Number",[226,693,259],{"class":248},[226,695,509],{"class":514},[226,697,268],{"class":248},[226,699,701],{"class":229,"line":700},26,[226,702,275],{"emptyLinePlaceholder":274},[226,704,706],{"class":229,"line":705},27,[226,707,708],{"class":482},"\u002F\u002F Match an interface: ownership defaults apply across\n",[226,710,712],{"class":229,"line":711},28,[226,713,714],{"class":482},"\u002F\u002F entity implementations and remain fill-only.\n",[226,716,718,720,722,725,727,729,731,734,736],{"class":229,"line":717},29,[226,719,234],{"class":233},[226,721,491],{"class":233},[226,723,724],{"class":244}," BiomeOptions",[226,726,500],{"class":248},[226,728,596],{"class":244},[226,730,506],{"class":248},[226,732,733],{"class":524}," NewOptions",[226,735,639],{"class":248},[226,737,738],{"class":252}," =>\n",[226,740,742,745,747,749,751,754,757,759,762,764,766],{"class":741,"line":217},[229,230],[226,743,744],{"class":252},"    new",[226,746,724],{"class":244},[226,748,500],{"class":248},[226,750,596],{"class":244},[226,752,753],{"class":248},">().",[226,755,756],{"class":524},"Default",[226,758,500],{"class":248},[226,760,761],{"class":244},"IHasCreatedBy",[226,763,259],{"class":248},[226,765,364],{"class":252},[226,767,768],{"class":248},"?>(\n",[226,770,772,775,777,779,781,784],{"class":771,"line":218},[229,230],[226,773,774],{"class":244},"        n",[226,776,539],{"class":252},[226,778,536],{"class":514},[226,780,201],{"class":248},[226,782,783],{"class":514},"CreatedBy",[226,785,786],{"class":248},",\n",[226,788,790,793,796,798,800,802,804,806,808,811,813],{"class":789,"line":219},[229,230],[226,791,792],{"class":248},"        (",[226,794,795],{"class":244},"_",[226,797,259],{"class":248},[226,799,650],{"class":244},[226,801,666],{"class":248},[226,803,539],{"class":252},[226,805,650],{"class":514},[226,807,201],{"class":248},[226,809,810],{"class":514},"Seed",[226,812,201],{"class":248},[226,814,815],{"class":514},"Actor\n",[226,817,819],{"class":818,"line":220},[229,230],[226,820,821],{"class":248},"    );\n",[203,823,825],{"id":824},"defaults-and-hooks-together","Defaults and hooks together",[176,827,828,829,832,833,836,837,839],{},"The test registers an audit row in ",[183,830,831],{},"BeforeSave",", then records the order in which things happen. An ",[188,834,835],{},"explicit"," ",[183,838,783],{}," still wins over the interface default.",[841,842,843,1246],"code-group",{},[208,844,848],{"className":210,"code":845,"filename":846,"highlights":847,"language":221,"meta":222,"style":222},"var events = new List\u003Cstring>();\nvar store = new RecordingStore { OnSave = () => events.Add(\"save\") };\nvar options = TestBiome\n    .NewOptions()\n    .BeforeSave(\n        (ctx, _) =>\n        {\n            events.Add(\"before\");\n            ctx.Entities.Add(new Audit(ctx.Seed.Actor));\n            return ValueTask.CompletedTask;\n        }\n    )\n    .AfterSave(\n        (ctx, _) =>\n        {\n            events.Add(\"after\");\n            return ValueTask.CompletedTask;\n        }\n    );\nvar biome = TestBiome.Start(out var seed, store, options);\n\nawait biome\n    .AddNotes(out var notes, _ => { }, n => n.CreatedBy = \"custom\")\n    .BuildAsync();\n\n\u002F\u002F notes[0].CreatedBy == seed.Actor; notes[1].CreatedBy == \"custom\"\n\u002F\u002F events: \"before,save,after\"; the Audit row reached the store\n","With Biome",[353,576,582,612],[183,849,850,872,919,931,941,950,965,970,990,1029,1045,1050,1055,1064,1078,1082,1101,1113,1117,1121,1159,1163,1172,1222,1232,1236,1241],{"__ignoreMap":222},[226,851,852,855,858,860,862,865,867,869],{"class":229,"line":214},[226,853,854],{"class":240},"var",[226,856,857],{"class":244}," events",[226,859,452],{"class":252},[226,861,636],{"class":252},[226,863,864],{"class":244}," List",[226,866,500],{"class":248},[226,868,253],{"class":252},[226,870,871],{"class":248},">();\n",[226,873,874,876,879,881,883,886,888,891,893,896,898,900,902,905,907,909,912,914,916],{"class":229,"line":271},[226,875,854],{"class":240},[226,877,878],{"class":244}," store",[226,880,452],{"class":252},[226,882,636],{"class":252},[226,884,885],{"class":244}," RecordingStore",[226,887,307],{"class":248},[226,889,890],{"class":514}," OnSave ",[226,892,647],{"class":252},[226,894,895],{"class":248}," ()",[226,897,539],{"class":252},[226,899,857],{"class":514},[226,901,201],{"class":248},[226,903,904],{"class":524},"Add",[226,906,249],{"class":248},[226,908,463],{"class":455},[226,910,911],{"class":459},"save",[226,913,463],{"class":455},[226,915,666],{"class":248},[226,917,918],{"class":248}," };\n",[226,920,921,923,926,928],{"class":229,"line":278},[226,922,854],{"class":240},[226,924,925],{"class":244}," options",[226,927,452],{"class":252},[226,929,930],{"class":514}," TestBiome\n",[226,932,933,935,938],{"class":229,"line":289},[226,934,521],{"class":248},[226,936,937],{"class":524},"NewOptions",[226,939,940],{"class":248},"()\n",[226,942,943,945,947],{"class":229,"line":295},[226,944,521],{"class":248},[226,946,831],{"class":524},[226,948,949],{"class":248},"(\n",[226,951,952,954,956,958,961,963],{"class":229,"line":324},[226,953,792],{"class":248},[226,955,631],{"class":244},[226,957,259],{"class":248},[226,959,960],{"class":244}," _",[226,962,666],{"class":248},[226,964,738],{"class":252},[226,966,967],{"class":229,"line":330},[226,968,969],{"class":248},"        {\n",[226,971,972,975,977,979,981,983,986,988],{"class":229,"line":215},[226,973,974],{"class":514},"            events",[226,976,201],{"class":248},[226,978,904],{"class":524},[226,980,249],{"class":248},[226,982,463],{"class":455},[226,984,985],{"class":459},"before",[226,987,463],{"class":455},[226,989,268],{"class":248},[226,991,993,996,998,1001,1003,1005,1007,1010,1013,1015,1017,1019,1021,1023,1026],{"class":992,"line":353},[229,230],[226,994,995],{"class":514},"            ctx",[226,997,201],{"class":248},[226,999,1000],{"class":514},"Entities",[226,1002,201],{"class":248},[226,1004,904],{"class":524},[226,1006,249],{"class":248},[226,1008,1009],{"class":252},"new",[226,1011,1012],{"class":244}," Audit",[226,1014,249],{"class":248},[226,1016,631],{"class":514},[226,1018,201],{"class":248},[226,1020,810],{"class":514},[226,1022,201],{"class":248},[226,1024,1025],{"class":514},"Actor",[226,1027,1028],{"class":248},"));\n",[226,1030,1031,1035,1038,1040,1043],{"class":229,"line":358},[226,1032,1034],{"class":1033},"sVHd0","            return",[226,1036,1037],{"class":514}," ValueTask",[226,1039,201],{"class":248},[226,1041,1042],{"class":514},"CompletedTask",[226,1044,466],{"class":248},[226,1046,1047],{"class":229,"line":383},[226,1048,1049],{"class":248},"        }\n",[226,1051,1052],{"class":229,"line":407},[226,1053,1054],{"class":248},"    )\n",[226,1056,1057,1059,1062],{"class":229,"line":429},[226,1058,521],{"class":248},[226,1060,1061],{"class":524},"AfterSave",[226,1063,949],{"class":248},[226,1065,1066,1068,1070,1072,1074,1076],{"class":229,"line":469},[226,1067,792],{"class":248},[226,1069,631],{"class":244},[226,1071,259],{"class":248},[226,1073,960],{"class":244},[226,1075,666],{"class":248},[226,1077,738],{"class":252},[226,1079,1080],{"class":229,"line":474},[226,1081,969],{"class":248},[226,1083,1084,1086,1088,1090,1092,1094,1097,1099],{"class":229,"line":479},[226,1085,974],{"class":514},[226,1087,201],{"class":248},[226,1089,904],{"class":524},[226,1091,249],{"class":248},[226,1093,463],{"class":455},[226,1095,1096],{"class":459},"after",[226,1098,463],{"class":455},[226,1100,268],{"class":248},[226,1102,1103,1105,1107,1109,1111],{"class":229,"line":486},[226,1104,1034],{"class":1033},[226,1106,1037],{"class":514},[226,1108,201],{"class":248},[226,1110,1042],{"class":514},[226,1112,466],{"class":248},[226,1114,1115],{"class":229,"line":518},[226,1116,1049],{"class":248},[226,1118,1119],{"class":229,"line":554},[226,1120,821],{"class":248},[226,1122,1123,1125,1128,1130,1133,1135,1138,1140,1143,1146,1149,1151,1153,1155,1157],{"class":229,"line":565},[226,1124,854],{"class":240},[226,1126,1127],{"class":244}," biome",[226,1129,452],{"class":252},[226,1131,1132],{"class":514}," TestBiome",[226,1134,201],{"class":248},[226,1136,1137],{"class":524},"Start",[226,1139,249],{"class":248},[226,1141,1142],{"class":233},"out",[226,1144,1145],{"class":240}," var",[226,1147,1148],{"class":244}," seed",[226,1150,259],{"class":248},[226,1152,878],{"class":514},[226,1154,259],{"class":248},[226,1156,925],{"class":514},[226,1158,268],{"class":248},[226,1160,1161],{"class":229,"line":570},[226,1162,275],{"emptyLinePlaceholder":274},[226,1164,1166,1169],{"class":1165,"line":576},[229,230],[226,1167,1168],{"class":252},"await",[226,1170,1171],{"class":514}," biome\n",[226,1173,1175,1177,1180,1182,1184,1186,1189,1191,1193,1195,1197,1200,1202,1204,1206,1208,1211,1213,1215,1218,1220],{"class":1174,"line":582},[229,230],[226,1176,521],{"class":248},[226,1178,1179],{"class":524},"AddNotes",[226,1181,249],{"class":248},[226,1183,1142],{"class":233},[226,1185,1145],{"class":240},[226,1187,1188],{"class":244}," notes",[226,1190,259],{"class":248},[226,1192,960],{"class":244},[226,1194,539],{"class":252},[226,1196,307],{"class":248},[226,1198,1199],{"class":248}," },",[226,1201,536],{"class":244},[226,1203,539],{"class":252},[226,1205,536],{"class":514},[226,1207,201],{"class":248},[226,1209,1210],{"class":514},"CreatedBy ",[226,1212,647],{"class":252},[226,1214,456],{"class":455},[226,1216,1217],{"class":459},"custom",[226,1219,463],{"class":455},[226,1221,551],{"class":248},[226,1223,1225,1227,1230],{"class":1224,"line":612},[229,230],[226,1226,521],{"class":248},[226,1228,1229],{"class":524},"BuildAsync",[226,1231,562],{"class":248},[226,1233,1234],{"class":229,"line":216},[226,1235,275],{"emptyLinePlaceholder":274},[226,1237,1238],{"class":229,"line":700},[226,1239,1240],{"class":482},"\u002F\u002F notes[0].CreatedBy == seed.Actor; notes[1].CreatedBy == \"custom\"\n",[226,1242,1243],{"class":229,"line":705},[226,1244,1245],{"class":482},"\u002F\u002F events: \"before,save,after\"; the Audit row reached the store\n",[1247,1248,1251],"code-collapse",{"label":1249,"name":1250},"Without Biome","setup",[208,1252,1254],{"className":210,"code":1253,"language":221,"meta":222,"style":222},"var seed = new CustomSeed(\"actor\", 42);\n\nvar notes = new[]\n{\n    new Note\n    {\n        Id = $\"note_{Guid.CreateVersion7():N}\",\n        Number = 1,\n        CreatedBy = seed.Actor,\n    },\n    new Note\n    {\n        Id = $\"note_{Guid.CreateVersion7():N}\",\n        Number = 2,\n        CreatedBy = \"custom\",\n    },\n};\nvar audit = new Audit(seed.Actor); \u002F\u002F the audit row must be remembered in every test\n\ndb.AddRange(notes);\ndb.Add(audit);\nawait db.SaveChangesAsync();\n",[183,1255,1256,1284,1288,1301,1305,1312,1317,1356,1367,1382,1387,1393,1397,1427,1438,1452,1456,1461,1489,1493,1510,1525],{"__ignoreMap":222},[226,1257,1258,1260,1262,1264,1266,1268,1270,1272,1275,1277,1279,1282],{"class":229,"line":214},[226,1259,854],{"class":240},[226,1261,1148],{"class":244},[226,1263,452],{"class":252},[226,1265,636],{"class":252},[226,1267,245],{"class":244},[226,1269,249],{"class":248},[226,1271,463],{"class":455},[226,1273,1274],{"class":459},"actor",[226,1276,463],{"class":455},[226,1278,259],{"class":248},[226,1280,1281],{"class":530}," 42",[226,1283,268],{"class":248},[226,1285,1286],{"class":229,"line":271},[226,1287,275],{"emptyLinePlaceholder":274},[226,1289,1290,1292,1294,1296,1298],{"class":229,"line":278},[226,1291,854],{"class":240},[226,1293,1188],{"class":244},[226,1295,452],{"class":252},[226,1297,636],{"class":252},[226,1299,1300],{"class":248},"[]\n",[226,1302,1303],{"class":229,"line":289},[226,1304,292],{"class":248},[226,1306,1307,1309],{"class":229,"line":295},[226,1308,744],{"class":252},[226,1310,1311],{"class":244}," Note\n",[226,1313,1314],{"class":229,"line":324},[226,1315,1316],{"class":248},"    {\n",[226,1318,1319,1322,1324,1327,1330,1333,1336,1338,1341,1343,1346,1349,1352,1354],{"class":229,"line":330},[226,1320,1321],{"class":514},"        Id ",[226,1323,647],{"class":252},[226,1325,1326],{"class":455}," $\"",[226,1328,1329],{"class":459},"note_",[226,1331,1332],{"class":455},"{",[226,1334,1335],{"class":514},"Guid",[226,1337,201],{"class":455},[226,1339,1340],{"class":524},"CreateVersion7",[226,1342,639],{"class":455},[226,1344,1345],{"class":252},":",[226,1347,1348],{"class":514},"N",[226,1350,1351],{"class":455},"}",[226,1353,463],{"class":455},[226,1355,786],{"class":248},[226,1357,1358,1361,1363,1365],{"class":229,"line":215},[226,1359,1360],{"class":514},"        Number ",[226,1362,647],{"class":252},[226,1364,548],{"class":530},[226,1366,786],{"class":248},[226,1368,1369,1372,1374,1376,1378,1380],{"class":229,"line":353},[226,1370,1371],{"class":514},"        CreatedBy ",[226,1373,647],{"class":252},[226,1375,1148],{"class":514},[226,1377,201],{"class":248},[226,1379,1025],{"class":514},[226,1381,786],{"class":248},[226,1383,1384],{"class":229,"line":358},[226,1385,1386],{"class":248},"    },\n",[226,1388,1389,1391],{"class":229,"line":383},[226,1390,744],{"class":252},[226,1392,1311],{"class":244},[226,1394,1395],{"class":229,"line":407},[226,1396,1316],{"class":248},[226,1398,1399,1401,1403,1405,1407,1409,1411,1413,1415,1417,1419,1421,1423,1425],{"class":229,"line":429},[226,1400,1321],{"class":514},[226,1402,647],{"class":252},[226,1404,1326],{"class":455},[226,1406,1329],{"class":459},[226,1408,1332],{"class":455},[226,1410,1335],{"class":514},[226,1412,201],{"class":455},[226,1414,1340],{"class":524},[226,1416,639],{"class":455},[226,1418,1345],{"class":252},[226,1420,1348],{"class":514},[226,1422,1351],{"class":455},[226,1424,463],{"class":455},[226,1426,786],{"class":248},[226,1428,1429,1431,1433,1436],{"class":229,"line":469},[226,1430,1360],{"class":514},[226,1432,647],{"class":252},[226,1434,1435],{"class":530}," 2",[226,1437,786],{"class":248},[226,1439,1440,1442,1444,1446,1448,1450],{"class":229,"line":474},[226,1441,1371],{"class":514},[226,1443,647],{"class":252},[226,1445,456],{"class":455},[226,1447,1217],{"class":459},[226,1449,463],{"class":455},[226,1451,786],{"class":248},[226,1453,1454],{"class":229,"line":479},[226,1455,1386],{"class":248},[226,1457,1458],{"class":229,"line":486},[226,1459,1460],{"class":248},"};\n",[226,1462,1463,1465,1468,1470,1472,1474,1476,1479,1481,1483,1486],{"class":229,"line":518},[226,1464,854],{"class":240},[226,1466,1467],{"class":244}," audit",[226,1469,452],{"class":252},[226,1471,636],{"class":252},[226,1473,1012],{"class":244},[226,1475,249],{"class":248},[226,1477,1478],{"class":514},"seed",[226,1480,201],{"class":248},[226,1482,1025],{"class":514},[226,1484,1485],{"class":248},");",[226,1487,1488],{"class":482}," \u002F\u002F the audit row must be remembered in every test\n",[226,1490,1491],{"class":229,"line":554},[226,1492,275],{"emptyLinePlaceholder":274},[226,1494,1495,1498,1500,1503,1505,1508],{"class":229,"line":565},[226,1496,1497],{"class":514},"db",[226,1499,201],{"class":248},[226,1501,1502],{"class":524},"AddRange",[226,1504,249],{"class":248},[226,1506,1507],{"class":514},"notes",[226,1509,268],{"class":248},[226,1511,1512,1514,1516,1518,1520,1523],{"class":229,"line":570},[226,1513,1497],{"class":514},[226,1515,201],{"class":248},[226,1517,904],{"class":524},[226,1519,249],{"class":248},[226,1521,1522],{"class":514},"audit",[226,1524,268],{"class":248},[226,1526,1527,1529,1532,1534,1537],{"class":229,"line":576},[226,1528,1168],{"class":252},[226,1530,1531],{"class":514}," db",[226,1533,201],{"class":248},[226,1535,1536],{"class":524},"SaveChangesAsync",[226,1538,562],{"class":248},[203,1540,1542],{"id":1541},"options-freeze-on-first-use","Options freeze on first use",[176,1544,1545],{},"Every configuration mutator throws once a session has started, so a running test can't change shared options:",[208,1547,1551],{"className":210,"code":1548,"filename":1549,"highlights":1550,"language":221,"meta":222,"style":222},"var options = TestBiome.NewOptions();\nTestBiome.Start(out _, options: options); \u002F\u002F first use freezes the options\n\nAssert.Throws\u003CInvalidOperationException>(() => options.Ids(p => p));\nAssert.Throws\u003CInvalidOperationException>(() =>\n    options.TimePrecision(TimeSpan.Zero)\n);\nAssert.Throws\u003CInvalidOperationException>(() => options.SeedEntities(_ => []));\n\u002F\u002F …Default, BeforeSave and AfterSave throw the same way\n","CustomSeedTests.cs",[289,295,324,330,215],[183,1552,1553,1569,1597,1601,1640,1657,1680,1685,1718],{"__ignoreMap":222},[226,1554,1555,1557,1559,1561,1563,1565,1567],{"class":229,"line":214},[226,1556,854],{"class":240},[226,1558,925],{"class":244},[226,1560,452],{"class":252},[226,1562,1132],{"class":514},[226,1564,201],{"class":248},[226,1566,937],{"class":524},[226,1568,562],{"class":248},[226,1570,1571,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594],{"class":229,"line":271},[226,1572,1573],{"class":514},"TestBiome",[226,1575,201],{"class":248},[226,1577,1137],{"class":524},[226,1579,249],{"class":248},[226,1581,1142],{"class":233},[226,1583,960],{"class":514},[226,1585,259],{"class":248},[226,1587,925],{"class":244},[226,1589,1345],{"class":248},[226,1591,925],{"class":514},[226,1593,1485],{"class":248},[226,1595,1596],{"class":482}," \u002F\u002F first use freezes the options\n",[226,1598,1599],{"class":229,"line":278},[226,1600,275],{"emptyLinePlaceholder":274},[226,1602,1604,1607,1609,1612,1614,1617,1620,1622,1624,1626,1629,1631,1633,1635,1638],{"class":1603,"line":289},[229,230],[226,1605,1606],{"class":514},"Assert",[226,1608,201],{"class":248},[226,1610,1611],{"class":524},"Throws",[226,1613,500],{"class":248},[226,1615,1616],{"class":244},"InvalidOperationException",[226,1618,1619],{"class":248},">(()",[226,1621,539],{"class":252},[226,1623,925],{"class":514},[226,1625,201],{"class":248},[226,1627,1628],{"class":524},"Ids",[226,1630,249],{"class":248},[226,1632,176],{"class":244},[226,1634,539],{"class":252},[226,1636,1637],{"class":514}," p",[226,1639,1028],{"class":248},[226,1641,1643,1645,1647,1649,1651,1653,1655],{"class":1642,"line":295},[229,230],[226,1644,1606],{"class":514},[226,1646,201],{"class":248},[226,1648,1611],{"class":524},[226,1650,500],{"class":248},[226,1652,1616],{"class":244},[226,1654,1619],{"class":248},[226,1656,738],{"class":252},[226,1658,1660,1663,1665,1668,1670,1673,1675,1678],{"class":1659,"line":324},[229,230],[226,1661,1662],{"class":514},"    options",[226,1664,201],{"class":248},[226,1666,1667],{"class":524},"TimePrecision",[226,1669,249],{"class":248},[226,1671,1672],{"class":514},"TimeSpan",[226,1674,201],{"class":248},[226,1676,1677],{"class":514},"Zero",[226,1679,551],{"class":248},[226,1681,1683],{"class":1682,"line":330},[229,230],[226,1684,268],{"class":248},[226,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1709,1711,1713,1715],{"class":1687,"line":215},[229,230],[226,1689,1606],{"class":514},[226,1691,201],{"class":248},[226,1693,1611],{"class":524},[226,1695,500],{"class":248},[226,1697,1616],{"class":244},[226,1699,1619],{"class":248},[226,1701,539],{"class":252},[226,1703,925],{"class":514},[226,1705,201],{"class":248},[226,1707,1708],{"class":524},"SeedEntities",[226,1710,249],{"class":248},[226,1712,795],{"class":244},[226,1714,539],{"class":252},[226,1716,1717],{"class":248}," []));\n",[226,1719,1720],{"class":229,"line":353},[226,1721,1722],{"class":482},"\u002F\u002F …Default, BeforeSave and AfterSave throw the same way\n",[203,1724,1726],{"id":1725},"parallel-safe-by-construction","Parallel-safe by construction",[176,1728,1729,1730,1733],{},"Blueprints, sequences and options are ",[188,1731,1732],{},"immutable and shared",". Sessions hold all the mutable state, so 32 concurrent scenarios don't interfere:",[208,1735,1738],{"className":210,"code":1736,"filename":1549,"highlights":1737,"language":221,"meta":222,"style":222},"var options = TestBiome.NewOptions();\n\nawait Parallel.ForEachAsync(\n    Enumerable.Range(0, 32),\n    new ParallelOptions { MaxDegreeOfParallelism = 8 },\n    async (tenant, ct) =>\n    {\n        await Task.Yield();\n        var seed = new CustomSeed($\"actor-{tenant}\", tenant);\n        var biome = Biome.Start(seed, options);\n        await biome.AddNotes(out var notes, 3).BuildAsync(ct);\n        \u002F\u002F every session starts at Number 1, keeps its\n        \u002F\u002F own actor, and gets distinct IDs\n    }\n);\n",[358,383],[183,1739,1740,1756,1760,1774,1797,1817,1837,1841,1856,1892,1918,1954,1959,1964,1969],{"__ignoreMap":222},[226,1741,1742,1744,1746,1748,1750,1752,1754],{"class":229,"line":214},[226,1743,854],{"class":240},[226,1745,925],{"class":244},[226,1747,452],{"class":252},[226,1749,1132],{"class":514},[226,1751,201],{"class":248},[226,1753,937],{"class":524},[226,1755,562],{"class":248},[226,1757,1758],{"class":229,"line":271},[226,1759,275],{"emptyLinePlaceholder":274},[226,1761,1762,1764,1767,1769,1772],{"class":229,"line":278},[226,1763,1168],{"class":252},[226,1765,1766],{"class":514}," Parallel",[226,1768,201],{"class":248},[226,1770,1771],{"class":524},"ForEachAsync",[226,1773,949],{"class":248},[226,1775,1776,1779,1781,1784,1786,1789,1791,1794],{"class":229,"line":289},[226,1777,1778],{"class":514},"    Enumerable",[226,1780,201],{"class":248},[226,1782,1783],{"class":524},"Range",[226,1785,249],{"class":248},[226,1787,1788],{"class":530},"0",[226,1790,259],{"class":248},[226,1792,1793],{"class":530}," 32",[226,1795,1796],{"class":248},"),\n",[226,1798,1799,1801,1804,1806,1809,1811,1814],{"class":229,"line":295},[226,1800,744],{"class":252},[226,1802,1803],{"class":244}," ParallelOptions",[226,1805,307],{"class":248},[226,1807,1808],{"class":514}," MaxDegreeOfParallelism ",[226,1810,647],{"class":252},[226,1812,1813],{"class":530}," 8",[226,1815,1816],{"class":248}," },\n",[226,1818,1819,1822,1825,1828,1830,1833,1835],{"class":229,"line":324},[226,1820,1821],{"class":233},"    async",[226,1823,1824],{"class":248}," (",[226,1826,1827],{"class":244},"tenant",[226,1829,259],{"class":248},[226,1831,1832],{"class":244}," ct",[226,1834,666],{"class":248},[226,1836,738],{"class":252},[226,1838,1839],{"class":229,"line":330},[226,1840,1316],{"class":248},[226,1842,1843,1846,1849,1851,1854],{"class":229,"line":215},[226,1844,1845],{"class":252},"        await",[226,1847,1848],{"class":514}," Task",[226,1850,201],{"class":248},[226,1852,1853],{"class":524},"Yield",[226,1855,562],{"class":248},[226,1857,1858,1861,1863,1865,1867,1869,1871,1874,1877,1879,1881,1883,1885,1887,1890],{"class":229,"line":353},[226,1859,1860],{"class":240},"        var",[226,1862,1148],{"class":244},[226,1864,452],{"class":252},[226,1866,636],{"class":252},[226,1868,245],{"class":244},[226,1870,249],{"class":248},[226,1872,1873],{"class":455},"$\"",[226,1875,1876],{"class":459},"actor-",[226,1878,1332],{"class":455},[226,1880,1827],{"class":514},[226,1882,1351],{"class":455},[226,1884,463],{"class":455},[226,1886,259],{"class":248},[226,1888,1889],{"class":514}," tenant",[226,1891,268],{"class":248},[226,1893,1895,1897,1899,1901,1904,1906,1908,1910,1912,1914,1916],{"class":1894,"line":358},[229,230],[226,1896,1860],{"class":240},[226,1898,1127],{"class":244},[226,1900,452],{"class":252},[226,1902,1903],{"class":514}," Biome",[226,1905,201],{"class":248},[226,1907,1137],{"class":524},[226,1909,249],{"class":248},[226,1911,1478],{"class":514},[226,1913,259],{"class":248},[226,1915,925],{"class":514},[226,1917,268],{"class":248},[226,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1942,1945,1947,1949,1952],{"class":1920,"line":383},[229,230],[226,1922,1845],{"class":252},[226,1924,1127],{"class":514},[226,1926,201],{"class":248},[226,1928,1179],{"class":524},[226,1930,249],{"class":248},[226,1932,1142],{"class":233},[226,1934,1145],{"class":240},[226,1936,1188],{"class":244},[226,1938,259],{"class":248},[226,1940,1941],{"class":530}," 3",[226,1943,1944],{"class":248},").",[226,1946,1229],{"class":524},[226,1948,249],{"class":248},[226,1950,1951],{"class":514},"ct",[226,1953,268],{"class":248},[226,1955,1956],{"class":229,"line":407},[226,1957,1958],{"class":482},"        \u002F\u002F every session starts at Number 1, keeps its\n",[226,1960,1961],{"class":229,"line":429},[226,1962,1963],{"class":482},"        \u002F\u002F own actor, and gets distinct IDs\n",[226,1965,1966],{"class":229,"line":469},[226,1967,1968],{"class":248},"    }\n",[226,1970,1971],{"class":229,"line":474},[226,1972,268],{"class":248},[460,1974,1975],{},[176,1976,1977,1978,1981,1982,1985,1986,1988],{},"This also shows that ",[183,1979,1980],{},"Biome.Start(seed, options)"," works ",[188,1983,1984],{},"without"," a ",[183,1987,1573],{}," wrapper, handy for a custom seed built inline.",[203,1990,1992],{"id":1991},"custom-ids-and-session-sequences","Custom IDs and session sequences",[208,1994,1997],{"className":210,"code":1995,"filename":1549,"highlights":1996,"language":221,"meta":222,"style":222},"var options = TestBiome.NewOptions().Ids(prefix => $\"{prefix}_known\");\n\nawait TestBiome\n    .Start(out _, options: options)\n    .AddNote(out var first)\n    .AddNotes(out var rest, 2)\n    .BuildAsync();\n\n\u002F\u002F first.Number == 1; rest[0].Number == 2\n\u002F\u002F (a PerSession sequence continues across Adds)\n\u002F\u002F first.Id == \"note_known\"                 (the ID override reached the factory)\n",[214,295,324],[183,1998,1999,2041,2045,2051,2073,2092,2114,2122,2126,2131,2136],{"__ignoreMap":222},[226,2000,2002,2004,2006,2008,2010,2012,2014,2017,2019,2021,2024,2026,2028,2030,2032,2034,2037,2039],{"class":2001,"line":214},[229,230],[226,2003,854],{"class":240},[226,2005,925],{"class":244},[226,2007,452],{"class":252},[226,2009,1132],{"class":514},[226,2011,201],{"class":248},[226,2013,937],{"class":524},[226,2015,2016],{"class":248},"().",[226,2018,1628],{"class":524},[226,2020,249],{"class":248},[226,2022,2023],{"class":244},"prefix",[226,2025,539],{"class":252},[226,2027,1326],{"class":455},[226,2029,1332],{"class":455},[226,2031,2023],{"class":514},[226,2033,1351],{"class":455},[226,2035,2036],{"class":459},"_known",[226,2038,463],{"class":455},[226,2040,268],{"class":248},[226,2042,2043],{"class":229,"line":271},[226,2044,275],{"emptyLinePlaceholder":274},[226,2046,2047,2049],{"class":229,"line":278},[226,2048,1168],{"class":252},[226,2050,930],{"class":514},[226,2052,2053,2055,2057,2059,2061,2063,2065,2067,2069,2071],{"class":229,"line":289},[226,2054,521],{"class":248},[226,2056,1137],{"class":524},[226,2058,249],{"class":248},[226,2060,1142],{"class":233},[226,2062,960],{"class":514},[226,2064,259],{"class":248},[226,2066,925],{"class":244},[226,2068,1345],{"class":248},[226,2070,925],{"class":514},[226,2072,551],{"class":248},[226,2074,2076,2078,2081,2083,2085,2087,2090],{"class":2075,"line":295},[229,230],[226,2077,521],{"class":248},[226,2079,2080],{"class":524},"AddNote",[226,2082,249],{"class":248},[226,2084,1142],{"class":233},[226,2086,1145],{"class":240},[226,2088,2089],{"class":244}," first",[226,2091,551],{"class":248},[226,2093,2095,2097,2099,2101,2103,2105,2108,2110,2112],{"class":2094,"line":324},[229,230],[226,2096,521],{"class":248},[226,2098,1179],{"class":524},[226,2100,249],{"class":248},[226,2102,1142],{"class":233},[226,2104,1145],{"class":240},[226,2106,2107],{"class":244}," rest",[226,2109,259],{"class":248},[226,2111,1435],{"class":530},[226,2113,551],{"class":248},[226,2115,2116,2118,2120],{"class":229,"line":330},[226,2117,521],{"class":248},[226,2119,1229],{"class":524},[226,2121,562],{"class":248},[226,2123,2124],{"class":229,"line":215},[226,2125,275],{"emptyLinePlaceholder":274},[226,2127,2128],{"class":229,"line":353},[226,2129,2130],{"class":482},"\u002F\u002F first.Number == 1; rest[0].Number == 2\n",[226,2132,2133],{"class":229,"line":358},[226,2134,2135],{"class":482},"\u002F\u002F (a PerSession sequence continues across Adds)\n",[226,2137,2138],{"class":229,"line":383},[226,2139,2140],{"class":482},"\u002F\u002F first.Id == \"note_known\"                 (the ID override reached the factory)\n",[2142,2143,2144],"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 .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 .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 .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 .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 .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":222,"searchDepth":214,"depth":271,"links":2146},[2147,2148,2149,2150,2151],{"id":205,"depth":271,"text":206},{"id":824,"depth":271,"text":825},{"id":1541,"depth":271,"text":1542},{"id":1725,"depth":271,"text":1726},{"id":1991,"depth":271,"text":1992},"A plain record seed, an interface default, save hooks, frozen options and parallel safety.","md",null,{},{"icon":44},{"title":127,"description":2152},"OoTp-q7Fl_6oE66iFoW41p3lNpuEre-FnrXZ9p1r28Q",[2160,2162],{"title":122,"path":123,"stem":124,"description":2161,"icon":125,"children":-1},"Board, columns and cards, with rank ordering from a per-parent string sequence.",{"title":131,"path":132,"stem":133,"description":2163,"icon":134,"children":-1},"A five-level fulfilment tree with mixed sequence scopes and transient request inputs.",1791831050382]