Files

25 lines
1.7 KiB
Plaintext

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 {};
}
}