%%{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
    Constant30{{"Constant[30∈0] ➊<br />ᐸ9001ᐳ"}}:::plan
    Constant31{{"Constant[31∈0] ➊<br />ᐸ99ᐳ"}}:::plan
    Constant32{{"Constant[32∈0] ➊<br />ᐸ77ᐳ"}}:::plan
    Constant33{{"Constant[33∈0] ➊<br />ᐸ'jubilant'ᐳ"}}:::plan
    Constant30 & Constant31 & Constant32 & Constant33 --> __InputObject8
    __InputObject6{{"__InputObject[6∈0] ➊"}}:::plan
    __InputObject8 --> __InputObject6
    Object17{{"Object[17∈0] ➊<br />ᐸ{pgSettings,withPgClient}ᐳ"}}:::plan
    Access15{{"Access[15∈0] ➊<br />ᐸ2.pgSettingsᐳ"}}:::plan
    Access16{{"Access[16∈0] ➊<br />ᐸ2.withPgClientᐳ"}}:::plan
    Access15 & Access16 --> Object17
    BakedInput13{{"BakedInput[13∈0] ➊"}}:::plan
    __InputObject8 --> BakedInput13
    __Value2["__Value[2∈0] ➊<br />ᐸcontextᐳ"]:::plan
    __Value2 --> Access15
    __Value2 --> Access16
    ApplyInput22{{"ApplyInput[22∈0] ➊"}}:::plan
    __InputObject6 --> ApplyInput22
    __Value4["__Value[4∈0] ➊<br />ᐸrootValueᐳ"]:::plan
    Constant23{{"Constant[23∈0] ➊<br />ᐸ'left_arms'ᐳ"}}:::plan
    PgSelect14[["PgSelect[14∈1] ➊<br />ᐸleft_arm_identity(mutation)ᐳ"]]:::sideeffectplan
    Object17 & BakedInput13 & ApplyInput22 --> PgSelect14
    First18{{"First[18∈1] ➊"}}:::plan
    PgSelectRows19[["PgSelectRows[19∈1] ➊"]]:::plan
    PgSelectRows19 --> First18
    PgSelect14 --> PgSelectRows19
    PgSelectSingle20{{"PgSelectSingle[20∈1] ➊<br />ᐸleft_arm_identityᐳ"}}:::plan
    First18 --> PgSelectSingle20
    Object21{{"Object[21∈1] ➊<br />ᐸ{result}ᐳ"}}:::plan
    PgSelectSingle20 --> Object21
    List25{{"List[25∈3] ➊<br />ᐸ23,24ᐳ"}}:::plan
    PgClassExpression24{{"PgClassExpression[24∈3] ➊<br />ᐸ__left_arm...ity__.”id”ᐳ"}}:::plan
    Constant23 & PgClassExpression24 --> List25
    PgSelectSingle20 --> PgClassExpression24
    Lambda26{{"Lambda[26∈3] ➊<br />ᐸbase64JSONEncodeᐳ"}}:::plan
    List25 --> Lambda26
    PgClassExpression27{{"PgClassExpression[27∈3] ➊<br />ᐸ__left_arm...person_id”ᐳ"}}:::plan
    PgSelectSingle20 --> PgClassExpression27
    PgClassExpression28{{"PgClassExpression[28∈3] ➊<br />ᐸ__left_arm...in_metres”ᐳ"}}:::plan
    PgSelectSingle20 --> PgClassExpression28
    PgClassExpression29{{"PgClassExpression[29∈3] ➊<br />ᐸ__left_arm...y__.”mood”ᐳ"}}:::plan
    PgSelectSingle20 --> PgClassExpression29

    %% define steps

    subgraph "Buckets for mutations/v4/rbac.leftArmIdentity"
    Bucket0("Bucket 0 (root)"):::bucket
    classDef bucket0 stroke:#696969
    class Bucket0,__Value2,__Value4,__InputObject6,__InputObject8,BakedInput13,Access15,Access16,Object17,ApplyInput22,Constant23,Constant30,Constant31,Constant32,Constant33 bucket0
    Bucket1("Bucket 1 (mutationField)<br />Deps: 17, 13, 22, 23<br /><br />1: PgSelect[14]<br />2: PgSelectRows[19]<br />ᐳ: 18, 20, 21"):::bucket
    classDef bucket1 stroke:#00bfff
    class Bucket1,PgSelect14,First18,PgSelectRows19,PgSelectSingle20,Object21 bucket1
    Bucket2("Bucket 2 (nullableBoundary)<br />Deps: 21, 20, 23<br /><br />ROOT Object{1}ᐸ{result}ᐳ[21]"):::bucket
    classDef bucket2 stroke:#7f007f
    class Bucket2 bucket2
    Bucket3("Bucket 3 (nullableBoundary)<br />Deps: 20, 23<br /><br />ROOT PgSelectSingle{1}ᐸleft_arm_identityᐳ[20]"):::bucket
    classDef bucket3 stroke:#ffa500
    class Bucket3,PgClassExpression24,List25,Lambda26,PgClassExpression27,PgClassExpression28,PgClassExpression29 bucket3
    Bucket0 --> Bucket1
    Bucket1 --> Bucket2
    Bucket2 --> Bucket3
    end
