[media-types] Re: Request for registration: application/jm d (provisional)
"HANSEN, TONY L" <[email protected]> Mon, 29 Jun 2026 13:19:32 +0000
| Newsgroups | gmane.ietf.types |
|---|---|
| Message-ID | <IA1PR02MB11007A420EC2352EAAC94AE1CD8E82@IA1PR02MB11007.namprd02.prod.outlook.com> |
As a provisional registration, the form below appears to be complete. There is no internet-draft yet corresponding to the document in GitHub. The registration template is also partially replicated in https://github.com/ostermeyer/jmd-spec/blob/main/jmd-over-http.md. Question: could text/markdown be used in its place? * Tony From: Andreas Ostermeyer <[email protected]> Date: Monday, May 11, 2026 at 12:17 PM To: [email protected] <[email protected]> Subject: [media-types] Request for registration: application/jmd (provisional) This Message is From an Unknown Sender The message sender does not frequently correspond with AT&T. To: [email protected] Subject: Request for registration: application/jmd (provisional) Dear IANA Media Types Reviewers, I am requesting the provisional registration of the media type "application/jmd" for JMD (JSON Markdown), a text-based structured data format. The registration template follows below, per RFC 6838 §5.6. Type name: application Subtype name: jmd Required parameters: None Optional parameters: charset: A charset parameter indicating the character encoding of the document. The only supported charset is "utf-8"; this is also the default when the parameter is omitted. Receivers MAY reject any other value with a 415 Unsupported Media Type response (for HTTP transport) or an equivalent error condition. version: An optional parameter carrying the JMD Specification version targeted by the document (e.g., "0.3.2"). When omitted, the receiver SHOULD assume the latest stable JMD specification version it supports. Encoding considerations: JMD is a text format and MUST be encoded as UTF-8 (RFC 3629). Documents consisting entirely of ASCII characters are 7-bit safe; documents containing non-ASCII UTF-8 byte sequences require 8-bit transport. Content-Transfer-Encoding values such as "base64" or "quoted-printable" are permitted for transport systems that require 7-bit encoding (such as historical e-mail), but are neither necessary nor recommended for modern HTTP or MCP transport. Security considerations: JMD inherits the security posture of "application/json". Specific considerations: 1. Injection into downstream rendering contexts. JMD string content is literal data, but documents may contain characters that are structurally significant in downstream contexts (HTML, SQL, shell). Receivers that render JMD content into such contexts MUST apply the appropriate escaping. This is identical to the JSON situation and is not specific to JMD. 2. Parser resource consumption. A conforming JMD parser processes documents in O(n) time and O(d) stack depth, where n is the document length in bytes and d is the maximum heading depth. Implementations SHOULD enforce a practical bound on d (a reasonable default is 32) to prevent stack exhaustion from adversarial inputs. Line length, blockquote length, and field count have no inherent bound in the grammar, and implementations SHOULD impose application-specific limits consistent with their memory budget. 3. Content confusion with Markdown. JMD and conventional Markdown share a syntactic subset (headings, bullets, blockquotes). A receiver that renders a JMD document as Markdown will produce a document that is technically well-formed but semantically nonsensical (data fields become apparent section headings and bullet lists). Implementations MUST dispatch on the declared Content-Type and not on file content sniffing. 4. No active content. JMD has no scripting, no template expansion, no external reference resolution, no schema validation directives, and no anchor/alias mechanism. Parsing a JMD document does not trigger network access, code execution, or arbitrary I/O. This is identical to the JSON security model. 5. Privacy. JMD documents are opaque structured data. They do not carry fragment identifiers, external references, or embedded URIs that are interpreted implicitly by a conforming parser. Any URI-valued fields are application-level data; no JMD parser is required to follow them. 6. Streaming parse semantics. JMD is line-oriented and every completed line is independently parseable. This means that a partial JMD document may be partially processed by a receiver before the full document has arrived. Implementations that act on streaming data before the document is complete MUST ensure that such actions are safe under truncation (for example, a database write that commits only when the document terminator is observed). Interoperability considerations: JMD is defined such that every valid data document is in bijection with a JSON value: parsing JMD yields a JSON value; serializing a JSON value yields a JMD document; and the roundtrip JMD -> JSON -> JMD preserves the value up to canonical normalization (key ordering and number formatting variations permitted by RFC 8259). Multiple valid JMD representations may exist for the same JSON value. This is by design and matches JSON's own freedom in object key ordering. Interoperability between JMD implementations requires only that each agrees on the value, not on the byte sequence that represents it. JMD defines four document modes (data, query, schema, delete) distinguished by the root heading marker. Only data documents are in bijection with JSON values; query, schema, and delete documents carry application-interpreted expressions as string field values and are intended for use by consuming applications that understand those conventions. Line-ending handling: a conforming parser accepts "\n", "\r\n", and "\r" as line terminators. Canonical form uses "\n". Published specification: JMD Specification v0.3.2, available at: https://urldefense.com/v3/__https://github.com/ostermeyer/jmd-spec/blob/main/jmd-spec-v0_3.md__;!!BhdT!nmhxgfWlg3uMy-DbrfrJHUmZQORi_Z7RKcBeNCImevGtaScNZ-Tdew-DyhK155A3Qgg0EPAK81bOHKs$ A companion proposal for HTTP integration is available at: https://urldefense.com/v3/__https://github.com/ostermeyer/jmd-spec/blob/main/jmd-over-http.md__;!!BhdT!nmhxgfWlg3uMy-DbrfrJHUmZQORi_Z7RKcBeNCImevGtaScNZ-Tdew-DyhK155A3Qgg0EPAKhNr-Uwk$ An Internet-Draft describing JMD is in preparation and will be submitted to the IETF Datatracker. This registration request should be treated as provisional until the Internet-Draft is published, at which point the registration can be promoted under the Specification Required or Standards Action procedures. Applications that use this media type: - MCP (Model Context Protocol) servers for LLM tool integration - REST APIs with LLM agent clients - Streaming data pipelines with line-level event processing - LLM-generated structured output in agentic workflows - Service-to-service data exchange as a JSON alternative - Configuration files for LLM-native tooling Fragment identifier considerations: None defined by this specification. A future revision of the JMD specification may define fragment identifiers for addressing specific elements within a JMD document (field paths, heading identifiers, or similar). Additional information: Deprecated alias names for this type: None Magic number(s): None File extension(s): .jmd Macintosh file type code(s): TEXT Person & email address to contact for further information: Andreas Ostermeyer <[email protected]> Intended usage: COMMON Restrictions on usage: None Author: Andreas Ostermeyer <[email protected]> Change controller: Andreas Ostermeyer <[email protected]> Upon publication of a Standards-Track Internet-Draft for JMD, the change controller will become the IETF. Provisional registration? Yes Thank you for your consideration. Best regards, Andreas Ostermeyer [email protected] _______________________________________________ media-types mailing list -- [email protected] To unsubscribe send an email to [email protected] _______________________________________________ media-types mailing list -- [email protected] To unsubscribe send an email to [email protected]