%%{init: {'themeVariables': { 'fontSize': '12px'}}}%%
graph TD
    classDef path fill:#eee,stroke:#000,color:#000
    classDef plan fill:#fff,stroke-width:1px,color:#000
    classDef itemplan fill:#fff,stroke-width:2px,color:#000
    classDef unbatchedplan fill:#dff,stroke-width:1px,color:#000
    classDef sideeffectplan fill:#fcc,stroke-width:2px,color:#000
    classDef bucket fill:#f6f6f6,color:#000,stroke-width:2px,text-align:left


    %% plan dependencies
    PgSelect6[["PgSelect[6∈0] ➊<br />ᐸpeopleᐳ"]]:::plan
    Object9{{"Object[9∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Lambda213{{"Lambda[213∈0] ➊<br />ᐸcalculateLimitAndOffsetSQLᐳ"}}:::plan
    Object9 & Lambda213 --> PgSelect6
    Access7{{"Access[7∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access8{{"Access[8∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access7 & Access8 --> Object9
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access7
    __Value2 --> Access8
    Constant246{{"Constant[246∈0] ➊<br />ᐸ[Object: null prototype] {   cursorLower: null,   cursorUppeᐳ"}}:::plan
    Constant246 --> Lambda213
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    __Item10[/"__Item[10∈1]<br />ᐸ6ᐳ"\]:::itemplan
    PgSelect6 ==> __Item10
    PgSelectSingle11{{"PgSelectSingle[11∈1]<br />ᐸpeopleᐳ"}}:::plan
    __Item10 --> PgSelectSingle11
    PgSelect14[["PgSelect[14∈2]<br />ᐸsingle_table_itemsᐳ"]]:::plan
    PgClassExpression13{{"PgClassExpression[13∈2]<br />ᐸ__people__.”person_id”ᐳ"}}:::plan
    Object9 & PgClassExpression13 & Lambda213 --> PgSelect14
    PgClassExpression12{{"PgClassExpression[12∈2]<br />ᐸ__people__.”username”ᐳ"}}:::plan
    PgSelectSingle11 --> PgClassExpression12
    PgSelectSingle11 --> PgClassExpression13
    __ListTransform18[["__ListTransform[18∈2]<br />ᐸeach:14ᐳ"]]:::plan
    PgSelect14 --> __ListTransform18
    __Item19[/"__Item[19∈3]<br />ᐸ14ᐳ"\]:::itemplan
    PgSelect14 -.-> __Item19
    PgSelectSingle20{{"PgSelectSingle[20∈3]<br />ᐸsingle_table_itemsᐳ"}}:::plan
    __Item19 --> PgSelectSingle20
    PgSingleTablePolymorphic25["PgSingleTablePolymorphic[25∈4]"]:::plan
    Lambda24{{"Lambda[24∈4]"}}:::plan
    PgSelectSingle22{{"PgSelectSingle[22∈4]<br />ᐸsingle_table_itemsᐳ"}}:::plan
    Lambda24 & PgSelectSingle22 --> PgSingleTablePolymorphic25
    __Item21[/"__Item[21∈4]<br />ᐸ18ᐳ"\]:::itemplan
    __ListTransform18 ==> __Item21
    __Item21 --> PgSelectSingle22
    PgClassExpression23{{"PgClassExpression[23∈4]<br />ᐸ__single_t...s__.”type”ᐳ"}}:::plan
    PgSelectSingle22 --> PgClassExpression23
    PgClassExpression23 --> Lambda24
    PgSelect27[["PgSelect[27∈5]<br />ᐸsingle_table_itemsᐳ<br />ᐳSingleTableTopic<br />ᐳSingleTablePost<br />ᐳSingleTableDivider<br />ᐳSingleTableChecklist<br />ᐳSingleTableChecklistItem"]]:::plan
    PgClassExpression26{{"PgClassExpression[26∈5]<br />ᐸ__single_t...parent_id”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    Object9 & PgClassExpression26 & Lambda213 --> PgSelect27
    PgSelect72[["PgSelect[72∈5]<br />ᐸpeopleᐳ<br />ᐳSingleTableTopic<br />ᐳSingleTablePost<br />ᐳSingleTableDivider<br />ᐳSingleTableChecklist<br />ᐳSingleTableChecklistItem"]]:::plan
    PgClassExpression71{{"PgClassExpression[71∈5]<br />ᐸ__single_t...author_id”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    Object9 & PgClassExpression71 & Lambda213 --> PgSelect72
    PgSingleTablePolymorphic35["PgSingleTablePolymorphic[35∈5]<br />ᐳSingleTableTopic<br />ᐳSingleTablePost<br />ᐳSingleTableDivider<br />ᐳSingleTableChecklist<br />ᐳSingleTableChecklistItem"]:::plan
    Lambda34{{"Lambda[34∈5]"}}:::plan
    PgSelectSingle32{{"PgSelectSingle[32∈5]<br />ᐸsingle_table_itemsᐳ"}}:::plan
    Lambda34 & PgSelectSingle32 --> PgSingleTablePolymorphic35
    PgSelectSingle22 --> PgClassExpression26
    First31{{"First[31∈5]"}}:::plan
    PgSelect27 --> First31
    First31 --> PgSelectSingle32
    PgClassExpression33{{"PgClassExpression[33∈5]<br />ᐸ__single_t...s__.”type”ᐳ"}}:::plan
    PgSelectSingle32 --> PgClassExpression33
    PgClassExpression33 --> Lambda34
    PgClassExpression68{{"PgClassExpression[68∈5]<br />ᐸ__single_t...ems__.”id”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle22 --> PgClassExpression68
    PgClassExpression70{{"PgClassExpression[70∈5]<br />ᐸ__single_t...__.”type2”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle22 --> PgClassExpression70
    PgSelectSingle22 --> PgClassExpression71
    First74{{"First[74∈5]"}}:::plan
    PgSelect72 --> First74
    PgSelectSingle75{{"PgSelectSingle[75∈5]<br />ᐸpeopleᐳ"}}:::plan
    First74 --> PgSelectSingle75
    PgClassExpression77{{"PgClassExpression[77∈5]<br />ᐸ__single_t...”position”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle22 --> PgClassExpression77
    PgClassExpression78{{"PgClassExpression[78∈5]<br />ᐸ__single_t...reated_at”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle22 --> PgClassExpression78
    PgClassExpression79{{"PgClassExpression[79∈5]<br />ᐸ__single_t...pdated_at”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle22 --> PgClassExpression79
    PgClassExpression80{{"PgClassExpression[80∈5]<br />ᐸ__single_t..._archived”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle22 --> PgClassExpression80
    PgClassExpression81{{"PgClassExpression[81∈5]<br />ᐸ__single_t...chived_at”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle22 --> PgClassExpression81
    PgSelect40[["PgSelect[40∈6]<br />ᐸpeopleᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic<br />ᐳSingleTableTopicᐳSingleTablePost<br />ᐳSingleTableTopicᐳSingleTableDivider<br />ᐳSingleTableTopicᐳSingleTableChecklist<br />ᐳSingleTableTopicᐳSingleTableChecklistItem<br />ᐳSingleTablePostᐳSingleTableTopic<br />ᐳSingleTablePostᐳSingleTablePost<br />ᐳSingleTablePostᐳSingleTableDivider<br />ᐳSingleTablePostᐳSingleTableChecklist<br />ᐳSingleTablePostᐳSingleTableChecklistItem<br />ᐳSingleTableDividerᐳSingleTableTopic<br />ᐳSingleTableDividerᐳSingleTablePost<br />ᐳSingleTableDividerᐳSingleTableDivider<br />ᐳSingleTableDividerᐳSingleTableChecklist<br />ᐳSingleTableDividerᐳSingleTableChecklistItem<br />ᐳSingleTableChecklistᐳSingleTableTopic<br />ᐳSingleTableChecklistᐳSingleTablePost<br />ᐳSingleTableChecklistᐳSingleTableDivider<br />ᐳSingleTableChecklistᐳSingleTableChecklist<br />ᐳSingleTableChecklistᐳSingleTableChecklistItem<br />ᐳSingleTableChecklistItemᐳSingleTableTopic<br />ᐳSingleTableChecklistItemᐳSingleTablePost<br />ᐳSingleTableChecklistItemᐳSingleTableDivider<br />ᐳSingleTableChecklistItemᐳSingleTableChecklist<br />ᐳSingleTableChecklistItemᐳSingleTableChecklistItem"]]:::plan
    PgClassExpression39{{"PgClassExpression[39∈6]<br />ᐸ__single_t...author_id”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    Object9 & PgClassExpression39 & Lambda213 --> PgSelect40
    PgClassExpression38{{"PgClassExpression[38∈6]<br />ᐸ__single_t...__.”type2”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    PgSelectSingle32 --> PgClassExpression38
    PgSelectSingle32 --> PgClassExpression39
    First44{{"First[44∈6]"}}:::plan
    PgSelect40 --> First44
    PgSelectSingle45{{"PgSelectSingle[45∈6]<br />ᐸpeopleᐳ"}}:::plan
    First44 --> PgSelectSingle45
    PgClassExpression47{{"PgClassExpression[47∈6]<br />ᐸ__single_t...”position”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    PgSelectSingle32 --> PgClassExpression47
    PgClassExpression48{{"PgClassExpression[48∈6]<br />ᐸ__single_t...reated_at”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    PgSelectSingle32 --> PgClassExpression48
    PgClassExpression49{{"PgClassExpression[49∈6]<br />ᐸ__single_t...pdated_at”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    PgSelectSingle32 --> PgClassExpression49
    PgClassExpression50{{"PgClassExpression[50∈6]<br />ᐸ__single_t..._archived”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    PgSelectSingle32 --> PgClassExpression50
    PgClassExpression51{{"PgClassExpression[51∈6]<br />ᐸ__single_t...chived_at”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    PgSelectSingle32 --> PgClassExpression51
    PgClassExpression46{{"PgClassExpression[46∈7]<br />ᐸ__people__.”username”ᐳ<br />ᐳSingleTableTopicᐳSingleTableTopic"}}:::plan
    PgSelectSingle45 --> PgClassExpression46
    PgClassExpression76{{"PgClassExpression[76∈8]<br />ᐸ__people__.”username”ᐳ<br />ᐳSingleTableTopic"}}:::plan
    PgSelectSingle75 --> PgClassExpression76

    %% define steps

    subgraph "Buckets for queries/interfaces-single-table/nested-more"
    Bucket0("Bucket 0 (root)<br /><br />1: <br />ᐳ: 7, 8, 246, 9, 213<br />2: PgSelect[6]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,PgSelect6,Access7,Access8,Object9,Lambda213,Constant246 bucket0
    Bucket1("Bucket 1 (listItem)<br />Deps: 9, 213<br /><br />ROOT __Item{1}ᐸ6ᐳ[10]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,__Item10,PgSelectSingle11 bucket1
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 11, 9, 213<br /><br />ROOT PgSelectSingle{1}ᐸpeopleᐳ[11]<br />1: <br />ᐳ: 12, 13<br />2: PgSelect[14]<br />3: __ListTransform[18]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,PgClassExpression12,PgClassExpression13,PgSelect14,__ListTransform18 bucket2
    Bucket3("Bucket 3 (subroutine)<br /><br />ROOT PgSelectSingle{3}ᐸsingle_table_itemsᐳ[20]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,__Item19,PgSelectSingle20 bucket3
    Bucket4("Bucket 4 (listItem)<br />Deps: 9, 213<br /><br />ROOT __Item{4}ᐸ18ᐳ[21]<br />1: <br />ᐳ: 22, 23, 24<br />2: PgSingleTablePolymorphic[25]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,__Item21,PgSelectSingle22,PgClassExpression23,Lambda24,PgSingleTablePolymorphic25 bucket4
    Bucket5("Bucket 5 (polymorphic)<br />SingleTableTopic,SingleTablePost,SingleTableDivider,SingleTableChecklist,SingleTableChecklistItem<br />Deps: 22, 9, 213, 25, 23<br />ᐳSingleTableTopic<br />ᐳSingleTablePost<br />ᐳSingleTableDivider<br />ᐳSingleTableChecklist<br />ᐳSingleTableChecklistItem<br /><br />1: <br />ᐳ: 26, 68, 70, 71, 77, 78, 79, 80, 81<br />2: PgSelect[27], PgSelect[72]<br />ᐳ: 31, 32, 33, 34, 74, 75<br />3: PgSingleTablePolymorphic[35]"):::bucket
    classDef bucket5 stroke:#7fff00
    class Bucket5,PgClassExpression26,PgSelect27,First31,PgSelectSingle32,PgClassExpression33,Lambda34,PgSingleTablePolymorphic35,PgClassExpression68,PgClassExpression70,PgClassExpression71,PgSelect72,First74,PgSelectSingle75,PgClassExpression77,PgClassExpression78,PgClassExpression79,PgClassExpression80,PgClassExpression81 bucket5
    Bucket6("Bucket 6 (polymorphic)<br />SingleTableTopic,SingleTablePost,SingleTableDivider,SingleTableChecklist,SingleTableChecklistItem<br />Deps: 32, 9, 213, 35, 26, 33<br />ᐳSingleTableTopicᐳSingleTableTopic<br />ᐳSingleTableTopicᐳSingleTablePost<br />ᐳSingleTableTopicᐳSingleTableDivider<br />ᐳSingleTableTopicᐳSingleTableChecklist<br />ᐳSingleTableTopicᐳSingleTableChecklistItem<br />ᐳSingleTablePostᐳSingleTableTopic<br />ᐳSingleTablePostᐳSingleTablePost<br />ᐳSingleTablePostᐳSingleTableDivider<br />ᐳSingleTablePostᐳSingleTableChecklist<br />ᐳSingleTablePostᐳSingleTableChecklistItem<br />ᐳSingleTableDividerᐳSingleTableTopic<br />ᐳSingleTableDividerᐳSingleTablePost<br />ᐳSingleTableDividerᐳSingleTableDivider<br />ᐳSingleTableDividerᐳSingleTableChecklist<br />ᐳSingleTableDividerᐳSingleTableChecklistItem<br />ᐳSingleTableChecklistᐳSingleTableTopic<br />ᐳSingleTableChecklistᐳSingleTablePost<br />ᐳSingleTableChecklistᐳSingleTableDivider<br />ᐳSingleTableChecklistᐳSingleTableChecklist<br />ᐳSingleTableChecklistᐳSingleTableChecklistItem<br />ᐳSingleTableChecklistItemᐳSingleTableTopic<br />ᐳSingleTableChecklistItemᐳSingleTablePost<br />ᐳSingleTableChecklistItemᐳSingleTableDivider<br />ᐳSingleTableChecklistItemᐳSingleTableChecklist<br />ᐳSingleTableChecklistItemᐳSingleTableChecklistItem<br /><br />1: <br />ᐳ: 38, 39, 47, 48, 49, 50, 51<br />2: PgSelect[40]<br />ᐳ: First[44], PgSelectSingle[45]"):::bucket
    classDef bucket6 stroke:#ff1493
    class Bucket6,PgClassExpression38,PgClassExpression39,PgSelect40,First44,PgSelectSingle45,PgClassExpression47,PgClassExpression48,PgClassExpression49,PgClassExpression50,PgClassExpression51 bucket6
    Bucket7("Bucket 7 (nullableBoundary)<br />Deps: 45<br /><br />ROOT PgSelectSingle{6}ᐸpeopleᐳ[45]"):::bucket
    classDef bucket7 stroke:#808000
    class Bucket7,PgClassExpression46 bucket7
    Bucket8("Bucket 8 (nullableBoundary)<br />Deps: 75<br /><br />ROOT PgSelectSingle{5}ᐸpeopleᐳ[75]"):::bucket
    classDef bucket8 stroke:#dda0dd
    class Bucket8,PgClassExpression76 bucket8
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3 & Bucket4
    Bucket4 --> Bucket5
    Bucket5 --> Bucket6 & Bucket8
    Bucket6 --> Bucket7
    end
