opaque structs for 1.1.0 compatibility (#3109)

We're so close.
3 files changed