%%{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
    __InputObject8{{"__InputObject[8∈0] ➊"}}:::plan
    Constant62{{"Constant[62∈0] ➊<br />ᐸ9000ᐳ"}}:::plan
    Constant63{{"Constant[63∈0] ➊<br />ᐸ'John Smith Jr.'ᐳ"}}:::plan
    Constant64{{"Constant[64∈0] ➊<br />ᐸ'Son of Sara and John Smith.'ᐳ"}}:::plan
    Constant65{{"Constant[65∈0] ➊<br />ᐸ'johnny.boy.smith@email.com'ᐳ"}}:::plan
    __InputDynamicScalar13{{"__InputDynamicScalar[13∈0] ➊"}}:::plan
    Constant66{{"Constant[66∈0] ➊<br />ᐸ'172.16.1.2'ᐳ"}}:::plan
    Constant67{{"Constant[67∈0] ➊<br />ᐸ'172.16.0.0/12'ᐳ"}}:::plan
    Constant68{{"Constant[68∈0] ➊<br />ᐸ'00:00:00:00:00:00'ᐳ"}}:::plan
    Constant62 & Constant63 & Constant64 & Constant65 & __InputDynamicScalar13 & Constant66 & Constant67 & Constant68 --> __InputObject8
    __InputObject6{{"__InputObject[6∈0] ➊"}}:::plan
    __InputObject8 --> __InputObject6
    Object20{{"Object[20∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access18{{"Access[18∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access19{{"Access[19∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access18 & Access19 --> Object20
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access18
    __Value2 --> Access19
    ApplyInput21{{"ApplyInput[21∈0] ➊"}}:::plan
    __InputObject6 --> ApplyInput21
    Lambda61{{"Lambda[61∈0] ➊<br />ᐸrawEncodeᐳ"}}:::plan
    Constant60{{"Constant[60∈0] ➊<br />ᐸ'query'ᐳ"}}:::plan
    Constant60 --> Lambda61
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    Connection32{{"Connection[32∈0] ➊<br />ᐸ29ᐳ"}}:::plan
    Constant39{{"Constant[39∈0] ➊<br />ᐸ'people'ᐳ"}}:::plan
    Connection51{{"Connection[51∈0] ➊<br />ᐸ48ᐳ"}}:::plan
    Edge36{{"Edge[36∈1] ➊"}}:::plan
    PgSelectSingle35{{"PgSelectSingle[35∈1] ➊<br />ᐸpersonᐳ"}}:::plan
    PgCursor38{{"PgCursor[38∈1] ➊"}}:::plan
    PgSelectSingle35 & PgCursor38 & Connection32 --> Edge36
    Edge55{{"Edge[55∈1] ➊"}}:::plan
    PgCursor57{{"PgCursor[57∈1] ➊"}}:::plan
    PgSelectSingle35 & PgCursor57 & Connection51 --> Edge55
    PgInsertSingle17[["PgInsertSingle[17∈1] ➊<br />ᐸperson()ᐳ"]]:::sideeffectplan
    Object20 & ApplyInput21 --> PgInsertSingle17
    PgSelect29[["PgSelect[29∈1] ➊<br />ᐸpersonᐳ"]]:::plan
    PgClassExpression27{{"PgClassExpression[27∈1] ➊<br />ᐸ__person__.”id”ᐳ"}}:::plan
    Object20 & PgClassExpression27 --> PgSelect29
    Access37{{"Access[37∈1] ➊<br />ᐸ29.cursorDetailsᐳ"}}:::plan
    PgSelectSingle35 & Access37 --> PgCursor38
    List41{{"List[41∈1] ➊<br />ᐸ39,40ᐳ"}}:::plan
    PgClassExpression40{{"PgClassExpression[40∈1] ➊<br />ᐸ__person__.”id”ᐳ"}}:::plan
    Constant39 & PgClassExpression40 --> List41
    PgSelectSingle35 & Access37 --> PgCursor57
    Object22{{"Object[22∈1] ➊<br />ᐸ{result}ᐳ"}}:::plan
    PgInsertSingle17 --> Object22
    Access23{{"Access[23∈1] ➊<br />ᐸ17.m.clientMutationIdᐳ"}}:::plan
    PgInsertSingle17 --> Access23
    Access28{{"Access[28∈1] ➊<br />ᐸ17.tᐳ"}}:::plan
    Access28 --> PgClassExpression27
    PgInsertSingle17 --> Access28
    First33{{"First[33∈1] ➊"}}:::plan
    PgSelectRows34[["PgSelectRows[34∈1] ➊"]]:::plan
    PgSelectRows34 --> First33
    PgSelect29 --> PgSelectRows34
    First33 --> PgSelectSingle35
    PgSelect29 --> Access37
    PgSelectSingle35 --> PgClassExpression40
    Lambda42{{"Lambda[42∈1] ➊<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List41 --> Lambda42
    PgClassExpression43{{"PgClassExpression[43∈1] ➊<br />ᐸ__person__...full_name”ᐳ"}}:::plan
    PgSelectSingle35 --> PgClassExpression43

    %% define steps

    subgraph "Buckets for mutations/v4/mutation-create.single-variables"
    Bucket0("Bucket 0 (root)"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,__InputObject6,__InputObject8,__InputDynamicScalar13,Access18,Access19,Object20,ApplyInput21,Connection32,Constant39,Connection51,Constant60,Lambda61,Constant62,Constant63,Constant64,Constant65,Constant66,Constant67,Constant68 bucket0
    Bucket1("Bucket 1 (mutationField)<br />Deps: 20, 21, 32, 39, 51, 4, 61<br /><br />1: PgInsertSingle[17]<br />2: <br />ᐳ: 22, 23, 28, 27<br />3: PgSelect[29]<br />ᐳ: Access[37]<br />4: PgSelectRows[34]<br />ᐳ: 33, 35, 38, 40, 41, 42, 43, 57, 36, 55"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,PgInsertSingle17,Object22,Access23,PgClassExpression27,Access28,PgSelect29,First33,PgSelectRows34,PgSelectSingle35,Edge36,Access37,PgCursor38,PgClassExpression40,List41,Lambda42,PgClassExpression43,Edge55,PgCursor57 bucket1
    Bucket0 --> Bucket1
    end
