I did it this way because the existence of a message is dependent on a messagebox, so it's actually a compound key, not a unique top-level resource. They aren't granularly permissioned and aren't referenced as a resource, so there is no value there. Everything about a message is asserted from the messagebox to which it belongs. When we reference it in the REST API it is always:

`/api/<some real resource that maps to a messagebox>/messages/<second part of the compound key (timestamp)>`

Not:

`/api/messages/<message id>`

In search they will be introduced as children of real resources such as content and discussions, not top-level search documents.

All signs to me pointed to "not a resource, so don't give it a resource id".