atom ReaderNavigationRecord id "reader-navigation-record";
atom DocumentNavigationRecord id "document-navigation-record";
conform PresentationMountRecord as PresentationMount id "presentation-mount-record:implementation" {
private edge Membership id "presentation-mount:membership" {
atom PresentationMountRecord projection members id "presentation-mount:members-projection" many-unique public-traversal;
interface PresentationState projection presentationMount id "presentation-mount:owner-projection" optional-one public-traversal;
}
private edge Root id "presentation-mount:root-edge" {
atom PresentationMountRecord projection root id "presentation-mount:root-projection" optional-one;
interface PresentationState projection rootOf id "presentation-mount:root-of-projection" optional-one;
}
bind members.resolve to edge Membership.members.resolve;
bind root.resolve to edge Root.root.resolve;
bind create.call to package PresentationRuntime.createPresentationMount with {presentationMount to creation PresentationMountRecord with {};};
bind attach.call to package PresentationRuntime.attach with {
members to edge Membership.members;
root to edge Root.root;
metadata to interface PresentationState from input;
};
}
conform<object Navigation implements PresentationState> Presentation<Navigation> as PresentationStates<Navigation> id "presentation:state-association" {
private edge States id "presentation:states-edge" {