Use opaque trunnel structures?
Trunnel can generate code in "opaque mode" that hides all structure definitions and forces you to use accessor functions. In his review of #12498 (moved), dgoulet points out that I am a bit sloppy with using accessors for trunnel structures.
IMO, we should decide whether our coding style requires the use of accessors. I hadn't thought that it did, but if we make that decisions, we should force accessor use by making structures opaque.