| … | … | @@ -179,7 +179,29 @@ The old reasoning was that HTML → byte-offset facets is not reliably recoverab |
| 179 | 179 | relevant: nothing recovers facets from HTML, because facets are produced from the **markdown parse**, |
| 180 | 180 | which yields exact source ranges (§3.4). Storing them was solving a problem that the parse removes. |
| 181 | 181 | |
| 182 | | **Threading: `{root, parent}` is canonical, `inReplyTo` is derived.** Unchanged — atproto's pair |
| 182 | **Threading: `{root, parent}` is canonical, `inReplyTo` is derived.** Its spelling is settled |
| 183 | 2026-09-05: |
| 184 | |
| 185 | ```json |
| 186 | "reply": { "root": "net.favela.post/3msdnle65lk22", "parent": "net.favela.post/3msdz9k2j1a04" } |
| 187 | ``` |
| 188 | |
| 189 | - **Frontmatter, not body syntax.** A reply target is metadata, and putting it in prose would make |
| 190 | addressing parseable from loose text — the thing §4.1 refuses. |
| 191 | - **Room-relative**, because a reply is written **in the room its parent lives in** |
| 192 | (`SOCIAL-MODEL.md` §4.1), so the room segment would be redundant in every native reply. Collection |
| 193 | is kept: a room holds more than one record collection. |
| 194 | - ⛔ **No CID.** atproto's `strongRef` pins `{uri, cid}`; ours cannot, because §0.1 makes the record |
| 195 | **mutable** and the hash changes on every edit. A reply must survive its parent being edited, so it |
| 196 | names the parent's **identity**, never a version of it. The projection supplies the CID from the |
| 197 | parent's **stored** projection (§7.2) — available precisely because we stopped deriving. |
| 198 | - **A foreign parent carries its origin URI as observed** (`interaction.md` §3.2) — |
| 199 | `at://…` or `https://…` — since there is no room-relative form for something that lives elsewhere. |
| 200 | |
| 201 | ⚠ **There is no cross-room reply.** Replying means writing in the parent's room; if you cannot write |
| 202 | there, you cannot reply. That is not a restriction added here, it is what §4.1 already means. |
| 203 | |
| 204 | Unchanged — atproto's pair |
| 183 | 205 | carries strictly more than AS2's single URI, and the projection down is trivial. Its markdown-native |
| 184 | 206 | spelling is still open (`design.md` §8 #2). |
| 185 | 207 | |