levels
{	
	icon levels
	description ""
	menu-name "Add a Levels container"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add Level Element"
		kind value
		type float
		compulsory 0
	}
}

bogeys
{
	icon bogeys
	description "contain all the bogeys"
	menu-name "Add Bogeys"
	tooltip "Train Bogie Names 0,1"
	unique 1
	default-amount 2
	array-element
	{
		container-type0 "bogey-element"
	}
	validation
	{
			UniqueNames
	}
}

bogey-element
{
   icon bogey-element
   description "this is an actual bogey"
   menu-name "Add a Bogey"
   kind "Structure"
   SubPossibilities
   {
		reversed
		{
			kind value
			type bool
			compulsory 1
			default 0
		}
		sideplay-permitted
		{
			kind value
			type bool
			compulsory 0
			default 0
		}
		rotation-permitted
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		bogey
		{
			kind value
			type kuidbrowser
			filter "bogey"
			category "CMP;BOGY"
			compulsory 1
		}
   }
}

signals
{
	icon signals
	description "contain all the signal states this signal can display"
	menu-name "Add Signals"
	unique 1
	
    SubPossibilities
    {
		0
		{
			kind element
			element-type "0"
		}
		1
		{
			kind element
			element-type "1"
		}
		2
		{
			kind element
			element-type "2"
		}
		3
		{
			kind element
			element-type "3"
		}
		4
		{
			kind element
			element-type "4"
		}
		5
		{
			kind element
			element-type "5"
		}
		6
		{
			kind element
			element-type "6"
		}
		7
		{
			kind element
			element-type "7"
		}
		8
		{
			kind element
			element-type "8"
		}
		9
		{
			kind element
			element-type "9"
		}
		10
		{
			kind element
			element-type "10"
		}
		11
		{
			kind element
			element-type "11"
		}
		12
		{
			kind element
			element-type "12"
		}
		13
		{
			kind element
			element-type "13"
		}
		14
		{
			kind element
			element-type "14"
		}
		15
		{
			kind element
			element-type "15"
		}
		16
		{
			kind element
			element-type "16"
		}
		17
		{
			kind element
			element-type "17"
		}
		18
		{
			kind element
			element-type "18"
		}
		19
		{
			kind element
			element-type "19"
		}
		20
		{
			kind element
			element-type "20"
		}
		21
		{
			kind element
			element-type "21"
		}
		22
		{
			kind element
			element-type "22"
		}
		23
		{
			kind element
			element-type "23"
		}
		24
		{
			kind element
			element-type "24"
		}
		25
		{
			kind element
			element-type "25"
		}
		26
		{
			kind element
			element-type "26"
		}
		27
		{
			kind element
			element-type "27"
		}
		28
		{
			kind element
			element-type "28"
		}
		29
		{
			kind element
			element-type "29"
		}
		30
		{
			kind element
			element-type "30"
		}
		31
		{
			kind element
			element-type "31"
		}
		32
		{
			kind element
			element-type "32"
		}
		33
		{
			kind element
			element-type "33"
		}
		34
		{
			kind element
			element-type "34"
		}
		35
		{
			kind element
			element-type "35"
		}
		36
		{
			kind element
			element-type "36"
		}
		37
		{
			kind element
			element-type "37"
		}
		38
		{
			kind element
			element-type "38"
		}
		39
		{
			kind element
			element-type "39"
		}
    }
	validation
	{
			UniqueNames
	}
}
0
{
   icon 0
   description "Signal state 0 (EX_STOP)"
   menu-name "Add a Signal 0"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

1
{
   icon 1
   description "Signal state 1 (EX_STOP_THEN_CONTINUE)"
   menu-name "Add a Signal 1"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

2
{
   icon 2
   description "Signal state 2 (EX_CAUTION_LEFT)"
   menu-name "Add a Signal 2"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

3
{
   icon 3
   description "Signal state 3 (EX_CAUTION_RIGHT)"
   menu-name "Add a Signal 3"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

4
{
   icon 4
   description "Signal state 4 (EX_CAUTION)"
   menu-name "Add a Signal 4"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

5
{
   icon 5
   description "Signal state 5 (EX_PROCEED_LEFT)"
   menu-name "Add a Signal 5"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

6
{
   icon 6
   description "Signal state 6 (EX_PROCEED_RIGHT)"
   menu-name "Add a Signal 6"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

7
{
   icon 7
   description "Signal state 7 (EX_ADVANCE_CAUTION)"
   menu-name "Add a Signal 7"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

8
{
   icon 8
   description "Signal state 8 (EX_PROCEED)"
   menu-name "Add a Signal 8"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

9
{
   icon 9
   description "Signal state 9 (EX_SLOW)"
   menu-name "Add a Signal 9"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

10
{
   icon 10
   description "Signal state 10 (EX_MEDIUM)"
   menu-name "Add a Signal 10"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

11
{
   icon 11
   description "Signal state 11 (EX_ADVANCE_CAUTION_LEFT)"
   menu-name "Add a Signal 11"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

12
{
   icon 12
   description "Signal state 12 (EX_ADVANCE_CAUTION_RIGHT)"
   menu-name "Add a Signal 12"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

13
{
   icon 13
   description "Signal state 13 (EX_CAUTION_LEFT_2)"
   menu-name "Add a Signal 13"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

14
{
   icon 14
   description "Signal state 14 (EX_CAUTION_RIGHT_2)"
   menu-name "Add a Signal 14"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

15
{
   icon 15
   description "Signal state 15 (EX_CAUTION_LEFT_3)"
   menu-name "Add a Signal 15"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

16
{
   icon 16
   description "Signal state 16 (EX_CAUTION_RIGHT_3)"
   menu-name "Add a Signal 16"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

17
{
   icon 17
   description "Signal state 17 (EX_ADVANCE_CAUTION_LEFT_2)"
   menu-name "Add a Signal 17"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

18
{
   icon 18
   description "Signal state 18 (EX_ADVANCE_CAUTION_RIGHT_2)"
   menu-name "Add a Signal 18"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

19
{
   icon 19
   description "Signal state 19 (EX_ADVANCE_CAUTION_LEFT_3)"
   menu-name "Add a Signal 19"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

20
{
   icon 20
   description "Signal state 20 (EX_ADVANCE_CAUTION_RIGHT_3)"
   menu-name "Add a Signal 20"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

21
{
   icon 21
   description "Signal state 21 (EX_PROCEED_LEFT_2)"
   menu-name "Add a Signal 21"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

22
{
   icon 22
   description "Signal state 22 (EX_PROCEED_RIGHT_2)"
   menu-name "Add a Signal 22"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

23
{
   icon 23
   description "Signal state 23 (EX_PROCEED_LEFT_3)"
   menu-name "Add a Signal 23"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

24
{
   icon 24
   description "Signal state 24 (EX_PROCEED_RIGHT_3)"
   menu-name "Add a Signal 24"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

25
{
   icon 25
   description "Signal state 25 (EX_RESTRICTED)"
   menu-name "Add a Signal 25"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
26
{
   icon 26
   description "Signal state 26 (EX_LIMITED)"
   menu-name "Add a Signal 26"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
27
{
   icon 27
   description "Signal state 27 (EX_APPROACH_LIMITED)"
   menu-name "Add a Signal 27"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
28
{
   icon 28
   description "Signal state 28 (EX_APPROACH_MEDIUM)"
   menu-name "Add a Signal 28"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
29
{
   icon 29
   description "Signal state 29 (EX_APPROACH_SLOW)"
   menu-name "Add a Signal 29"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
30
{
   icon 30
   description "Signal state 30 (EX_APPROACH_RESTRICTED)"
   menu-name "Add a Signal 30"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
31
{
   icon 31
   description "Signal state 31 (EX_LIMITED_APPROACH)"
   menu-name "Add a Signal 31"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
32
{
   icon 32
   description "Signal state 32 (EX_MEDIUM_APPROACH)"
   menu-name "Add a Signal 32"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
33
{
   icon 33
   description "Signal state 33 (EX_SLOW_APPROACH)"
   menu-name "Add a Signal 33"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
34
{
   icon 34
   description "Signal state 34 (EX_LIMITED_APPROACH_MEDIUM)"
   menu-name "Add a Signal 34"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
35
{
   icon 35
   description "Signal state 35 (EX_LIMITED_APPROACH_SLOW)"
   menu-name "Add a Signal 35"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
36
{
   icon 36
   description "Signal state 36 (EX_LIMITED_APPROACH_RESTRICTED)"
   menu-name "Add a Signal 36"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
37
{
   icon 37
   description "Signal state 37 (EX_MEDIUM_APPROACH_SLOW)"
   menu-name "Add a Signal 37"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
38
{
   icon 38
   description "Signal state 38 (EX_MEDIUM_APPROACH_RESTRICTED)"
   menu-name "Add a Signal 38"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}
39
{
   icon 39
   description "Signal state 39 (EX_SLOW_APPROACH_RESTRICTED)"
   menu-name "Add a Signal 39"
   kind "array"
   unique 1
   SubPossibilities
   {
		light
		{
			kind value
			type floatlist
			compulsory 1
			default 0
		}
		flash
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		flash-offset
		{
			kind value
			type floatlist
			compulsory 0
			default 0
		}
		speed
		{
			kind value
			type float
			compulsory 0
			default 0
		}
   }
}

lights
{
	icon lights
	description "contain all the lights"
	menu-name "Add Lights"
	unique 1
	array-element
	{
		container-type0 "lights-element"
	}
	validation
	{
			UniqueNames
	}
}

lights-element
{
   icon lights-element
   description "this is an actual light"
   menu-name "Add a Light"
   kind "array"
   SubPossibilities
   {
		corona
		{
			kind value
			type filepathedit
			compulsory 1
			datatype "image"
		}
   }
}

junction-vertices
{
   icon junction-vertices
   description ""
   menu-name "Add a Junction-Vertices container"
   unique 1
   array-element
   {
     container-type0 "junction-vertices-element"
   }
   validation
   {
		UniqueNames
   }
}

junction-vertices-element
{
  icon junction-vertices-element
  description ""
  menu-name "Add a Junction Vertice"
  kind "array"
  SubPossibilities
  {
		junction-lever-mesh
		{
			type combobox
			compulsory 1
			kind value
			source "mesh-table"
		}
		junction-vertex
		{
			type combobox
			compulsory 1
			kind value
			source "attached-track"
		}
		junction-mutex
		{
			kind value
			type string
			compulsory 0
		}
		junction-mutex-sharing-left
		{
			kind value
			type int
			compulsory 0
			default 0
		}
		junction-mutex-sharing-forward
		{
			kind value
			type int
			compulsory 0
			default 0
		}
		junction-mutex-sharing-right
		{
			kind value
			type int
			compulsory 0
			default 0
		}
  }
  validation
  {

  } 
  dependencies
  {

  }
}

mesh-table-int
{
   icon mesh-table-int
   savingname "mesh-table"
   description "this is a container that hold the meshes that you will be adding to this kind"
   menu-name "Add a Mesh Table"
   unique 1
   array-element
   {
     container-type0 "mesh-element-int"
   }
   validation
   {
   }  
}
mesh-element-int
{
   icon mesh-element-int
   description "this is an actual mesh, you will be loading your .im file in here"
   menu-name "Add a Mesh"
   kind "Structure"
   inherit
   {
	mesh-element
   }
   SubPossibilities
   {
		tooltip-text
		{
			kind value
			type string
			default "tooltip"
			compulsory 0
		}
		limits
		{
			type vector2
			compulsory 0
			kind value
			default 0,1
		}
		angles
		{
			type vector2
			compulsory 0
			kind value
		}
		kind
		{
			type combobox
			compulsory 0
			kind value
			source "mesh-kind.txt"
		}
		mousemode
		{
			type string
			compulsory 0
			kind value
		}
		mousespeed
		{
			type float
			compulsory 0
			kind value
			validation
			{
				IsNotZero
			}
		}
		notches
		{
			type floatlist
			compulsory 0

			kind value
			validation
			{
				range
				{
					min 0.0
					max 1.0
				}
			}
		}
		invert
		{
			kind value
			type bool
			compulsory 0
			default 0
		}
		notchheight
		{
			type floatlist
			compulsory 0
			kind value
			validation
			{
				IsPositive
			}
		}
		onlight
		{
			kind value
			type string
			compulsory 0
		}
		value
		{
			kind value
			type float
			compulsory 0
			default 0.0
		}
		font
		{
			kind value
			type string
			compulsory 0
			default "swiss"
		}
		fontsize
		{
			kind value
			compulsory 0
			type float
			default 12
		}
		fontcolor
		{
			kind value
			compulsory 0
			type rgb
		}
   }
   validation
   {

   } 
   dependencies
   {

   }
}

script-include-table
{
  icon scriptable-asset
  description "A list of assets whose top-level files will be searched for script includes."
  menu-name "Add a Script Include Path"
  unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add a Script Include Path"
		kind value
		type stringkuidbrowser
		compulsory 0
	}
	validation
	{
		UniqueNames
	}	
}


mesh-table
{
   icon mesh-table
   description "this is a container that hold the meshes that you will be adding to this kind"
   menu-name "Add a Mesh Table"
   tooltip "Create a Table to hold all the meshes to add to the kind"
   unique 1
   default-amount 1
   array-element
   {
     container-type0 "mesh-element"
   }
   validation
   {
		UniqueNames
   }  
}

mesh-element
{
   icon mesh-element
   description "this is an actual mesh, you will be loading your .im file in here"
   menu-name "Add a Mesh"
   kind "Structure"
   default-name default
   SubPossibilities
   {
		effects
		{
			kind element
			element-type "effects"
		}
		mesh-asset
		{
			kind value
			compulsory 0
			category "CMP;MESH"
			type kuidbrowser
		}
		mesh
		{
			type filepath
			compulsory 1
			kind value
			datatype "meshes"
		} 
		anim
		{
			type filepath
			compulsory 0
			kind value
			datatype "animation"
		}
		auto-create
		{
			type bool
			compulsory 0
			kind value
		}		
		animation-loop-speed
		{
			type float
			compulsory 0
			kind value
			default 1
		}
		att
		{
			kind value
			compulsory 0
			type combobox
			source "attachment"
			from "att-parent"
		}
		att-parent
		{
			type combobox
			compulsory 0
			kind value
			source "mesh-table"
		
			validation
			{
				NotOwnParent
				{
				
				}
			}
		}
		position
		{
			kind value
			type floatlist
			compulsory 0
			default 0,0,0
		}
		orientation
		{
			kind value
			type floatlist
			compulsory 0
			default 0,0,0
		}
		collision-parent
		{
			kind value
			type string
			compulsory 0
		}		
		critical-animation
		{
			type bool
			compulsory 0
			kind value
		}
		opacity
		{
			type bool
			compulsory 0
			kind value
			validation
			{
				range
				{
					min 0.0
					max 1.0
				}
			}
		}
		light
		{
			type bool
			compulsory 0
			kind value
		}
		night-mesh-base
		{
			kind value
			type string
			compulsory 0
		}
		radius
		{
			type float
			compulsory 0
			kind value
		}
		test-collisions
		{
			type bool
			compulsory 0
			kind value
		}
		use-parent-bounds
		{
			type bool
			compulsory 0
			kind value
		}
		lod-level
		{
		  type int
		  compulsory 0
		  kind value
			validation
			{
				range
				{
					min 0
					max 8
				}
			}
		}
   }
   validation
   {

   } 
   dependencies
   {

   }
}

track-lod-tree
{
  icon track
  description "The LOD Tree for this spline asset."
  subpossibilities
  {
    mesh
    {
			compulsory 0
			type string
  		kind value
    }
    subdivisions
    {
			compulsory 0
			type int
  		kind value
  		validation
			{
				range
				{
					min 1
					max 8
				}
			}
    }
    lod-distance
    {
      compulsory 0
      type float
      kind value
      validation
      {
				IsPositive
      }
    }
    lod-length
    {
      compulsory 0
      type float
      kind value
      validation
      {
        IsNotZero
				IsPositive
      }
    }
    lod-tessellation-length
    {
      compulsory 0
      type float
      kind value
      validation
      {
        IsNotZero
				IsPositive
      }
    }
    lod-random-bias
    {
      compulsory 0
      type float
      kind value
      validation
      {
				IsPositive
      }
    }
    high-detail
    {
			kind element
			element-type "track-lod-tree"
			compulsory 0
			validation
			{
				MustBePaired
				{
					0 "high-detail"
					1 "low-detail"
				}
			}
    }
    low-detail
    {
			kind element
			element-type "track-lod-tree"
			compulsory 0
			validation
			{
				MustBePaired
				{
					0 "high-detail"
					1 "low-detail"
				}
			}
    }
  }
}

track-part
{
  icon track
  description "A part descriptor for this spline asset."
  subpossibilities
  {
	  track-lod-tree
	  {
		  kind element
		  element-type "track-lod-tree"
		  compulsory 1
	  }
	  mesh-length
	  {
	    kind value
	    type "float"
	    compulsory 1
	    default 18.0
	    validation
	    {
        IsNotZero
			  IsPositive
	    }
	  }
	  adjust-height-to-ground-threshold
	  {
	    kind value
	    type "float"
	    compulsory 0
	    default -3.402823466e+38
	  }
	  adjust-height-to-ground-offset
	  {
	    kind value
	    type "float"
	    compulsory 0
	    default 0
	  }
	  adjust-cross-section-to-ground
	  {
	    kind value
	    type "bool"
	    compulsory 0
	    default 1
	  }
	  use-superelevation
	  {
	    kind value
	    type "bool"
	    compulsory 0
	    default 0
	  }
	}
}

effects
{
	icon effects
	description "this is a container where you can add some effects"
	menu-name "Add Effects"
	unique 1
	array-element
	{
		container-type0 "effect-name"
		container-type1 "effect-corona"
		container-type2 "effect-texture-replacement"
		container-type3 "effect-attachment"
		container-type4 "effect-animation"
	}
	validation
	{
		UniqueNames
	}   
}

effect-name
{
	icon effect-name
	description "this is an effect of type name"
	menu-name "Add Name Effect"
	subpossibilities
	{
		kind
		{
			compulsory 1
			type string
      		kind value
      		default "name"
      		disabled 1
		}  
		font
		{
			kind value
			type string
			compulsory 0
			default "swiss"
		}
		fontsize
		{
			kind value
			compulsory 0
			type float
			default 12
		}
		fontcolor
		{
			kind value
			compulsory 0
			type rgb
		}
		att
		{
			kind value
			compulsory 1
			type combobox
			source "attachment"
			unique 1
			validation
			{
				MustBeOwnParent
				{
				
				}
			}			
		}
		name
		{
			kind value
			compulsory 1
			type string
			default "parent"
		}
		value
		{
			kind value
			compulsory 0
			type string
			default ""
		}
	}
}

effect-corona
{
	icon effect-corona
	description "this is a corona effect"
	menu-name "Add a Corona Effect"
	subpossibilities
	{
		kind
		{
			compulsory 1
			type string
      		kind value
      		default "corona"
      		disabled 1
		}  
		att
		{
			kind value
			compulsory 1
			type combobox
			source "attachment"
			unique 1
			validation
			{
				MustBeOwnParent
				{
				
				}
			}			
		}
		directional
		{
			kind value
			type int
			compulsory 0
			default 0
		}
		frequency
		{
			kind value
			type int
			compulsory 0
			default 2
		}
		min-distance
		{
			kind value
			type float
			compulsory 0
			default 1.0
		}
		max-distance
		{
			kind value
			type float
			compulsory 0
			default 315.0
		}
		mul-distance
		{
			kind value
			type float
			compulsory 0
			default 60.0
		}
		max-intensity
		{
			kind value
			type float
			compulsory 0
			default 1.0
		}
		object-size
		{
			kind value
			compulsory 0
			type float
			default 0.15
		}
		max-size-mul
		{
			kind value
			compulsory 0
			type float
			default 2.0
		}
		texture-kuid
		{
			kind value
			compulsory 0
			category "CMP;TX"
			type kuidbrowser
			filter "texture"
			default <kuid:-1:6349>
		}
		wave-shift
		{
			kind value
			type float
			compulsory 0
			default 0
		}		
	}
}

effect-texture-replacement
{
	icon effect-texture-replacement
	description "this is a texture replacement effect"
	menu-name "Add a Texture Replacement Effect"
	subpossibilities
	{
		kind	
		{
			compulsory 1
			type string
      		kind value
      		default "texture-replacement"
      		disabled 1
		}  
		texture
		{
			kind value
			compulsory 1
			type string
		}
	}
}

effect-attachment
{
	icon effect-attachment
	description "this is an attachment effect"
	menu-name "Add an Attachment Effect"
	subpossibilities
	{
		kind	
		{
			compulsory 1
			type string
      		kind value
      		default "attachment"
      		disabled 1
		}  
		att
		{
			kind value
			compulsory 1
			type combobox
			source "attachment"
			unique 1
			validation
			{
				MustBeOwnParent
				{
				
				}
			}
		}
		default-mesh
		{
			kind value
			compulsory 0
			category "CMP;MESH|BD;-ACTV|VE|SCEN"
			type kuidbrowser
			filter "mesh"
		}
		surveyor-only
		{
			kind value
			compulsory 0
			type bool
		}
	}
}

effect-animation
{
	icon effect-animation
	description "this is an animation effect"
	menu-name "Add an Animation Effect"
	subpossibilities
	{
		kind	
		{
			compulsory 1
			type string
      		kind value
      		default "animation"
      		disabled 1
		}  
		anim
		{
			kind value
			compulsory 1
			type filepath
			datatype "animation"
		}
		looped
		{
			kind value
			type bool
			compulsory 1
			default 0
		}
		speed
		{
			kind value
			type int
			compulsory 1
			default 1
		}	
	}
}

soundscript
{
	icon soundscript
	description "this is a container where you can add sounds"
	menu-name "Add a SoundScript Container"
	unique 1
	array-element
	{
		container-type0 "soundscript-element"
	}
	validation
	{
		UniqueNames
	}	
}

soundscript-element
{
	icon soundscript-element
	description "this is an actual soundscript"
	menu-name "Add a SoundScript"
	kind "Structure"
	SubPossibilities
	{
		repeat-delay
		{
			kind value
			compulsory 1
			type vector2
		}
		distance
		{
			kind value
			compulsory 1
			type vector2
		}
		value-range
		{
			kind value
			type vector2
			compulsory 0
			default 0,0
		}
		trigger
		{
			kind value
			compulsory 0
			type string
		}      
		attachment
		{
			kind value
			compulsory 0
			type combobox
			source "attachment"
		}      
		nostartdelay
		{
			kind value
			compulsory 0
			type bool
		} 
		ambient
		{
			kind value
			type bool
			compulsory 0
		}
		volume
		{
			kind value
			type float
			compulsory 0
			default 1
		} 
		sound
		{
			kind element
			element-type "sound"
		}
		priority
		{
			kind value
			type int
			compulsory 0
			default 1
		}
	}
	validation
	{
	} 
	dependencies
	{
	}
}

decal
{
  icon textures
  description "A decal cast by this object"
  
	menu-name "Add a Decal"
	kind "Structure"
	SubPossibilities
	{
	  texture
	  {
			kind value
			type kuidbrowser
			filter "texture"
			compulsory 1
			default <kuid:-1:6337>
	  }
	  projection-depth
	  {
	    kind value
	    type float
	    compulsory 0
	    default 40
			validation
			{
				IsNotZero
				range
				{
				  min 0
				  max 120
				}
			}
	  }
	  texture-rectangle
	  {
			kind value
			type floatlist
			compulsory 0
			default 0,0,1,1
		}
	  field-of-view
	  {
			kind value
			type floatlist
			compulsory 0
			default 45,45
			validation
			{
				IsNotZero
				range
				{
				  min 0
				  max 85
				}
			}
		}
	  orthogonal-size
	  {
			kind value
			type floatlist
			compulsory 0
			default 10,10
			validation
			{
				IsNotZero
				range
				{
				  min 0
				  max 120
				}
			}
		}
		position
		{
			kind value
			type floatlist
			compulsory 0
			default 0,0,0
		}
	}
}

cameralist
{
	icon cameralist
	description "this is a list of camera"
	menu-name "Add a CameraList"
	unique 1
	kind "Structure"
  TagArray
	{
		menu-name "Add Camera"
		kind value
		type vector5
		compulsory 0
		default 0.0,0.0,0.0,0.0,0.0
		specificname "camera"
	}
}

obsolete-table
{
	icon obsolete-table
	description "this is a list of kuid that are obsolete"
	menu-name "Add an Obsolete Table"
	tooltip "List of kuid that are obsolete"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add and Obsolete Table Element"
		kind value
		type kuidbrowser
		compulsory 0
	}
}


spline_objects
{
	icon spline_objects
	description "this is a list of kuid mapobjects"
	menu-name "Add a spline_objects Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add Spline Object Element"
		kind value
		type kuidbrowser
		filter "track - road"
		compulsory 0
	}
	validation
	{
		UniqueNames
	}	
}

spline_distances
{
	icon spline_distances
	description "this is a list of distance between the mapobjects"
	menu-name "Add a spline_distances Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add Spline Distance Element"
		kind value
		type float
		compulsory 0
	}
	validation
	{
		UniqueNames
	}	
}

kuid-table
{
	icon kuid-table
	description "this is a list of kuid table"
	menu-name "Add a KUID Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add Kuid Table Element"
		kind value
		type stringkuidbrowser
		compulsory 0
	}
	validation
	{
		UniqueNames
	}	
}

processes
{   
	icon processes
	description "this is a container that holds a series of precesses"
	menu-name "Add a processes Container"
	unique 1
	array-element 
	{
		container-type0 "processes-element"
	}
	validation
	{
		UniqueNames
	}	
}

processes-element
{
	icon processes-element
	description "this is a processes"
	menu-name "Add a processes"
	kind "Structure"
	SubPossibilities
	{
			start-enabled
			{
				compulsory 1
				kind value
				type bool
				default 1
			}
			duration
			{
				compulsory 1
				kind value
				type float
				validation
				{
					IsNotZero
					IsPositive
				}
			}
			inputs
			{
				kind element
				element-type "inputs"
			}
			outputs
			{
				kind element
				element-type "outputs"
			}
	}
	validation
	{
	} 
	dependencies
	{
	}
}

inputs
{
	icon inputs
	description "this is a container that stores a series of inputs"
	menu-name "Add an Inputs Container"
	unique 1
	array-element 
	{
		container-type0 "input-element"
	}
	validation
	{
		UniqueNames
	}
}

input-element
{
	icon input-element
	description "this is an actual input"
	menu-name "Add an Input"
	kind "Structure"
	SubPossibilities
	{
			amount
			{
				kind value
				compulsory 1
				type int
			}
			queue
			{
				kind value
				compulsory 1
				type combobox
				source "queues"
			}
	}
	validation
	{
	} 
	dependencies
	{
	}
}

outputs
{
	icon outputs
	description "this is a container that stores a series of outputs"
	menu-name "Add an Outputs Container"
	unique 1
	array-element 
	{
		container-type0 "output-element"
	}
	validation
	{
		UniqueNames
	}	
}

output-element
{
 	icon output-element
	description "this is an actual output"
	menu-name "Add an Output"
	kind "Structure"
	SubPossibilities
	{
			amount
			{
				kind value
				compulsory 1
				type int
			}
			queue
			{
				kind value
				compulsory 1
				type combobox
				source queues
			}
	}
	validation
	{
	} 
	dependencies
	{
	}
}

queues
{
	icon queues
	description "this is a container that will hold a series of queues"
	menu-name "Add a Queues Container"
	unique 1
	array-element 
	{
		container-type0 "queues-element"
	}
	validation
	{
		UniqueNames
	}
}

queues-element
{
	icon queues-element
	description "this is an actual queue"
	menu-name "Add a Queue"
	kind "Structure"
	SubPossibilities
	{
			allowed-products
			{
				kind element
				element-type "allowed-products"
			}
			conflicts-with-queues
			{
				kind element
				element-type "conflicts-with-queues"
			}
			attachment-points
			{
				kind element
				element-type "attachment-points"
			}
			allowed-categories
			{
				kind element
				element-type "allowed-categories"
			}		
			size 
			{
				kind value
				compulsory 1
				type int
				validation
				{
					IsPositive
					IsNotZero
				}
			}
			initial-count 
			{
				kind value
				compulsory 0
				type int
				validation
				{
					MustBePaired
					{
						0 "product-kuid"
						1 "initial-count"
					}
				}
			}
			animated-mesh 
			{
				kind value
				compulsory 0
				type combobox
				source "mesh-table"
			}
			custom-attachments
			{
				kind value
				compulsory 0
				type combobox
				source "attachment"
			}
			product-kuid
			{
				kind value
				compulsory 0
				type kuidbrowser
				filter "product"
				category "PROD"
				validation
				{
					MustBePaired
					{
						0 "product-kuid"
						1 "initial-count"
					}
				}
			}
			passenger-queue
			{
				kind value
				compulsory 0
				type string
			}
			per-hour
			{
				kind value
				compulsory 0
				type int
				validation
				{
					IsPositive
				}
			}
	}
	validation
	{
	} 
	dependencies
	{
	}
}

consists
{
	icon consists
	description "this is a container that will hold a series of consists"
	menu-name "Add a Consists Container"
	unique 1
	array-element 
	{
		container-type0 "consists-element"
	}
}

consists-element
{
	icon consists-element
	description "this is an actual consist"
	menu-name "Add a Consist"
	kind "Structure"
	SubPossibilities
	{
		show-in-consist-menu
		{
			kind value
			type bool
			compulsory 1
			default 0
		}
		coupling-mask
		{
			kind value
			type bool
			compulsory 1
			default 0
		}
		decoupling-mask
		{
			kind value
			type bool
			compulsory 1
			default 0
		}
		consists-array-element
		{
			kind element
			element-type "consists-array-element"
			numarray 1
		}
	}
}

consists-array-element
{
	icon consists-array-element
	description "this is an actual consist"
	menu-name "Add a Consist Element"
	kind "array"
	subpossibilities
	{
		vehicle
		{
			kind value
			type kuidbrowser
			filter "scenery"
			category "TR;TV"
			compulsory 1
		}
		running-number
		{
			kind value
			type int
			compulsory 0
		}
		facing
		{
			kind value
			type bool
			compulsory 0
			default 0
		}
	}
}

attachment-points
{
	icon attachment-points
	description "this is a container that holds a list of attachment points"
	menu-name "Add an Attachment Points container"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add an Allowed Product"
		kind value
		type combobox
		compulsory 0
		source "attachment"
	}
}

allowed-products
{
	icon allowed-products
	description "this is a container that holds a list of allowed product"
	menu-name "Add an Allowed Product List"	
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add an Allowed Product"
		tooltip "Create an allowed product"
		kind value
		type kuidbrowser
		filter "product"
		category "PROD"
		compulsory 0
	}
}

allowed-categories
{
	icon allowed-categories
	description "this is a container that holds a list of allowed categories"
	menu-name "Add an Allowed Categories List"	
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add an Allowed Product"
		kind value
		type kuidbrowser
		filter "product"
		category "PRDC"
		compulsory 0
	}
}

conflicts-with-queues
{
	icon conflicts-with-queues
	description "this is a list of queues that get in conflict"
	menu-name "Add a Conflicts With Queues Container"
	unique 1
    kind "Structure"
    TagArray
	{
			menu-name "Add a Conflict With Queue"
			kind value
			type combobox
			compulsory 0
			source "queues"
	}
}

sound
{
	icon sound
	description "this iis a container that hold a series of sound file"
	menu-name "Add Sound container"
	kind "Structure"
	unique 1
	TagArray
	{
		menu-name "Add a Sound"
		kind value
		type string
		compulsory 0
	}
}


attached-track
{
	icon attached-track
	description "this is a series of track that are attached..."
	menu-name "Add an Attached Track Container"
	unique 1
	array-element 
	{
		menu-name "Add an Attached Track"
		container-type0 "attached-track-element"
	}
}

attached-track-element
{
	icon attached-track-element
	description "this is an actual track"
	menu-name "Add a Track"
	kind "Structure"
	SubPossibilities
	{
		vertices
		{
			kind element
			element-type "vertices"	
		}
		track
		{
			compulsory 1
			type kuidbrowser
			filter "track"
			category "TK|SPLN"
			kind value
		}
		useadjoiningtracktype
		{
			compulsory 0
			type bool
			kind value
			default 1
		}
	}
	validation
	{
	} 
	dependencies
	{
	}
}

vertices
{
	icon vertices
	description "this is a list of attachment point of where the track will be attached"
	menu-name "Add a Vertices container"
	kind "Structure"
	unique 1
	TagArray
	{
		menu-name "Add a vertice"
		kind value
		type combobox
		compulsory 0
		source "attachment"
	}
}

scenerywithtrack-mutex
{
  icon attached-trigger
  description "Named mutexes for attached junctions"
  menu-name "Add a Mutex"
  unique 1
	array-element 
	{
		menu-name "Add a Mutex"
		container-type0 "scenerywithtrack-mutex-element"
	}
}
scenerywithtrack-mutex-element
{
	icon attached-trigger-element
	description "A named mutex for attached junctions"
	menu-name "Add an Mutex"
	kind "Structure"
	SubPossibilities
	{
	}
	validation
	{
	} 
	dependencies
	{
	}
}

attached-trigger
{
	icon attached-trigger
	description "this is a container that will hold a series of trigger"
	menu-name "Add an Attached Trigger Container"
	unique 1
	array-element 
	{
		menu-name "Add an Attached Trigger"
		container-type0 "attached-trigger-element"
	}
}
attached-trigger-element
{
	icon attached-trigger-element
	description "this is an actual attached trigger"
	menu-name "Add an Attached Trigger"
	kind "Structure"
	SubPossibilities
	{
			att
			{
				kind value
				type combobox
				compulsory 1
				source "attachment"
			}
			radius
			{
				kind value
				type int
				compulsory 1
			}
			track
			{
				kind value
				type string
				compulsory 0
			}
	}
	validation
	{
	} 
	dependencies
	{
	}
}


smoke
{
	icon smoke
	description "this is a smoke container"
	menu-name "Add a Smoke container"
	kind "Structure"
	SubPossibilities
	{
			attachment
			{
				kind value
				type combobox
				compulsory 1
				source "attachment"
			}
			mode
			{
				kind value
				type string
				compulsory 1
				default "time"
			}
			color
			{
				kind value
				type floatlist
				compulsory 1
				default 1,1,1,1
			}
			rate
			{
				kind value
				type floatlist
				compulsory 1
				default	8
			}
			velocity
			{
				kind value
				type floatlist
				compulsory 1
				default	2
			}
			direction
			{
				kind value
				type vector3
				compulsory 0
				default 0,0,0
			}
			lifetime
			{
				kind value
				type floatlist
				compulsory 1
				default	2
			}
			minsize
			{
				kind value
				type floatlist
				compulsory 1
				default	1
			}
			maxsize
			{
				kind value
				type floatlist
				compulsory 1
				default	4
			}
			drag
			{
				kind value
				type floatlist
				compulsory 0
				default	0.36
			}
			dampening
			{
				kind value
				type floatlist
				compulsory 0
				default	0.02
			}
			spring
			{
				kind value
				type floatlist
				compulsory 0
				default	0.17
			}
			mass
			{
				kind value
				type floatlist
				compulsory 0
				default	0.36
			}
			mass-scale
			{
				kind value
				type floatlist
				compulsory 0
				default	0.36
			}
			enable-steam-physics
			{
				kind value
				type bool
				compulsory 0
				default	0
			}
			physics-delay
			{
				kind value
				type floatlist
				compulsory 0
				default	0
			}
			minrate
			{
				kind value
				type float
				compulsory 0
				default 0
			}
			maxrate
			{
				kind value
				type float
				compulsory 0
				default 20
			}
			enabled
			{
				kind value
				type bool
				compulsory 0
				default	0
			}
			maxspeedkph
			{
				kind value
				type int
				compulsory 0
			}
			file
			{
				kind value
				type filepath
				datatype "effect"
				compulsory 0
			}
			accel
			{
				kind value
				type vector3
				compulsory 0
				default 0,0,0
			}
			period
			{
				kind value
				type floatlist
				compulsory 0
				default 0
				dependencies
				{
					mode time
				}
			}
			loop
			{
				kind value
				type float
				compulsory 0
				default -1
			}
			loopdelay
			{
				kind value
				type int
				compulsory 0
				default 5
			}
			start
			{
				kind value
				type floatlist
				compulsory 0
			}
			texture
			{
				kind value
				type kuidbrowser
				filter "texture"
				compulsory 0
				default <kuid:-1:6329>
			}
			inherit-velocity
			{
				kind value
				type float
				compulsory 0
				default 0
			}
			faces
			{
				kind value
				type combobox
				source "faces.txt"
				compulsory 0
				default "camera"
			}
			scale
			{
				kind value
				type float
				compulsory 0
				default 1
			}
			shift
			{
				kind value
				type float
				compulsory 0
				default 0
			}
			interpolate
			{
				kind value
				type bool
				compulsory 0
				default 1
			}
			endcolor
			{
				kind value
				type floatlist
				compulsory 0
				default 1,1,1,0
			}
			conesize
			{
				kind value
				type vector3
				compulsory 0
				default 0.2,0.2,1
			}
	}
	obsolete-tag
	{
		particle
		{
			kind value
			type string
		}
	}
	validation
	{

	} 
	dependencies
	{

	}
}
string-table
{
	icon string-table
	description "this is a string table that will hold a series of strings"
	menu-name "Add a String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-cn
{
	icon string-table-cn
	description "this is a string table that will hold a series of strings"
	menu-name "Add a Chinese String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-cz
{
	icon string-table-cz
	description "this is a string table that will hold a series of strings"
	menu-name "Add a Czech String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-fr
{
	icon string-table-fr
	description "this is a string table that will hold a series of strings"
	menu-name "Add a French String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-de
{
	icon string-table-de
	description "this is a string table that will hold a series of strings"
	menu-name "Add a German String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-it
{
	icon string-table-it
	description "this is a string table that will hold a series of strings"
	menu-name "Add an Italian String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-pl
{
	icon string-table-pl
	description "this is a string table that will hold a series of strings"
	menu-name "Add a Polish String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-ru
{
	icon string-table-ru
	description "this is a string table that will hold a series of strings"
	menu-name "Add a Russian String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-es
{
	icon string-table-es
	description "this is a string table that will hold a series of strings"
	menu-name "Add a Spanish String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
string-table-nl
{
	icon string-table-nl
	description "this is a string table that will hold a series of strings"
	menu-name "Add a Dutch String Table"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add String Table Element"
		kind value
		type doublestring
		compulsory 0
	}
}
flowsize
{
	icon flowsize
	menu-name "Add a Flowsize Container"
	description ""
	unique 1
	kind "structure"
	subpossibilities
	{
		trainbrakepipe
		{
			kind value
			type int
			compulsory 1
			default 170000
		}
		epreservoirpipe
		{
			kind value
			type float
			compulsory 1
			default 0.1
		}
		no3pipe
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		no4pipe
		{
			kind value
			type float
			compulsory 1
			default 0.1
		}
		auxreservoirvent
		{
			kind value
			type float
			compulsory 1
			default 0.1
		}
		auxreservoir_no3
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		auxreservoir_trainbrakepipe
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		autobrakecylindervent
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		auxreservoir_autobrakecylinder
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		equaliser_mainreservoir
		{
			kind value
			type float
			compulsory 1
			default	0.06
		}
		equaliservent
		{
			kind value
			type float
			compulsory 1
			default	0.06
		}	
		equaliserventhandleoff
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}	
		equaliserventemergency
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}		
		no3pipevent
		{
			kind value
			type float
			compulsory 1
			default	1.5
		}		
		no3pipe_mainreservoir
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}		
		compressor
		{
			kind value
			type int
			compulsory 1
			default 5
		}
		trainbrakepipe_reservoir
		{
			kind value
			type int
			compulsory 1
			default 1
		}
		trainbrakepipevent
		{
			kind value
			type float
			compulsory 1
			default 0.06
		}
		no3pipe_autobrakecylinder
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		epreservoirpipe_autobrakecylinder
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		mainreservoir_ep
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		vacuumbrakepipe
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		vacuumbrakepipereleasevent
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		vacuumbrakepipevent
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		vacuumbrakereservoir_vacuumbrakepipe
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		vacuumbrakecylinder_vacuumbrakepipe
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
		highspeedexhauster_vacuumbrakepipe
		{
			kind value
			type float
			compulsory 1
			default	0.1
		}
	}
}
volume
{
	icon volume
	menu-name "Add a Volume Container"
	description ""
	unique 1
	kind "structur"
	subpossibilities
	{
		scale
		{
			kind value
			type float
			compulsory 1
			default	1
		}
		trainbrakepipe
		{
			kind value
			type float
			compulsory 1
			default	0.2
		}
		epreservoirpipe
		{
			kind value
			type float
			compulsory 1
			default	0.2
		}
		no3pipe
		{
			kind value
			type float
			compulsory 1
			default 0.2
		}
		no4pipe
		{
			kind value
			type float
			compulsory 1
			default 0.2
		}
		auxreservoir
		{
			kind value
			type float
			compulsory 1
			default	0.0384678
		}
		autobrakecylinder
		{
			kind value
			type float
			compulsory 1
			default	0.00969387
		}
		vacuumbrakepipe
		{
			kind value
			type float
			compulsory 1
			default	0
		}
		vacuumbrakereservoir
		{
			kind value
			type float
			compulsory 1
			default 0
		}
		vacuumbrakecylinder
		{
			kind value
			type float
			compulsory 1
			default	0
		}
		mainreservoir
		{
			kind value
			type float
			compulsory 1
			default	1
		}
		equaliser
		{
			kind value
			type float
			compulsory 1
			default 0.5
		}
		independantbrakecylinder
		{
			kind value
			type float
			compulsory 1
			default 0.0103239
		}
	}
}
pressure
{
	icon pressure
	menu-name "Add a Pressure Container"
	description "" 
	unique 1
	kind "structure"
	subpossibilities
	{
		scale
		{
			kind value
			type float
			compulsory 1
			default 1
		}
		compressor
		{
			kind value
			type float
			compulsory 1
			default 0.00946941
		}
		mainreservoir
		{
			kind value
			type float
			compulsory 1
			default	0.00946941
		}
		highspeedexhauster
		{
			kind value
			type float
			compulsory 1
			default	0
		}
		brakepipe
		{
			kind value
			type float
			compulsory 1
			default	0.00595441
		}
		brakeinitial
		{
			kind value
			type float
			compulsory 1
			default 0.00560291
		}
		brakefull
		{
			kind value
			type float
			compulsory 1
			default	0.00398601
		}
		indbrakefull
		{
			kind value
			type float
			compulsory 1
			default	0.00398601
		}
		trainbrakepipe_start
		{
			kind value
			type float
			compulsory 1
			default	0.00440781
		}
		epreservoirpipe_start
		{
			kind value
			type float
			compulsory 1
			default	0
		}
		no3pipe_start
		{
			kind value
			type float
			compulsory 1
			default	0
		}
		no4pipe_start
		{
			kind value
			type float
			compulsory 1
			default 0
		}
		auxreservoir_start
		{
			kind value
			type float
			compulsory 1
			default	0.00504051
		}
		autobrakecylinder_start
		{
			kind value
			type float
			compulsory 1
			default 0.00489991
		}
		vacuumbrakepipe_start
		{
			kind value
			type float
			compulsory 1
			default 0
		}
		vacuumbrakereservoir_start
		{
			kind value
			type float
			compulsory 1
			default 0
		}
		vacuumbrakecylinder_start
		{
			kind value
			type float
			compulsory 1
			default	0
		}
		mainreservoir_start
		{
			kind value
			type float
			compulsory 1
			default	0.00876641
		}
		equaliser_start
		{
			kind value
			type float
			compulsory 1
			default	0.00440781
		}
		independantbrakecylinder_start
		{
			 kind value
			 type float
			 compulsory 1
			 default 0.00489991
		}
	}
}
mass
{
	icon mass
	menu-name "Add a Mass Container"
	description "" 
	unique 1
	kind "structure"
	subpossibilities
	{
		scale
		{
			kind value
			type float
			compulsory 1
			default	1
		}
		fuel
		{
			kind value
			type float
			compulsory 1
			default	6.215e+066
		}
	}
}
motor
{
	icon motor
	menu-name "Add a Motor Container"
	description "" 
	unique 1
	kind "structure"
	subpossibilities
	{
		resistance
		{
			kind value
			type float
			compulsory 1
			default	1.7
		}
		adhesion
		{
			kind value
			type float
			compulsory 1
			default	5
		}
		maxvoltage
		{
			kind value
			type float
			compulsory 1
			default	600
		}
		maxspeed
		{
			kind value
			type float
			compulsory 1
			default	33.3
		}
		brakeratio
		{
			kind value
			type int
			compulsory 1
			default	55000
		}
		max-accel
		{
			kind value
			type int
			compulsory 1
			default	3500
		}
		max-decel
		{
			kind value
			type float
			compulsory 1
			default	9000
		}
		throttle-notches
		{
			kind value
			type float
			compulsory 1
			default 8
		}
		axle-count
		{
			kind value
			type int
			compulsory 1
			default	6
		}
		surface-area
		{
			kind value
			type float
			compulsory 1
			default	80
		}
		moving-friction-coefficient
		{
			kind value
			type float
			compulsory 1
			default	0.03
		}
		air-drag-coefficient
		{
			kind value
			type float
			compulsory 1
			default 0.00017
		}
		full-throttle-speed
		{
			kind value
			type float
			compulsory 1
			default 33.0
		}
		driving-wheel-weight-ratio
		{
			kind value
			type float
			compulsory 0
			default 1
		}
	}
}
throttle-power
{
	icon throttle-power
	menu-name "Add a Throttle Power Container"
	description "" 
	unique 1
	kind "structure"
	subpossibilities
	{
		notches
		{
			kind element
			element-type "notches"
			numarray 1
		}	
	}
}
dynamic-brake
{
	icon dynamic-brake
	menu-name "Add a Dynamic Brake Container"
	description "" 
	unique 1
	kind "structure"
	subpossibilities
	{
		notches
		{
			kind element
			element-type "notches"
			numarray 1
		}		
	}
}

notches
{
	icon notches
	menu-name "Add a Notches Container"
	description "" 
	kind "array"

	TagArray
	{
		menu-name "Add a Speed"
		kind value
		type doublestring
		compulsory 0
	}
}

steam
{
	icon steam
	menu-name "Add a Steam Container"
	description "" 
	kind "structure"
	unique 1
	subpossibilities
	{
		boiler-volume
		{
			kind value
			type float
			compulsory 1
			default 10
		}		
		burn-rate
		{
			kind value
			type float
			compulsory 1
			default 0.5
		}
		burn-rate-idle
		{
			kind value
			type float
			compulsory 1
			default 0.01
		}
		firebox-heating-surface-area
		{
			kind value
			type float
			compulsory 1
			default 20
		}
		firebox-efficiency
		{
			kind value
			type float
			compulsory 1
			default 0.75
		}
		firebox-thermal-conductivity
		{
			kind value
			type float
			compulsory 0
			default 10
		}
		firebox-plate-thickness
		{
			kind value
			type float
			compulsory 0
			default 0.016
		}
		fuel-energy
		{
			kind value
			type float
			compulsory 0
			default 27912000
		}
		fuel-specific-heat-capacity
		{
			kind value
			type float
			compulsory 0
			default 1260
		}
		initial-boiler-temperature
		{
			kind value
			type int
			compulsory 0
			default 373
		}		
		max-coal-mass
		{
			kind value
			type int
			compulsory 1
			default 1000
		}
		ideal-coal-mass
		{
			kind value
			type float
			compulsory 1
			default 500
		}
		min-fire-temperature
		{
			kind value
			type float
			compulsory 0
			default 500
		}
		max-fire-temperature
		{
			kind value
			type float
			compulsory 1
			default 1300
		}
		minimum-volume
		{
			kind value
			type int
			compulsory 0
			default 8
		}
		maximum-volume
		{
			kind value
			type int
			compulsory 0
			default 9
		}
		fusible-plug-volume
		{
			kind value
			type int
			compulsory 0
			default 7.5
		}
		boiler-heat-loss
		{
			kind value
			type float
			compulsory 0
			default 2.0
		}
		piston-angular-offsets
		{
			kind value
			type floatlist
			compulsory 1
			default 0.0174,1.5254,3.0333,4.5413
		}
		piston-volume-min
		{
			kind value
			type float
			compulsory 1
			default 0.0272
		}
		piston-volume-max
		{
			kind value
			type float
			compulsory 1
			default 0.1505
		}
		piston-area
		{
			kind value
			type float
			compulsory 1
			default 0.1734
		}
		safety-valve-low-pressure
		{
			kind value
			type float
			compulsory 1
			default 1653
		}
		safety-valve-low-flow
		{
			kind value
			type float
			compulsory 0
			default 0.05
		}
		safety-valve-high-pressure
		{
			kind value
			type float
			compulsory 1
			default 1684
		}
		safety-valve-high-flow
		{
			kind value
			type float
			compulsory 0
			default 0.1
		}		
		shovel-coal-mass
		{
			kind value
			type float
			compulsory 0
			default 5
		}
		water-injector-rate
		{
			kind value
			type float
			compulsory 1
			default 3.0
		}
		water-injector-rate2
		{
			kind value
			type float
			compulsory 0
			default 3.0
		}
		boiler-efficency-idle
		{
			kind value
			type float
			compulsory 1
			default 0.75
		}
		boiler-efficency
		{
			kind value
			type float
			compulsory 1
			default 0.4
		}
		boiler-efficency-min
		{
			kind value
			type float
			compulsory 1
			default 0.25
		}
		speed
		{
			kind value
			type float
			compulsory 1
			default 15
		}
		cutoff
		{
			kind value
			type float
			compulsory 1
			default 0.4
		}
		blower-effect
		{
			kind value
			type float
			compulsory 1
			default 0.5
		}
		blower-max-flow
		{
			kind value
			type float
			compulsory 1
			default 2.5
		}
		starting-coal
		{
			kind value
			type float
			compulsory 0
			default 500
		}
		starting-water
		{
			kind value
			type float
			compulsory 0
			default 7500.0
		}
		starting-boiler-steam
		{
			kind value
			type float
			compulsory 0
			default 10.0
		}
		steam-chest-volume
		{
			kind value
			type float
			compulsory 1
			default 0.1233
		}
		steam-chest-max-flow
		{
			kind value
			type float
			compulsory 1
			default 25.0
		}
		valve-lap-percent
		{
			kind value
			type float
			compulsory 1
			default 0.05
		}
		hand-brake-max-force
		{
			kind value
			type float
			compulsory 1
			default 1000
		}
		super-heating-constant
		{
			kind value
			type float
			compulsory 1
			default 100
		}
		tractive-effort-constant
		{
			kind value
			type float
			compulsory 0
			default 0.8
		}
		number-cylinders
		{
			kind value
			type int
			compulsory 1
			default 2
			validation
			{
				IsPositive
				IsNotZero
			}
		}
		number-power-strokes
		{
			kind value
			type int
			compulsory 1
			default 2
			validation
			{
				IsPositive
				IsNotZero
			}
		}
		legacy-piston-count
		{
			kind value
			type int
			compulsory 0
			default 4
			validation
			{
				IsPositive
				IsNotZero
			}
		}
	}
	obsolete-tag
	{
		max-fire-coal-mass
		{
			kind value
			type float
		}
		boiler-to-piston-flow
		{
			kind value
			type float
			compulsory 0
			default 0.0017
		}
		firebox-to-boiler-heat-flow
		{
			kind value
			type float
		}
		firebox-to-boiler-heat-flow-idle
		{
			kind value
			type float
		}		
		firebox-volume
		{
			kind value
			type float
		}
		main-reservoir-volume
		{
			kind value
			type float
		}
		piston-to-atmosphere-flow
		{
			kind value
			type float
		}
		westinghouse-volume
		{
			kind value
			type int
		}
	}
}

driver-settings
{
	icon driver-settings
	menu-name "Add a Driver Settings Container"
	description "" 
	kind "structure"
	unique 1
	subpossibilities
	{
		autopilotmode
		{
			kind value
			type bool
			compulsory 1
		}
		startingtime
		{
			kind value
			type float
			compulsory 1
			default 0
			validation
			{
				range
				{
					min 0
					max 1
				}
			}
		}
		timerate
		{
			kind value
			type int
			compulsory 1
			default 1
		}
		deraillevel
		{
			kind value
			type intcombobox
			compulsory 1
			source "deraillevel.txt"
		}

		showhelp
		{
			kind value
			type bool
			compulsory 1
		}
		controlmethod
		{
			kind value
			type intcombobox
			compulsory 1
			source "controlmethod.txt"
		}
		weather
		{
			kind value
			type intcombobox
			compulsory 1
			source "weather.txt"
		}
		changeability
		{
			kind value
			type intcombobox
			compulsory 1
			source "changeability.txt"
		}
	}
}

world-origin
{
	icon world-origin
	menu-name "Add World Origin"
	description ""
	kind "Structure"
	unique 1
	subpossibilities
	{
		latitude
		{
			kind value
			type vector3
			compulsory 1
			default	27,28,-1
		}
		longitude
		{
			kind value
			type vector3
			compulsory 1
			default	153,2,1
		}
		altitude
		{
			kind value
			type float
			compulsory 1
			default	0
		}
	}
}

textures
{
	icon textures
	description "this is a container that hold a series of texture file"
	menu-name "Add Textures container"
	kind "Structure"
	TagArray
	{
		menu-name "Add a Texture"
		kind value
		type filepathedit
		datatype "image"
		compulsory 0
	}
}

thumbnails
{
	icon thumbnails
	menu-name "Add a Thumbnails Container"
	description "" 
	unique 1
	kind "structure"
   array-element
   {
     container-type0 "thumbnails-element"
   }
   validation
   {
		UniqueNames
   } 
}

thumbnails-element
{
	icon thumbnails-element
	menu-name "Add a thumbnail"
	description "" 
	kind "array"
	subpossibilities
	{
		image
		{
			kind value
			type filepathedit
			datatype "image"
			compulsory 1
		}
		width
		{
			kind value
			type int
			compulsory 1
		}
		height
		{
			kind value
			type int
			compulsory 1
		}
	}
}

privileges
{
	icon privileges
	menu-name "Add Privileges"
	description "" 
	kind "array"
	unique 1
	subpossibilities
	{
		permit-commit 
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		permit-edit 
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
		permit-listing 
		{
			kind value
			type bool
			compulsory 0
			default 1
		}
	}
}

extensions
{
	icon extensions
	menu-name "Add Extensions"
	unique 1
	kind "structure"
	array-element
	{
		container-type0 "extensions-element"
	}
		TagArray
	{
		menu-name "Add Custom Tag"
		kind value
		type doublestring
		compulsory 0
	}
}

extensions-element
{
	icon extensions-element
	menu-name "Add extension"
	kind "array"
	array-element
	{
		container-type0 "extensions-element"
	}
	TagArray
	{
		menu-name "Add Custom Tag"
		kind value
		type doublestring
		compulsory 0
	}
}

track-sound
{
   icon track-sound
   description "this is a container that hold the track sound that you will be adding to this kind"
   menu-name "Add a Track Sound"
   unique 1
   array-element
   {
     container-type0 "track-sound-element"
   }
   validation
   {
		UniqueNames
   }  
}

track-sound-element
{
	icon track-sound-element
	menu-name "Add a Track Sound Container"
	kind "structure"
	subpossibilities
	{
		track
		{
			kind value
			type kuidbrowser
			filter "track"
			compulsory 0
		}
		track-parent
		{
			kind value
			type kuidbrowser
			filter "track"
			compulsory 0
		}
		bogey
		{
			kind value
			type kuidbrowser
			filter "bogey"
			compulsory 0
		}
		
		track-sound
		{
			kind value
			type kuidbrowser
			filter "tracksound"
			compulsory 1
		}
		priority
		{
			kind value
			type int
			compulsory 1
			default 0
		}
	}
}

steam-power
{
	icon steam-power
	description "this is a list of steam power"
	menu-name "Add a Steam-Power"
	unique 1
	kind "Structure"
	TagArray
	{
		menu-name "Add a Coordinate Element"
		kind value
		type vector2
		compulsory 0
	}
}
