diff --git a/spec.md b/spec.md index 78391b5..5e2b13b 100644 --- a/spec.md +++ b/spec.md @@ -89,7 +89,7 @@ RecordPath has six syntax characters, which must be escaped by a preceeding `!` | `.` | `!.` | field separator | | `[` | `![` | arrays | | `]` | `!]` | arrays | -| `{` | `!}` | union refs | +| `{` | `!{` | union refs | | `}` | `!}` | union refs | | `!` | `!!` | escape | @@ -165,7 +165,7 @@ facets[].features[app.bsky.richtext.facet#link].uri facets[].features[app.bsky.richtext.facet#mention].did ``` -So while arrays are unordered in RecordPath, their elements are always segmented by union-ref type when they contained unioned types. +So while arrays are unordered in RecordPath, their elements are always segmented by union-ref type when they contain unioned types. ### 2.5 Scalar union fields @@ -202,7 +202,7 @@ Given a post with a quoted post: The RecordPath `embed{app.bsky.embed.external}.uri` reaches the quoted post's external embed URI, "https://youtu.be/-pns419xAoc?si=K4XMQfFv-t4Q1cn0". -- The NSID in the parens is the `$type` value verbatim, including any `#fragment` suffix if present. the `#main` suffix is never present per the lexicon spec so this is close-to-canonical, but i need to think more about relative `#fragments` (that omit the NSID part) and whether that introduces any non-canonical problem. +- The NSID in the braces is the `$type` value verbatim, including any `#fragment` suffix if present. The `#main` suffix is never present per the lexicon spec (*"use of a `#main` suffix is invalid"* in `$type` values). Relative `#fragment` references (without NSID) only exist within lexicon definition files as shorthand; `$type` values in record data are always fully-qualified (`nsid` or `nsid#name`). So the data is already canonical and no normalization is needed. - The top-level record `$type` is excluded from this rule.