game
  result(__type="u8") 0
  name(__type="str") #{name}
  code(__type="str") #{code}
  sdvx_id(__type="str") #{code}
  gamecoin_packet(__type="u32") #{packets}
  gamecoin_block(__type="u32") #{blocks}
  appeal_id(__type="u16") #{appeal}

  last_music_id(__type="s32") #{musicID}
  last_music_type(__type="u8") #{musicType}
  sort_type(__type="u8") #{sortType}
  headphone(__type="u8") #{headphone}
  blaster_energy(__type="u32") #{blasterEnergy}
  blaster_count(__type="u32") 0
  extrack_energy(__type="u16") #{extrackEnergy}

  hispeed(__type="s32") #{hiSpeed}
  lanespeed(__type="u32") #{laneSpeed}
  gauge_option(__type="u8") #{gaugeOption}
  ars_option(__type="u8") #{arsOption}
  notes_option(__type="u8") #{notesOption}
  early_late_disp(__type="u8") #{earlyLateDisp}
  draw_adjust(__type="s32") #{drawAdjust}
  eff_c_left(__type="u8") #{effCLeft}
  eff_c_right(__type="u8") #{effCRight}
  narrow_down(__type="u8") #{narrowDown}

  kac_id(__type="str") #{name}

  skill_level(__type="s16") #{skill.level}
  skill_type(__type="s16") #{skill.stype}
  skill_base_id(__type="s16") #{skill.base}
  skill_name_id(__type="s16") #{skill.name}
  
  ea_shop
    packet_booster(__type="s32") 1
    if version < 5
      block_booster(__type="s32") 1
    if version >= 5
      blaster_pass_enable(__type="bool") #{blasterpass}
      blaster_pass_limit_date(__type="u64") #{currentTime}
  
  eaappli
    relation(__type="s8") 1
  cloud
    relation(__type="s8") 1
  block_no(__type="s32") 0

  skill
    each course in courses
      course
        ssnid(__type="s16") #{course.sid}
        crsid(__type="s16") #{course.cid}
        st(__type="s16") #{course.skill_type}
        sc(__type="s32") #{course.score}
        ex(__type="s32") #{course.exscore}
        ct(__type="s16") #{course.clear}
        gr(__type="s16") #{course.grade}
        ar(__type="s16") #{course.rate}
        cnt(__type="s16") #{course.count}

  item
    each item in items
      info
        type(__type="u8") #{item.type}
        id(__type="u32") #{item.id}
        param(__type="u32") #{item.param}

    //- Unlock automation songs
    each song in automation
      info
        type(__type="u8") 15
        id(__type="u32") #{song}
        param(__type="u32") 1

  param
    each param in params
      info
        type(__type="s32") #{param.type}
        id(__type="s32") #{param.id}
        param(__type="s32" __count=param.param.length) #{param.param.join(" ")}
    
    //- Akaname
    each id in [0, 1, 2]
      info
        type(__type="s32") 6
        id(__type="s32") #{id}
        param(__type="s32" __count="1") #{akaname}

  play_count(__type="u32") 1001
  day_count(__type="u32") 301
  today_count(__type="u32") 21
  play_chain(__type="u32") 31
  max_play_chain(__type="u32") 31
  week_count(__type="u32") 9
  week_play_count(__type="u32") 101
  week_chain(__type="u32") 31
  max_week_chain(__type="u32") 31

  creator_item
    info
      creator_type(__type="u32") #{appeal_frame}
      item_id(__type="u32") 0
      param(__type="u32") 0


  arena
    last_play_season(__type="s32") 3
    rank_point(__type="s32") 30000
    shop_point(__type="s32") 0
    ultimate_rate(__type="s32") 0
    rank_play_cnt(__type="s32") 1
    ultimate_play_cnt(__type="s32") 1
  
  //- additional_info

  support_team_id(__type="s32") #{support_team}

  if mixes
    each mix in mixes
      automation
        mix_id(__type="s32") #{mix.id}
        mix_code(__type="str") #{mix.code}
        seq(__type="str")
        mix_name(__type="str") #{mix.name}
        player_name(__type="str") #{mix.creator}
        generate_param(__type="str") #{mix.param}
        distribution_date(__type="u32") 20200101
        jacket_id(__type="s32") #{mix.jacket}
        tag_bit(__type="s32") #{mix.tag}
        like_flg(__type="u8") 0
  