void PointPartialHostData::deserialize(Message::Document& d) {
    if (d.IsObject()) {
        if (d.HasMember("data")) {
            Message::Value& v = d["data"];
            if (v.IsArray()) {
                data.clear();
                for (Message::SizeType i = 0; i < v.Size(); i++) {
                    PointData<HostData> pd;
                    pd.deserialize(v[i]);
                    data.push_back(pd);
                }
            }
        }
    }
}