---
#------------------------------------------------------------
# This is the schema for offline product configuration v 2.0
#------------------------------------------------------------

#------------------------------------------------------------
# Type alias
#------------------------------------------------------------
type_alias:
  #------------------------------------------------------------
  # Executable description types
  #------------------------------------------------------------
  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:
      working_directory:
        type: working_directory_type
        required: yes
      description:
      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

  #------------------------------------------------------------
  # Root type
  #------------------------------------------------------------
  root_type:
    type: map
    map_schema:
      name:
        required: yes
      thumb_image:
        required: yes
      start_game:
        type: start_game_type
        required: yes
      

#--------------------------------------------------------------
# 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