spec: Add self and root references
Introduces self and root keywords for referencing objects during
construction, enabling forward references between sibling fields
and cross-references to the outermost object in nested structures.
Edited by Arran Walker