The `Recorder` struct from the `vmwithcontracts` example should be moved into the core of the hyper-sdk because it's likely useful for _all_ vms. _Originally posted by @aaronbuchwald in https://github.com/ava-labs/hypersdk/pull/1493#discussion_r1757396124_