EntityProperties is not list/aggregate initializable
EntityProperties
has a user-defined defaulted virtual destructor despite being a simple data structure (no other methods).
struct EntityProperties {
virtual ~EntityProperties() = default;
// ...
};
This makes it and all classes that inherit from it (PedestrianProperties, StaticObjectProperties, VehicleProperties) non-aggregate types, meaning the only permitted constructors are user-defined and default constructors, and none of them have user-defined constructors.
In their current state, these classes produce unnecessary boilerplate code and twice as many assignments as needed. The virtual destructor should be removed, as it serves no purpose.