Currently, only certain fields are available to the isolate on launch. These fields are currently present in the RuntimeController::WindowData struct. While the data in that struct is meant to persist across isolate restarts, the engine doesn't care what that data looks like. Also, when embedders want to add new fields to that struct, they need to patch the engine. The engine should instead deal with data mappings directly and function as a dumb pipe for launch information specified by the embedders and made available to the isolate on launch.