fragment { import package PresentationRuntime; atom PresentationMountRecord id "atom:org.quixos.presentation-mount"; shared edge PresentationMembership id "org.quixos.presentation:membership" { interface PresentationMount projection members id "org.quixos.presentation:members" many-unique keyed "string" public-traversal; interface PresentationState projection presentationMount id "org.quixos.presentation:owner" optional-one public-traversal; } shared edge PresentationParent id "org.quixos.presentation:parent" { interface PresentationState projection parent id "org.quixos.presentation:parent" optional-one public-traversal; interface PresentationState projection children id "org.quixos.presentation:children" many-unique public-traversal; } shared edge PresentationRoot id "org.quixos.presentation:root" { interface PresentationMount projection root id "org.quixos.presentation:root" optional-one public-traversal; interface PresentationState projection rootOf id "org.quixos.presentation:root-of" optional-one; } conform PresentationMountRecord as PresentationMount id "org.quixos.presentation:mount" { bind members.resolve to edge PresentationMembership.members.resolve; bind root.resolve to edge PresentationRoot.root.resolve; bind create.call to package PresentationRuntime.createPresentationMount with {presentationMount to creation PresentationMountRecord with {};}; bind copy.call to package PresentationRuntime.copyEmpty with {presentationMount to creation PresentationMountRecord with {};}; bind find.call to package PresentationRuntime.findEmpty with {}; bind attach.call to package PresentationRuntime.attachEmpty with {}; } }