@ file : Use Serial izers ( Vector 2 Serializer :: class ) Ċ Ċ import ĠDouble Or Random . Random Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . Use Serial izers Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġkotlinx . serialization . json . Json Configuration Ċ Ċ @ Serializable Ċ sealed Ġclass ĠSvg Macro Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson ( Json Configuration . Stable . copy ( pretty Print Ġ= Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġfun Ġdeserialize ( string : ĠString ) Ġ= Ġjson . parse ( serializer (), Ġstring ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġserialize () Ġ= Ġjson . stringify ( serializer (), Ġthis ) ĊĊĠĠĠ Ġval ĠfileName Suffix : ĠString Ġget () Ġ= Ġdata Class To FileName ( this ) ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠRect Grid ( ĊĠĠĠĠĠĠĠ Ġvar Ġwidth : ĠDouble Or Random Ġ= ĠRandom ( 2 0 . 0 , Ġ 1 5 0 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġheight : ĠDouble Or Random Ġ= ĠRandom ( 2 0 . 0 , Ġ 1 5 0 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġcircle Radius : ĠDouble Or Random Ġ= ĠRandom ( 1 . 0 , Ġ 5 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġcount X : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 4 ), ĊĠĠĠĠĠĠĠ Ġvar Ġcount Y : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 4 ), ĊĠĠĠĠĠĠĠ Ġvar Ġmargin : ĠDouble Ġ= Ġ 0 . 0 5 ĊĠĠĠ Ġ) Ġ: ĠSvg Macro () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠVertical P ins ( ĊĠĠĠĠĠĠĠ Ġvar Ġpins : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 1 , Ġ 6 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpin Size : ĠDouble Or Random Ġ= ĠRandom ( 3 . 0 , Ġ 9 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġmargin : ĠDouble Ġ= Ġ 1 . 2 ĊĠĠĠ Ġ) Ġ: ĠSvg Macro () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠIntegr ated Circuit ( ĊĠĠĠĠĠĠĠ Ġvar Ġpins Per Side : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 6 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpin Pitch : ĠDouble Or Random Ġ= ĠRandom ( 4 . 0 , Ġ 1 2 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpin Length : ĠDouble Ġ= Ġ 4 . 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġpin Corner Margin : ĠDouble Ġ= Ġ 2 Ġ/ Ġ 3 . 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġwidth : ĠDouble Or Random Ġ= ĠRandom ( 8 . 0 , Ġ 3 0 . 0 ) ĊĠĠĠ Ġ) Ġ: ĠSvg Macro () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠMicro Controller ( ĊĠĠĠĠĠĠĠ Ġvar Ġpins Per Side : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 1 2 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpin Pitch : ĠDouble Or Random Ġ= ĠRandom ( 1 . 5 , Ġ 4 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpin Length : ĠDouble Ġ= Ġ 4 . 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġpin Corner Margin : ĠDouble Ġ= Ġ 2 Ġ/ Ġ 3 . 0 ĊĠĠĠ Ġ) Ġ: ĠSvg Macro () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠZ ig Z ag End ( ĊĠĠĠĠĠĠĠ Ġvar Ġterminal s : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 1 0 ) ĊĠĠĠ Ġ) Ġ: ĠSvg Macro () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠV ia Array ( ĊĠĠĠĠĠĠĠ Ġvar Ġterminal s : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 1 1 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpitch : ĠDouble Or Random Ġ= ĠRandom ( 1 1 . 0 , Ġ 2 0 . 0 ) ĊĠĠĠ Ġ) Ġ: ĠSvg Macro () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠBe vel Rect Grid ( ĊĠĠĠĠĠĠĠ Ġvar Ġwidth : ĠDouble Or Random Ġ= ĠRandom ( 2 0 . 0 , Ġ 1 5 0 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġheight : ĠDouble Or Random Ġ= ĠRandom ( 2 0 . 0 , Ġ 1 5 0 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġcircle Radius : ĠDouble Or Random Ġ= ĠRandom ( 1 . 0 , Ġ 5 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġcount X : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 6 ), ĊĠĠĠĠĠĠĠ Ġvar Ġcount Y : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 3 ), ĊĠĠĠĠĠĠĠ Ġvar Ġmargin : ĠDouble Ġ= Ġ 0 . 0 5 , ĊĠĠĠĠĠĠĠ Ġvar Ġbe vel Offset : ĠDouble Or Random Ġ= ĠDouble Or Random . Random ( 2 . 0 , Ġ 1 0 . 0 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpins Per Side : ĠInt Or Random Ġ= ĠInt Or Random . Random ( 2 , Ġ 1 2 ), ĊĠĠĠĠĠĠĠ Ġvar Ġpin Corner Margin : ĠDouble Ġ= Ġ 2 Ġ/ Ġ 3 . 0 ĊĠĠĠ Ġ) Ġ: ĠSvg Macro () Ċ } Ċ