diff --git a/index.bs b/index.bs
index 60a8df3fe..d18e35a6c 100644
--- a/index.bs
+++ b/index.bs
@@ -474,8 +474,22 @@ An implementation may define extension modules. These must hav
[=module name=] that contains a single colon ":
" character. The
part before the colon is the prefix; this is typically the same for all
[=extension modules=] specific to a given implementation and should be unique for a
-given implementation. Such modules extend the [=local end definition=] and [=remote end definition=]
-providing additional groups as choices for the defined [=commands=] and [=events=].
+given implementation.
+Such modules extend the [=local end definition=] and [=remote end definition=]
+providing additional groups as choices for the defined [=commands=], [=events=] and types.
+
+External specifications may define their own modules that
+extend the protocol.
+The recommendation is that such modules should have a [=module name=] that does
+not contain a colon ":
" character, and that it is preferred
+to add new modules or commands rather than extending existing ones.
+Such modules may extend the [=local end definition=] and [=remote end definition=] providing
+additional groups as choices for the defined [=commands=], [=events=] and types.
+
+When defining [=extension modules=], implementers should consider the
+possibility of future standardization of the module. If the module is
+likely to be standardized in the future, implementers should use a
+[=module name=] that does not contain a colon ":
" character.
## Commands ## {#commands}
@@ -9630,7 +9644,7 @@ end:
## Console ## {#patches-console}
-Other specifications can define console steps.
+Other specifications can define console steps.
1. At the point when the [=Printer=] operation is called with
arguments |name|, |printerArgs| and |options| (which is undefined if the