https://github.com/w3c/activitypub/issues/404

the Public == as:Public thing doesn’t actually work unless you redefine all the addressing properties from @type: @id to @type: @vocab (which may have other consequences?) but in any case, Public is defined in a way that it does nothing

furthermore because as is defined as a prefix, you will NEVER encounter https://www.w3.org/ns/activitystreams#Public in a properly compacted document

so the only correct way to do public addressing currently is as:Public

tangent: why are we doing pseudo-addressing anyway? [link]

why isn’t this some other property or flag somewhere on the object? what is really being signaled by the public addressing? spec-wise, it’s just that it’s available to anyone without auth. so why not have some kinda accessControl property or scope or whatever, and have that explicitly be type:vocab, and define your scopes in there?