in procgen/src/entity.cpp [90:134]
void Entity::serialize(WriteBuffer *b) {
b->write_float(x);
b->write_float(y);
b->write_float(vx);
b->write_float(vy);
b->write_float(rx);
b->write_float(ry);
b->write_int(type);
b->write_int(image_type);
b->write_int(image_theme);
b->write_int(render_z);
b->write_int(will_erase);
b->write_int(collides_with_entities);
b->write_float(collision_margin);
b->write_float(rotation);
b->write_float(vrot);
b->write_int(is_reflected);
b->write_int(fire_time);
b->write_int(spawn_time);
b->write_int(life_time);
b->write_int(expire_time);
b->write_int(use_abs_coords);
b->write_float(friction);
b->write_int(smart_step);
b->write_int(avoids_collisions);
b->write_int(auto_erase);
b->write_float(alpha);
b->write_float(health);
b->write_float(theta);
b->write_float(grow_rate);
b->write_float(alpha_decay);
b->write_float(climber_spawn_x);
// not implemented, only used by fruitbot
// std::weak_ptr<Entity> relative;
}