The custom ResultSource doesn't sound too bad. The reason I ask is that it sounds like that's what Ovid will need here, with a database schema that he wants to abstract away. Otherwise, he'd have to make his API deal with the actual tables as they currently are.