If I did so it was just a force of habit, as it would be inconsistent with the rest of X3 that uses structs with public members. That said, I'd be glad if the decision is to consistently use private members, possibly with names starting or ending in an underscore. All those members are implementation details so private or not the user should not be touching them, but it would be nice to have some guarantee that no other implementation detail is relying on them.