%%{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


    %% define steps
    __Value3["__Value[3∈0]<br />ᐸcontextᐳ"]:::plan
    __Value5["__Value[5∈0]<br />ᐸrootValueᐳ"]:::plan
    Access16{{"Access[16∈1]<br />ᐸ3.pgSettingsᐳ"}}:::plan
    Access17{{"Access[17∈1]<br />ᐸ3.withPgClientᐳ"}}:::plan
    Object18{{"Object[18∈1]<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Connection19{{"Connection[19∈0]<br />ᐸ15ᐳ"}}:::plan
    PgSelect20[["PgSelect[20∈1]<br />ᐸmessagesᐳ"]]:::plan
    __Item21[/"__Item[21∈2]<br />ᐸ20ᐳ"\]:::itemplan
    PgSelectSingle22{{"PgSelectSingle[22∈2]<br />ᐸmessagesᐳ"}}:::plan
    PgClassExpression24{{"PgClassExpression[24∈3]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    List25{{"List[25∈3]<br />ᐸ24ᐳ"}}:::plan
    PgCursor23{{"PgCursor[23∈3]"}}:::plan
    PgClassExpression26{{"PgClassExpression[26∈3]<br />ᐸ__messages__.”body”ᐳ"}}:::plan
    Map55{{"Map[55∈3]<br />ᐸ22:{”0”:2,”1”:3}ᐳ"}}:::plan
    PgSelectSingle33{{"PgSelectSingle[33∈3]<br />ᐸusersᐳ"}}:::plan
    PgClassExpression34{{"PgClassExpression[34∈4]<br />ᐸ__users__.”username”ᐳ"}}:::plan
    PgClassExpression35{{"PgClassExpression[35∈4]<br />ᐸ__users__....vatar_url”ᐳ"}}:::plan
    PgPageInfo36{{"PgPageInfo[36∈1]"}}:::plan
    Constant37{{"Constant[37∈1]"}}:::plan
    Constant38{{"Constant[38∈1]"}}:::plan
    First40{{"First[40∈1]"}}:::plan
    PgSelectSingle41{{"PgSelectSingle[41∈1]<br />ᐸmessagesᐳ"}}:::plan
    PgClassExpression43{{"PgClassExpression[43∈1]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    List44{{"List[44∈1]<br />ᐸ43ᐳ"}}:::plan
    PgCursor42{{"PgCursor[42∈1]"}}:::plan
    Last46{{"Last[46∈1]"}}:::plan
    PgSelectSingle47{{"PgSelectSingle[47∈1]<br />ᐸmessagesᐳ"}}:::plan
    PgClassExpression49{{"PgClassExpression[49∈1]<br />ᐸ__messages__.”id”ᐳ"}}:::plan
    List50{{"List[50∈1]<br />ᐸ49ᐳ"}}:::plan
    PgCursor48{{"PgCursor[48∈1]"}}:::plan
    PgSelect51[["PgSelect[51∈1]<br />ᐸmessages(aggregate)ᐳ"]]:::plan
    First52{{"First[52∈1]"}}:::plan
    PgSelectSingle53{{"PgSelectSingle[53∈1]<br />ᐸmessagesᐳ"}}:::plan
    PgClassExpression54{{"PgClassExpression[54∈1]<br />ᐸcount(*)ᐳ"}}:::plan

    %% plan dependencies
    __Value3 --> Access16
    __Value3 --> Access17
    Access16 & Access17 --> Object18
    Object18 & Connection19 --> PgSelect20
    PgSelect20 ==> __Item21
    __Item21 --> PgSelectSingle22
    PgSelectSingle22 --> PgClassExpression24
    PgClassExpression24 --> List25
    List25 --> PgCursor23
    PgSelectSingle22 --> PgClassExpression26
    PgSelectSingle22 --> Map55
    Map55 --> PgSelectSingle33
    PgSelectSingle33 --> PgClassExpression34
    PgSelectSingle33 --> PgClassExpression35
    PgSelect20 --> First40
    First40 --> PgSelectSingle41
    PgSelectSingle41 --> PgClassExpression43
    PgClassExpression43 --> List44
    List44 --> PgCursor42
    PgSelect20 --> Last46
    Last46 --> PgSelectSingle47
    PgSelectSingle47 --> PgClassExpression49
    PgClassExpression49 --> List50
    List50 --> PgCursor48
    Object18 & Connection19 --> PgSelect51
    PgSelect51 --> First52
    First52 --> PgSelectSingle53
    PgSelectSingle53 --> PgClassExpression54

    subgraph "Buckets for queries/connections/basics"
    Bucket0("Bucket 0 (root)"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value3,__Value5,Connection19 bucket0
    Bucket1("Bucket 1 (nullableBoundary)<br />Deps: 3, 19<br /><br />ROOT Connectionᐸ15ᐳ[19]<br />1: <br />ᐳ: 16, 17, 36, 37, 38, 18<br />2: PgSelect[20], PgSelect[51]<br />ᐳ: 40, 41, 43, 44, 46, 47, 49, 50, 52, 53, 54, 42, 48"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,Access16,Access17,Object18,PgSelect20,PgPageInfo36,Constant37,Constant38,First40,PgSelectSingle41,PgCursor42,PgClassExpression43,List44,Last46,PgSelectSingle47,PgCursor48,PgClassExpression49,List50,PgSelect51,First52,PgSelectSingle53,PgClassExpression54 bucket1
    Bucket2("Bucket 2 (listItem)<br />ROOT __Item{2}ᐸ20ᐳ[21]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item21,PgSelectSingle22 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 22<br /><br />ROOT PgSelectSingle{2}ᐸmessagesᐳ[22]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgCursor23,PgClassExpression24,List25,PgClassExpression26,PgSelectSingle33,Map55 bucket3
    Bucket4("Bucket 4 (nullableBoundary)<br />Deps: 33<br /><br />ROOT PgSelectSingle{3}ᐸusersᐳ[33]"):::bucket
    classDef bucket4 stroke:#0000ff
    class Bucket4,PgClassExpression34,PgClassExpression35 bucket4
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    Bucket3 --> Bucket4
    end
