message: Parse in member order
diff: @@ -235,15 +235,15 @@ std::shared_ptr<sg::node> parse_point_light(Object const& obj)
  {
  auto light = std::make_shared<sg::point_light>();
  - vec3 position(0.0f);
  - if (obj.HasMember("position"))
  + vec3 cl(0.0f);
  + if (obj.HasMember("cl"))
  {
  - auto const& pos = obj["position"];
  + auto const& color = obj["cl"];
  int i = 0;
  - for (auto const& item : pos.GetArray())
  + for (auto const& item : color.GetArray())
  {
  - position[i++] = item.GetFloat();
  + cl[i++] = item.GetFloat();
  }
  if (i != 3)
  @@ -252,15 +252,21 @@ std::shared_ptr<sg::node> parse_point_light(Object const& obj)
  }
  }
  - vec3 cl(0.0f);
  - if (obj.HasMember("cl"))
  + float kl = 1.0f;
  + if (obj.HasMember("kl"))
  {
  - auto const& color = obj["cl"];
  + kl = obj["kl"].GetFloat();
  + }
  +
  + vec3 position(0.0f);
  + if (obj.HasMember("position"))
  + {
  + auto const& pos = obj["position"];
  int i = 0;
  - for (auto const& item : color.GetArray())
  + for (auto const& item : pos.GetArray())
  {
  - cl[i++] = item.GetFloat();
  + position[i++] = item.GetFloat();
  }
  if (i != 3)
  @@ -269,12 +275,6 @@ std::shared_ptr<sg::node> parse_point_light(Object const& obj)
  }
  }
  - float kl = 1.0f;
  - if (obj.HasMember("kl"))
  - {
  - kl = obj["kl"].GetFloat();
  - }
  -
  float constant_attenuation = 1.0f;
  if (obj.HasMember("constant_attenuation"))
  {
  