%%{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
    Object11{{"Object[11∈0]<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access9{{"Access[9∈0]<br />ᐸ3.pgSettingsᐳ"}}:::plan
    Access10{{"Access[10∈0]<br />ᐸ3.withPgClientᐳ"}}:::plan
    Access9 & Access10 --> Object11
    __Value3["__Value[3∈0]<br />ᐸcontextᐳ"]:::plan
    __Value3 --> Access9
    __Value3 --> Access10
    PgSelect8[["PgSelect[8∈0]<br />ᐸrelational_commentablesᐳ"]]:::plan
    Object11 --> PgSelect8
    __ListTransform12[["__ListTransform[12∈0]<br />ᐸeach:8ᐳ"]]:::plan
    PgSelect8 --> __ListTransform12
    __Value0["__Value[0∈0]"]:::plan
    __Value5["__Value[5∈0]<br />ᐸrootValueᐳ"]:::plan
    PgPolymorphic18{{"PgPolymorphic[18∈2]"}}:::plan
    PgSelectSingle16{{"PgSelectSingle[16∈2]<br />ᐸrelational_commentablesᐳ"}}:::plan
    PgClassExpression17{{"PgClassExpression[17∈2]<br />ᐸ__relation...s__.”type”ᐳ"}}:::plan
    PgSelectSingle16 & PgClassExpression17 --> PgPolymorphic18
    __Item15[/"__Item[15∈2]<br />ᐸ12ᐳ"\]:::itemplan
    __ListTransform12 ==> __Item15
    __Item15 --> PgSelectSingle16
    PgSelectSingle16 --> PgClassExpression17
    PgClassExpression19{{"PgClassExpression[19∈2]<br />ᐸ__relation...les__.”id”ᐳ"}}:::plan
    PgSelectSingle16 --> PgClassExpression19
    __Item13[/"__Item[13∈1]<br />ᐸ8ᐳ"\]:::itemplan
    PgSelect8 -.-> __Item13
    PgSelectSingle14{{"PgSelectSingle[14∈1]<br />ᐸrelational_commentablesᐳ"}}:::plan
    __Item13 --> PgSelectSingle14
    PgSelect20[["PgSelect[20∈3]<br />ᐸrelational_postsᐳ<br />ᐳRelationalPost"]]:::plan
    Object11 & PgClassExpression19 --> PgSelect20
    PgSelect55[["PgSelect[55∈3]<br />ᐸrelational_checklistsᐳ<br />ᐳRelationalChecklist"]]:::plan
    Object11 & PgClassExpression19 --> PgSelect55
    PgSelect88[["PgSelect[88∈3]<br />ᐸrelational_checklist_itemsᐳ<br />ᐳRelationalChecklistItem"]]:::plan
    Object11 & PgClassExpression19 --> PgSelect88
    First24{{"First[24∈3]"}}:::plan
    PgSelect20 --> First24
    PgSelectSingle25{{"PgSelectSingle[25∈3]<br />ᐸrelational_postsᐳ"}}:::plan
    First24 --> PgSelectSingle25
    PgClassExpression26{{"PgClassExpression[26∈3]<br />ᐸ__relation...sts__.”id”ᐳ"}}:::plan
    PgSelectSingle25 --> PgClassExpression26
    PgSelectSingle33{{"PgSelectSingle[33∈3]<br />ᐸrelational_itemsᐳ"}}:::plan
    PgSelectSingle25 --> PgSelectSingle33
    PgClassExpression34{{"PgClassExpression[34∈3]<br />ᐸ__relation...s__.”type”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression34
    PgClassExpression42{{"PgClassExpression[42∈3]<br />ᐸ__relation...__.”type2”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression42
    PgClassExpression50{{"PgClassExpression[50∈3]<br />ᐸ__relation...”position”ᐳ"}}:::plan
    PgSelectSingle33 --> PgClassExpression50
    PgClassExpression51{{"PgClassExpression[51∈3]<br />ᐸ__relation...__.”title”ᐳ"}}:::plan
    PgSelectSingle25 --> PgClassExpression51
    PgClassExpression52{{"PgClassExpression[52∈3]<br />ᐸ__relation...scription”ᐳ"}}:::plan
    PgSelectSingle25 --> PgClassExpression52
    PgClassExpression53{{"PgClassExpression[53∈3]<br />ᐸ__relation...s__.”note”ᐳ"}}:::plan
    PgSelectSingle25 --> PgClassExpression53
    First59{{"First[59∈3]"}}:::plan
    PgSelect55 --> First59
    PgSelectSingle60{{"PgSelectSingle[60∈3]<br />ᐸrelational_checklistsᐳ"}}:::plan
    First59 --> PgSelectSingle60
    PgClassExpression61{{"PgClassExpression[61∈3]<br />ᐸ__relation...sts__.”id”ᐳ"}}:::plan
    PgSelectSingle60 --> PgClassExpression61
    PgSelectSingle68{{"PgSelectSingle[68∈3]<br />ᐸrelational_itemsᐳ"}}:::plan
    PgSelectSingle60 --> PgSelectSingle68
    PgClassExpression69{{"PgClassExpression[69∈3]<br />ᐸ__relation...s__.”type”ᐳ"}}:::plan
    PgSelectSingle68 --> PgClassExpression69
    PgClassExpression77{{"PgClassExpression[77∈3]<br />ᐸ__relation...__.”type2”ᐳ"}}:::plan
    PgSelectSingle68 --> PgClassExpression77
    PgClassExpression85{{"PgClassExpression[85∈3]<br />ᐸ__relation...”position”ᐳ"}}:::plan
    PgSelectSingle68 --> PgClassExpression85
    PgClassExpression86{{"PgClassExpression[86∈3]<br />ᐸ__relation...__.”title”ᐳ"}}:::plan
    PgSelectSingle60 --> PgClassExpression86
    First92{{"First[92∈3]"}}:::plan
    PgSelect88 --> First92
    PgSelectSingle93{{"PgSelectSingle[93∈3]<br />ᐸrelational_checklist_itemsᐳ"}}:::plan
    First92 --> PgSelectSingle93
    PgClassExpression94{{"PgClassExpression[94∈3]<br />ᐸ__relation...ems__.”id”ᐳ"}}:::plan
    PgSelectSingle93 --> PgClassExpression94
    PgSelectSingle101{{"PgSelectSingle[101∈3]<br />ᐸrelational_itemsᐳ"}}:::plan
    PgSelectSingle93 --> PgSelectSingle101
    PgClassExpression102{{"PgClassExpression[102∈3]<br />ᐸ__relation...s__.”type”ᐳ"}}:::plan
    PgSelectSingle101 --> PgClassExpression102
    PgClassExpression110{{"PgClassExpression[110∈3]<br />ᐸ__relation...__.”type2”ᐳ"}}:::plan
    PgSelectSingle101 --> PgClassExpression110
    PgClassExpression118{{"PgClassExpression[118∈3]<br />ᐸ__relation...”position”ᐳ"}}:::plan
    PgSelectSingle101 --> PgClassExpression118
    PgClassExpression119{{"PgClassExpression[119∈3]<br />ᐸ__relation...scription”ᐳ"}}:::plan
    PgSelectSingle93 --> PgClassExpression119
    PgClassExpression120{{"PgClassExpression[120∈3]<br />ᐸ__relation...s__.”note”ᐳ"}}:::plan
    PgSelectSingle93 --> PgClassExpression120

    %% define steps

    subgraph "Buckets for queries/interfaces-relational/commentables"
    Bucket0("Bucket 0 (root)<br />1: <br />ᐳ: Access[9], Access[10], Object[11]<br />2: PgSelect[8]<br />3: __ListTransform[12]"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value0,__Value3,__Value5,PgSelect8,Access9,Access10,Object11,__ListTransform12 bucket0
    Bucket1("Bucket 1 (subroutine)<br />ROOT PgSelectSingle{1}ᐸrelational_commentablesᐳ[14]"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,__Item13,PgSelectSingle14 bucket1
    Bucket2("Bucket 2 (listItem)<br />Deps: 11<br /><br />ROOT __Item{2}ᐸ12ᐳ[15]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2,__Item15,PgSelectSingle16,PgClassExpression17,PgPolymorphic18,PgClassExpression19 bucket2
    Bucket3("Bucket 3 (polymorphic)<br />RelationalPost,RelationalChecklist,RelationalChecklistItem<br />Deps: 11, 19, 18<br />ᐳRelationalPost<br />ᐳRelationalChecklist<br />ᐳRelationalChecklistItem"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgSelect20,First24,PgSelectSingle25,PgClassExpression26,PgSelectSingle33,PgClassExpression34,PgClassExpression42,PgClassExpression50,PgClassExpression51,PgClassExpression52,PgClassExpression53,PgSelect55,First59,PgSelectSingle60,PgClassExpression61,PgSelectSingle68,PgClassExpression69,PgClassExpression77,PgClassExpression85,PgClassExpression86,PgSelect88,First92,PgSelectSingle93,PgClassExpression94,PgSelectSingle101,PgClassExpression102,PgClassExpression110,PgClassExpression118,PgClassExpression119,PgClassExpression120 bucket3
    Bucket0 --> Bucket1 & Bucket2
    Bucket2 --> Bucket3
    end
