NOTE: ideally, we would not want to leak engine server client like this, since the communication with engine client should only be done in this class alone. However, we need to expose the client for plugins, tests, and dev tool configurations.
For parsing of execution results, we may want to maintain the precision of the numbers coming in. To do this, we setup a custom parser for numbers, so that if the number is unsafe to convert to number (we lose precision) we will keep them as strings. This is useful when displaying the execution results.
This class defines what the engine is capable of. Right now for most engine operations, we make network calls to the engine backend. However, this might change in the future if we ever bring some engine functionalities to Studio. As such, we want to encapsulate engine client within this class.