The offset should be sent as a separate message, not within the array of queries.
However, it is worth noting that you should only ever use an offset
that you got from a previous query. The streaming API is still a state-based API not an event-based API and not targeted at usecases like streaming all events since the beginning. Offsets are mainly there as an optimization: If you have a large ACS, streaming only the delta since the last offset can be faster than starting with a full ACS query again.
If you do really want individual transactions and events since a given ledger API offset, you have to resort to the gRPC API for now.