ENGINE uses a very opaque design, so we can predeclare the structure type