the azure function registers itself as a window and input platform
the azure function essentially runs the code as a C# script
window.Initialize brings up the EGL context // all other functions work pretty much as usual
window.GLContext.SwapBuffers will get the image from the EGL framebuffer and add it to an event queue a. on the web side, the HTML/JS component is continuously popping from this event queue b. it pops the "push frame" (or whatever i called it) event, and takes the base64 png and modifies the HTML DOM to display it
my current thinking is when you go to the try page, it calls some sort of orchestrator and gives you a dedicated container hosting a signalr hub. if nothing runs on this container in a minute, it shuts down the container and the page will need to ask the orchestrator for another one. likewise, if something runs for more than a minute, we first try to shutdown the running code cleanly but if nothing bites in 5ish seconds, we forcibly free the container.