How many more bitfields are you planning to use here? We could just make these uint8_t or uint16_t (or bool) instead, and that would be nicer to the compiler and the CPU.
Only one more for the closed bit. Sure this could be changed to some other type as long as we keep it small, if you think it really matters. Would unsigned char be better?
They tend to be better than bitfields, as I understand. I don't think there's any reason to ever use bitfields, anywhere, if using uint8_t/bool takes up just as much space.