Starter products: Editing
Non-normative starter-product guidance (RFC 0078). Not part of the standard.
This page moved verbatim from UW Protocol §V.1, §V.5 and §V.6, and from the retired Tier-2 Editor requirements (Protocol 2.x §II.2), under RFC 0078 (D3). Section numbers and headings are kept so existing references still find the text; relative links were re-based to this directory and nothing else changed. The requirement keywords below (MUST, SHOULD, MAY) describe how the reference starter products behave and what a tool must do to stay compatible with them. They are not conformance requirements of the standard, and a conforming Reader or Verifier owes none of them.
II.2 Tier 2 — Editor
A Tier-2 Editor MUST satisfy all Tier-1 requirements, and additionally:
- Round-trip preservation: bytes outside the modified region of the file MUST be preserved, modulo line-ending normalization.
- Honor
BUILTIN_EDIT_POLICIES(§V.3) — supersede vs replace. - Update
_metaon every write per §V.4 (newversion, newtimestamp, correctactorandsource). - Update
frontmatter.last_modifiedon every write. - Reject any
EditOperationwhosemeta.sourceis not permitted by policy with aProtocolErrorof categoryedit.
V.1 Round-trip preservation
A Tier-2 Editor receiving an .uwx.md and returning an .uwx.md MUST preserve bytes outside the directly-modified region, modulo:
- Line-ending normalization (CRLF → LF is permitted).
- Trailing-whitespace stripping is permitted.
- Reordering of frontmatter keys is NOT permitted.
- Reformatting JSON inside untouched fence blocks is NOT permitted.
V.5 Multi-variant edits
For sections with multi_variant: true, edits MUST specify a variant key. Operations against missing variants create a new variant; operations against existing variants follow the same replace/supersede policy as single-variant sections.
V.6 Frontmatter update rules
uw_version, deal_id, and created MUST NOT be modified by post-init edits. last_modified MUST be updated on every write.