package Ġio . github . cot ton mc . json factory . output . loot Ċ Ċ import Ġio . github . cot ton mc . json factory . data . Identifier Ċ import Ġio . github . cot ton mc . json factory . output . Json Ċ import Ġio . github . cot ton mc . json factory . output . Property Ċ import Ġio . github . cot ton mc . json factory . output . create Properties Ċ Ċ open Ġclass ĠFunction ( ĊĠĠĠ Ġval Ġfunction : ĠIdentifier , ĊĠĠĠ Ġval Ġconditions : ĠList < Condition > Ġ= Ġempty List (), ĊĠĠĠ Ġadditional Properties : ĠList < Property <* >> Ġ= Ġempty List () Ċ ) Ġ: ĠJson . By Properties Ġ{ ĊĠĠĠ Ġoverride Ġval Ġproperties Ġ= Ġcreate Properties Ġ{ Ġself Ġ-> ĊĠĠĠĠĠĠĠ Ġ+ self :: function ĊĠĠĠĠĠĠĠ Ġ+ self :: conditions . remove If Empty () ĊĠĠĠ Ġ} Ġ+ Ġadditional Properties ĊĊĠĠĠ Ġclass ĠSet Count ( conditions : ĠList < Condition >, Ġcount : ĠInt ) Ġ: ĠFunction ( ĊĠĠĠĠĠĠĠ ĠIdentifier . mc (" set _ count "), Ġconditions , ĊĠĠĠĠĠĠĠ Ġcreate Properties Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Property (" count ", Ġcount ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġclass ĠSet Count MinMax ( ĊĠĠĠĠĠĠĠ Ġconditions : ĠList < Condition >, ĊĠĠĠĠĠĠĠ Ġmin : ĠDouble , ĊĠĠĠĠĠĠĠ Ġmax : ĠDouble , ĊĠĠĠĠĠĠĠ Ġtype : ĠIdentifier Ġ= ĠIdentifier . mc (" uniform ") ĊĠĠĠ Ġ) Ġ: ĠFunction ( ĊĠĠĠĠĠĠĠ ĠIdentifier . mc (" set _ count "), Ġconditions , ĊĠĠĠĠĠĠĠ Ġcreate Properties Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" count ", Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" min " Ġto Ġmin , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" max " Ġto Ġmax , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġclass ĠCopy Name ( source : ĠString ) Ġ: ĠFunction ( ĊĠĠĠĠĠĠĠ ĠIdentifier . mc (" copy _ name "), Ġadditional Properties Ġ= Ġcreate Properties Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Property (" source ", Ġsource ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ