@superdavey I wrote it myself, but used Alex Chen’s object-action-context framework as a starting point.