** Please make sure you read the contribution guide and file the issues in the right place. **
Contribution guide.
Is your feature request related to a specific problem?
1.Based on the following source code reading, in the logic of converting invocationContext to Message using EventConverter.convertEventsToA2AMessage:
Optional<Message> a2aMessageOpt = com.google.adk.a2a.EventConverter.convertEventsToA2AMessage(invocationContext);
metadata is not assigned. Therefore, will the following code always return a null case:
Map<String, Object> metadata = originalMessage.getMetadata() == null ? Map.of() : originalMessage.getMetadata();
Is it possible to convert invocationContext.session.state to the metadata of the Message, as additional information in the communication protocol between the client agent and the server agent? like this:

2.Multiple agents communicate via the A2A protocol, using a synchronous blocking approach.
Due to the time-consuming nature of this communication, which negatively impacts user experience, it is recommended to replace the synchronous approach with SSE streaming output. Simultaneously, the client should use a pre-implemented streaming HTTP request to establish connections.
Describe the Solution You'd Like
Some of the solution code logic is above.