I'm not totally sure what to do with the special value of 0 for StartObject and EndObject.
If StartObject == 0, that's requesting the whole group. But if it's 1, that maps to a first object of zero, which is also consistent with requesting the whole group.
For EndObject, the special value makes sense, because the subscriber might not know how many objects there are.
There's also the error case where StartObject == 0 and EndObject != 0, or the reverse.
IMO it would make more sense for EndObject to have the special value at zero, but not StartObject.
I'm not totally sure what to do with the special value of 0 for StartObject and EndObject.
If StartObject == 0, that's requesting the whole group. But if it's 1, that maps to a first object of zero, which is also consistent with requesting the whole group.
For EndObject, the special value makes sense, because the subscriber might not know how many objects there are.
There's also the error case where StartObject == 0 and EndObject != 0, or the reverse.
IMO it would make more sense for EndObject to have the special value at zero, but not StartObject.