From cc8128edad051b4f042b83c95c1604d793d99f0b Mon Sep 17 00:00:00 2001 From: Victor Berger Date: Fri, 3 Nov 2017 17:03:37 +0100 Subject: [PATCH] Specify namespaces for tags This is a proposition for closing #931. This should be a fairly uncontroversial addition (apart from bike-shedding), which only defines behavior for clients that want use tags or expose tagging functionality to their users. The idea of adding this to the spec is to ensure clients can peacefully share the tag namespace without conflicting with each other, using rules similar to namespaces for state keys. --- specification/modules/tags.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/specification/modules/tags.rst b/specification/modules/tags.rst index f0a7fa52..31b3b711 100644 --- a/specification/modules/tags.rst +++ b/specification/modules/tags.rst @@ -56,6 +56,14 @@ Two special names are listed in the specification: {{m_tag_event}} +Tags namespaces are defined in the following way, depending on how the client are expected to interpret them: + +* The namespace ``m.*`` is reserved for tags defined in the current specification +* The namespace ``u.*`` is reserved for user-defined tags, and the client should not try to interpret as anything other than an utf8 string +* A client or app willing to use special tags for advanced functionnality should namespace them similarly to state keys: ``tld.name.*`` +* Any tag in the ``tld.name.*`` form but not matching the namespace of the current client should be ignored +* Any tag not matching the previous rules should be interpreted as an user tag from the ``u.*`` namespace + Client Behaviour ----------------