So Google has released a preview version of a new feature for Google+ called the History API... it's essentially the mechanism third party applications will use to push content into a users G+ stream... like Facebook's OpenGraph only more Googley. The details are here.
The part that is of interest to me are the underlying details of how the History API is put together. Specifically, third parties use the API by posting "Moments" to the G+ endpoint. A Moment is a JSON structure that looks like...
Does that look familiar? It should. The basic structure and abstract model for a "Moment" is virtually identical to an Activity in the Activity Streams format, but Google chose to use a modified format that, unfortunately, is not directly compatible with Activity Streams. This is unfortunate, but let's go with this for a few minutes...
Within the Moments structure, the "actor" is implied by the authentication context. The API requires OAuth and the OAuth token is tied to a particular user. The above statement implies that the authenticated user is the one who viewed the referenced YouTube video. The "type" property identifies the "verb". Google's eventual intent is to defer to verb statements defined within schema.org rather than those defined as part of the core Activity Streams schema. The "target" identifies the thing that was acted upon... The structure is fairly simple and straightforward. That part is good.
That said, a regular Activity Statement (already supported by Google+'s primary API) could have easily worked and would have been just as straightforward. For instance, suppose we went with a slightly modified form that relaxed the requirement that "actor" MUST be specified and that when doing so, the actor is implied by context... We would have...
I do not understand why a new alternative and incompatible structure was needed for this. Why diverge from a standard that Google helped create? It doesn't make sense.