// report reflects model/report/BattleReport data object
namespace battle;

struct UUID {
  hi:uint64;
  lo:uint64;
}

table RaceEntry {
  key:int64;
  value:UUID (required);
}

table TechEntry {
  key:string;
  value:float32;
}

table BattleReportGroup {
  in_battle:bool;
  number:uint64;
  number_left:uint64;
  load_quantity:float32;
  tech:[TechEntry];
  race:string;
  class_name:string;
  load_type:string;
}

table ShipEntry {
  key:int64;
  value:BattleReportGroup;
}

table BattleActionReport {
  attacker:int64;
  attacker_ship_class:int64;
  defender:int64;
  defender_ship_class:int64;
  destroyed:bool;
}

table BattleReport {
  id:UUID (required);
  planet:uint64;
  planet_name:string;
  races:[RaceEntry];
  ships:[ShipEntry];
  protocol:[BattleActionReport];
}

root_type BattleReport;
