The preferred way to implement this on a Protocol level would be for the client to announce the Mime Types that it will accept when it Joins or Subscribes to a context. The _format variable is used with values like _HTML to indicate the kinds of content that a client is willing to receive. Multiple _format declarations are assumed to be ordered by preference with highest preference first, but applications may choose to send content in any format accepted. It is always assumed that the client will accept _text and _surf formats, so if these are specified then it is indicative of preference.
Chat Applications implemented in psyced programmable rooms should use Inheritance rules to determine what format to send to the client. Applications are not required to respect preference order, but should do so when reasonable for the content served.
Content formats like HTML that have a root element will replace the current contents of the content window when the root element is included. In the absence of a root element, the content of a new message is inserted into the content window at an arbitrary point (usually at the end of the document).
The application should favor psyc:// URIs for linked content where possible, but may specify other protocols as necessary.
Miscellaneous Implementation Details
Content types are likely to include _HTML, _JSON, _text and _surf initially. Library support makes implementation attractive for _XML, _SVG, and a couple other content types.