@Override
 public void fromBytes(ByteBuf buf) {
   entityID = buf.readInt();
   componentID = buf.readInt();
   if (buf.readBoolean()) ident = TrackIdentifier.deserialize(buf);
   progress = buf.readFloat();
 }
 @Override
 public void toBytes(ByteBuf buf) {
   buf.writeInt(entityID);
   buf.writeInt(componentID);
   buf.writeBoolean(ident != null);
   if (ident != null) ident.serializeBuf(buf);
   buf.writeFloat(progress);
 }