-- Dialogable: a mixin that makes any Entity subclass talkable. `include` it and -- give the entity a `self.book` (an Ink book); bumping the entity then opens the -- modal Dialogue. npcs, signs, artifacts — anything you can talk to — are just -- Dialogables. For now an entity carries one book; later it can swap books as it -- progresses. All it does is route a bump to the dialogue manager. Dialogable = {} function Dialogable:onBump() if self.book then Dialogue.open(self.book) end return true end