/// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="vehicle"> The vehicle this object belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialise this instance with. </param>
 /// <param name="vehiclePerformanceData"> Vehicle performance data to initialise this instance with. </param>
 public GroundVehicleTags(IDataRepository dataRepository, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags, VehiclePerformanceData vehiclePerformanceData)
     : this(dataRepository, -1L, vehicle, deserializedTags, vehiclePerformanceData)
 {
 }
 /// <summary> Creates a new transient object that can be persisted later. </summary>
 /// <param name="dataRepository"> A data repository to persist the object with. </param>
 /// <param name="id"> The objects's ID. </param>
 /// <param name="vehicle"> The vehicle this object belongs to. </param>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to initialise this instance with. </param>
 /// <param name="vehiclePerformanceData"> Vehicle performance data to initialise this instance with. </param>
 public GroundVehicleTags(IDataRepository dataRepository, long id, IVehicle vehicle, VehicleTagsDeserializedFromJson deserializedTags, VehiclePerformanceData vehiclePerformanceData)
     : base(dataRepository, id, vehicle)
 {
     InitialiseProperties(deserializedTags, vehiclePerformanceData, Vehicle.Branch.AsEnumerationItem);
     LogCreation();
 }
 /// <summary> Initialises class properties. </summary>
 /// <param name="deserializedTags"> Vehicle tags deserialized from JSON data to select subclasses from. </param>
 /// <param name="vehiclePerformanceData"> Vehicle performance data to initialise this instance with. </param>
 /// <param name="branch"> The vehicle branch for which to select subclasses. </param>
 private void InitialiseProperties(VehicleTagsDeserializedFromJson deserializedTags, VehiclePerformanceData vehiclePerformanceData, EBranch branch)
 {
     if (branch == EBranch.Army)
     {
         IsWheeled = vehiclePerformanceData.MoveType.Contains("wheeled");
         CanScout  = deserializedTags.CanScout;
     }
     InitialiseIndex();
 }