package Ġio . phil arios . schema . entities . codegen . types . builder Ċ Ċ import Ġcom . squareup . kotlin po et . Type Spec Ċ import Ġio . phil arios . schema . Ref Type Ċ import Ġio . phil arios . schema . Struct Ċ import Ġio . phil arios . schema . Type Ċ import Ġio . phil arios . schema . Union Ċ Ċ type alias ĠType Builder Type Spec Ġ= ĠType .( type Refs : ĠMap < Ref Type , ĠType >) Ġ-> ĠList < Type Spec > Ċ Ċ fun Ġcreate Type Builder Type Spec ( ĊĠĠĠĠĠĠĠ Ġstruct Parameter Builder Type Spec : ĠStruct Parameter Builder Type Spec Ċ ): ĠType Builder Type Spec Ġ{ ĊĠĠĠ Ġval Ġstruct Builder Type Spec Ġ= Ġcreate Struct Builder Type Spec ( struct Parameter Builder Type Spec ) ĊĠĠĠ Ġval Ġunion Builder Type Spec Ġ= Ġcreate Union Builder Type Spec ( struct Builder Type Spec ) ĊĊĠĠĠ Ġreturn Ġ{ Ġtype Refs Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUnion Ġ-> Ġunion Builder Type Spec . invoke ( this , Ġtype Refs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStruct Ġ-> ĠlistOf ( struct Builder Type Spec . invoke ( this , Ġtype Refs )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġempty List () ĊĠĠĠĠĠĠĠ Ġ}. map NotNull Ġ{ Ġit Ġ} ĊĠĠĠ Ġ} Ċ } Ċ