or go the other way around and make them into messages and use the same structs for "requests" and "responses" (and notifications without requests), problem is fields that are non-symmetric, for example all responses to clients do not have the "secret" parameter. But we could set that as "do not serialize". It is a useless field for a response message, though.
it should be possible to support multiple clients connected to the runtime and when client 1 modifies the graph using request and response, then client 2 should also be notified but would only get the "response" part.
... for those where it is possible