engine: memory db: none User as Node { id: ID name: NaturalLanguage created: Timestamp modified: Timestamp } & OutboundEdges { decks: Edge } & Mutations { create as Create { name } rename as Update { name } delete as Delete {} } Deck as Node { id: ID name: NaturalLanguage created: Timestamp modified: Timestamp ownerId: ID selectedSlideId: ID | null } & OutboundEdges { owner: Edge slides: Edge selectedSlide: Edge editors: DeckToEditorsEdge } & Mutations { create as Create { name: NaturalLanguage owner: User selectedSlide: Slide | null } selectSlide as Update { selectedSlide: Slide } rename as Update { name: NaturalLanguage } delete as Delete {} } Slide as Node { id: ID deckId: ID order: float32 } & OutboundEdges { components: Edge } & Mutations { create as Create { deck: Deck order } reorder as Update { order: float32 } delete as Delete {} } Component as Node { id: ID subtype: Enumeration slideId: ID content: string } & Mutations { create as Create { subtype slide: Slide content } delete as Delete {} } DeckToEditorsEdge as Edge { id1: ID id2: ID } & Mutations { create as Create { src: Deck dest: User } }