---
#------------------------------------------------------------
# This is the schema for product configuration version 1.5
#------------------------------------------------------------

#------------------------------------------------------------
# Type alias
#------------------------------------------------------------
type_alias:  
  rss_feed_type:
    type: map
    map_schema:
      source:
        required: yes
      name:
        required: yes
      url_root:
        type: http
        required: yes
      title_max_length:
        type: number
        required: yes
      description_max_length:
        type: number
        required: yes

  rss_feed_list_type:
    type: list
    list_type: rss_feed_type
    
  friend_menu_item_type:
    type: map
    map_schema:
      item_id: 
        type: number
        required: yes
      string:
        type: map
        map_schema:
          en-US:
            required: yes
          sv-SE:
            required: yes
          cs-CZ:
            required: yes
          da-DK:
            required: yes
          de-DE:
            required: yes
          es-ES:
            required: yes
          fi-FI:
            required: yes
          fr-FR:
            required: yes
          hu-HU:
            required: yes
          it-IT:
            required: yes
          ja-JP:
            required: yes
          ko-KO:
            required: yes
          nb-NO:
            required: yes
          nl-NL:
            required: yes
          pl-PL:
            required: yes
          pt-PT:
            required: yes
          pt-BR:
            required: yes
          ru-RU:
            required: yes
          zh-CN:
            required: yes
          zh-TW:
            required: yes

  uplay_type:
    type: map
    map_schema:
      game_code:
        required: yes
      platform_code:
      achievements:
      achievements_ingame_notification:
        type: yesno
      friend_menu_item_list:
        type: list
        list_type: friend_menu_item_type

  working_directory_type:
    type: map
    map_schema:
      register:
      append:
        
  exe_type:
    type: map
    map_schema:
      path:
        type: map
        required: yes
        map_schema:
          relative:
          register:
      arguments_register:
      arguments:
      working_directory:
        type: working_directory_type
        required: yes
      description:
      background_image:

  online_exe_type:
    type: map
    map_schema:
      path:
        type: map
        required: yes
        map_schema:
          relative:
          register:
      arguments:
      arguments_register:
      working_directory:
        type: working_directory_type
        required: yes
      description:
      background_image:
      evil_updater:
        type: exe_type
      
  exe_list_type:
    type: list
    list_type: exe_type

  online_exe_list_type:
    type: list
    list_type: online_exe_type
      
  start_game_online_type:
    type: map
    map_schema:
      overlay_supported:
        type: yesno
      overlay_required:
        type: yesno
      after_game_report_enabled:
        type: yesno
      allow_multiple_instances:
        type: yesno
      executables:
        type: online_exe_list_type
        required: yes
        
  start_game_offline_type:
    type: map
    map_schema:
      after_game_report_enabled:
        type: yesno
      allow_multiple_instances:
        type: yesno
      executables:
        type: exe_list_type
        required: yes

  start_game_legacy_offline_type:
    type: map
    map_schema:
      executable:
        type: exe_type
        required: yes
  
  start_game_steam_type:
    type: map
    map_schema:
      overlay_supported:
        type: yesno
      overlay_required:
        type: yesno
      after_game_report_enabled:
        type: yesno
      legacy_offline_supported:
        type: yesno
      offline_supported:
        type: yesno
      offline_arguments:

  start_game_type:
    type: map
    map_schema:
      online:
        type : start_game_online_type
      offline:
        type : start_game_offline_type
      legacy_offline:
        type : start_game_legacy_offline_type
      steam:
        type: start_game_steam_type
 
  party_type:
    type: map
    map_schema:
      party_enabled:
        type: yesno
        required: yes
      max_party_size: 
        type: number

  dlc_type:
    type: map
    map_schema:
      name:
      product_id:

  third_party_platform_type:
    type: map
    map_schema:
      name:
        required: yes
      trade_mark_notice:
        required: no
        
  #------------------------------------------------------------
  # Root type
  #------------------------------------------------------------
  root_type:
    type: map
    map_schema:
      name:
        required: yes
      background_image:
        required: yes
      thumb_image:
        required: yes
      background_color:
      start_game:
        type: start_game_type
      uplay:
        type: uplay_type
      orbit_exited:
        type: yesno
      cd_key_required:
        type: yesno
      party:
        type: party_type
      news:
        type: rss_feed_list_type
      cloud_saves:
        type: yesno
        required: yes		
      facebook_url:
      homepage_url:
      help_url:
      forum_url:
      survey_url:
        type: http
        required: no
      settings_exe:
        type: exe_type
      after_game_report_ad:
        type: yesno
      windowed_mode:
        type: yesno
      force_safe_mode:
        type: yesno
      uplay_pipe_required:
        type: yesno
        required: no
      is_dlc:
        type: yesno
        required: no
      dlcs:
        type: list
        list_type: dlc_type
      third_party_platform:
        type: third_party_platform_type
      background_installer_enabled:
        type: yesno

  localization_type:
    type: map

#--------------------------------------------------------------
# Schema
#--------------------------------------------------------------
schema:
  type: map
  map_schema:
    # Specifies the version of the configuration
    version:
      required: yes
    # This is where the root of the configuration is found
    root:
      type: root_type
      required: yes
    # Localizations are optional and can be skipped
    localizations:
      type: map
      map_type: localization_type
          
