It appears the prevailing mechanism for DMs over #ActivityPub is just direct Notes. Misskey/Firefish mark it as a DM with a non-standard field. Pixelfed either doesn't have any DM distinguisher, or it uses a different non-standard field. Pleroma uses a non-standard type ChatMessage and appears to apply certain special logistics to it (i.e. only one person, and it must be a single Actor, may be specified, and only in the to field).
Maybe the mechanism for Babilejo will aim for maximum compatibility with "type": ["Note", "ChatMessage", "https://joinbabilejo.org/ns/type#ChatMessage"], the Misskey special field, and treating the Babilejo ChatMessage type (and the Pleroma ChatMessage type) as a descendant of Note. That way, I don't have to have any special compatibility mode (as long as all the popular projects are spec-compliant, accepting multiple types...)
076萌SNS is a social network, courtesy of 076. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All 076萌SNS content and data are available under the Creative Commons Attribution 3.0 license.