AEON v1 Addressing and References Reference
Status: official v1 companion reference Scope: canonical paths, reference forms, quoted segments, attribute selectors, and reference legality.
1. Canonical Path Model
Canonical path identity in AEON v1 uses only:
- member segments
- index segments
Examples:
Identity rules:
a.bmeans two member segments;["a.b"]means one member key that contains a dot;- attribute selectors are valid in addressing expressions, but are not canonical path identity segments.
Authoritative grammar sketch:
Canonical notes:
- non-bare keys are rendered in double-quoted bracket form;
- lists and tuples use numeric index segments;
- node children also use numeric index segments;
- canonical path identity is deterministic across equivalent quoted spellings.
- quoted root-member traversal uses the explicit dot form
$.["..."]; - bare root-bracket member traversal such as
$["a"]is not part of the Core v1 path grammar.
2. Key Segment Forms
2.1 Member Traversal
Bare member traversal:
Quoted member traversal:
Nuances:
~a.bresolves membera, then memberb;~"a.b"and~["a.b"]are equivalent initial-segment forms for one quoted member key literally nameda.b;~["a.b"]resolves a single key literally nameda.b;~a.["b.c"]resolves membera, then a quoted member literally namedb.c;~$.["a.b"]is the explicit root-prefixed quoted-member form;~$["a.b"]is not part of the Core v1 reference grammar;- quoted segment decoding occurs before identity comparison.
2.2 Indexed Traversal
List/tuple/node-child addressing:
Nuances:
- index segments are positional and zero-based;
- index segments participate in canonical path identity;
- index segments may be followed by member traversal or attribute selectors.
- node-child addressing uses the same bracket index form as list and tuple addressing.
3. Attribute Selectors
Attributes live in a distinct namespace from data members.
Attribute selector forms:
Grammar sketch:
Nuances:
@keyaddresses a bare attribute key;@["key with spaces"]addresses a quoted attribute key;- quoted member and attribute-key segments must not be empty;
- quoted bracket member segments may follow attribute selectors using
.[\"...\"]; - quoted attribute selectors may be followed by ordinary member traversal, quoted member traversal, or index traversal;
- mixed traversal such as
~a@["x.y"].z,~a@meta.["x.y"], and~$.a@["profile.name"][0]is valid when each traversed segment exists and is otherwise legal; - malformed or incomplete forms such as
~a@,~$.a@[, and~.["a"]are invalid; - attribute selectors are part of reference/addressing syntax, not canonical path identity;
- data namespace and attribute namespace are distinct and must not be merged.
4. Reference Forms
AEON v1 supports:
- clone/reference form:
~path - alias/pointer form:
~>path
Examples:
Nuances:
~pathreferences the target value;~>pathpreserves alias/pointer intent in the AST/AES model;- ASCII inter-token whitespace may appear between
~or~>and the following reference path, but canonical formatting removes it; - both forms use the same path grammar after the introducer.
AES notes:
- clone and alias remain distinct value kinds;
- path text is preserved structurally rather than flattened to one raw string.
5. Disambiguation Rules
5.1 Dot vs Quoted Key
Then:
5.2 Attribute vs Data Namespace
Then:
These are not the same target.
Attachment-scope note:
- attributes attach to bindings (or node heads), not to already-completed literal values;
- binding-attached attributes remain addressable wherever the binding itself is addressable;
- therefore
a@{b=1} = [0]exposes$.a@b, anda = [{x@{b=0}=1}]exposes$.a[0].x@b; - postfix literal forms such as
a = [0]@{b=2}are invalid Core v1 syntax.
6. Reference Legality
Reference legality is deterministic in Core v1.
Invalid:
- forward references
- missing targets
- self-references
Examples:
Nuances:
- no-forward and no-self checks apply independently per namespace;
- explicit attribute references use the same legality model;
- quoted member traversal after attribute selection does not change legality rules; it continues to resolve against the selected attribute value using ordinary member/index traversal;
- legality is a Core concern, not AEOS/schema responsibility.
7. Duplicate Identity and Decoding
Quoted spellings are decoded before identity comparison.
Implications:
- duplicate-key checks use decoded identity;
- duplicate canonical-path checks also use decoded identity;
- escaped equivalents must not create distinct addresses.
Example:
These resolve to the same decoded key identity and should conflict.
8. Canonical Rendering Notes
Canonical output conventions:
- root marker is
$; - bare member segments use
.name; - non-bare members use
["..."]; - attribute selectors use
@nameor@["..."]; - numeric indices use
[n].
Examples:
9. Node Model Boundary
Node children use numeric index segments in canonical paths, matching the ordered child-slot model used by lists and tuples.
Implications:
- the binding that owns the node has a canonical path for the node value;
- node child ordering is structural and reflected through bracket indices such as
$.page[0]; - object members inside node children continue normal member traversal, for example
$.page[0].title; - node tags are not independent canonical path segments.
10. Minimum Conformance Reminders
Implementations targeting Core v1 must at minimum:
- support quoted member segments in paths;
- support quoted attribute segments in paths;
- preserve dot-vs-quoted-key disambiguation;
- reject forward references deterministically;
- reject missing targets deterministically;
- reject self-references deterministically;
- report canonical paths consistently in diagnostics and emitted events.