I prefer the table idiom here because it makes it more easily extensible by downstream users. Even this is probably a stopgap; I haven't had time to think of something nicer.  When I finally make everything based on args and kwargs I think that will help the aesthetics of this a lot.