Setting array of class RecombeeAdmin args desc

$setting = array(
	page_title		=> browser page title | text | optional,
	warning			=> if true warning content will be outputed instead of defaults settings | bool | required,
	menu_name		=> admin menu name | text | optional,
	page_slug		=> url page slug name | text | required,
	page_h2			=> admin page heading h2 content | text | optional,
	capability		=> permition to view the page | WP capabilities | required,
	menu_type		=> where menu should appears: 'single' - standalone mode, 'network' - multisite mode | required
	setting_preset	=> option name to store in DB, see update_option() & update_site_option() | required
	dashicons		=> see add_menu_page() - $icon_url arg | optional
	priority		=> menu point priority | int | optional
	controls		=> tabs inside the menu page array( 
		'tab_name' | text => 'tab_content' | array(
			'id'		=> 'tab_id' | text | should be uniq accross of $setting array,
			'controls'	=> array(
			
								-- could be SELECT --
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'title'			=> field title | string | required,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'default'		=> default option name | string | required,
					'default_value'	=> default option value | string | required,
					'tip'			=> field title | string | required,
					'type'			=> 'select',
					'select_multi'	=> false,
					'options'		=> array( key | string => value | string),
				),
				
								-- or SELECT MULTI --
				
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'title'			=> field title | string | required,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'default'		=> default option name | string | required,
					'default_value'	=> default option value | string | required,
					'tip'			=> field title | string | required,
					'type'			=> 'select',
					'select_multi'	=> true,
					'options'		=> array( key | string => value | string), uses * in value to force option become disabled
				),
				
								-- or TEXT --
				
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'title'			=> field title | string | required,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'placeholder'	=> html attribute placeholder | string | required,
					'tip'			=> '',
					'diable'		=> html attribute Disabled | bool | optional,
					'type'			=> 'text',
				)
				
								-- or NUMBER --
				
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'title'			=> field title | string | required,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'placeholder'	=> html attribute placeholder | string | required,
					'tip'			=> '',
					'diable'		=> html attribute Disabled | bool | optional,
					'min'			=> html attribute Min | double | required | false for null,
					'max'			=> html attribute Max | double | required | false for null,
					'step'			=> html attribute Step | double | required | false for null,
					'type'			=> 'number',
				)
				
								-- or HIDDEN --
				
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'type'			=> 'hidden',
				)
				
				
								-- or TEXTAREA --
				
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'title'			=> field title | string | required,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'placeholder'	=> html attribute placeholder | string | required,
					'tip'			=> field title | string | required,
					'type'			=> 'textarea',
				),
				
								-- or CHECKBOX --
				
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'title'			=> field title | string | required,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'descr'			=> field description | string | required,
					'tip'			=> field title | string | required,
					'type'			=> 'checkbox',
				),
				
								-- or BUTTON --
								
				array(
					'id'			=> html attribute ID | string | optional,
					'name'			=> html attribute NAME | string | required,
					'title'			=> field title | string | required,
					'tip'			=> field title | string | required,
					'diable'		=> html attribute Disabled | bool | optional,
					'class'			=> html attribute class | Array | optional,
					'data'			=> html attribute data-xxx | array | optional -
									   value of 'save-val' key overrides value and goes in DB,
					'value'			=> field title | string | required,
					'type'			=> 'submit',
				),
								-- or CONTENT --
								
				'callback'			=> function to output content,
				'type'				=> 'content',
			),
		),
	)
)