This is probably because the .h file defines it as an opaque struct:
struct gwnet_ctxt;
so effectively the C header wants to make the struct fields private.
If you copy the full definition to the .h file, or generate bindings from the .c file, you should get the full definition. But beware ā if the header tried to hide the fields, there may be a good reason for it.
The binding with "_unused" field is fine if you only plan to use pointers to this struct. This is often the right solution, as libraries offer functions to access the struct via an opaque pointer, instead of allowing the struct fields to be accessed directly.