If you need your structs to interoperate with C code, the extern struct in Zig is your friend. Although it is restricted to adhere to the target C ABI, it will allow you to use all the power of structs in Zig while being able to use those same structs on the C side.