[ ] Good question on SO reveals that C standard says fields not specified are zero. Since these are interface function pointers, we don't really want that. A linter using pycparser could scan the struct defintiions and every initialization by value to verify we set all the fields.
[ ] Any function or macro in API should be prefixed sd_
sd_
static