[Soc2014] Official meta API

What determines whether to use `opts.fields` vs `opts.get_fields()`? They seem like the same thing based on the API naming (I haven't looked at implementation yet to see if in practice they are different - that would be even worse), yet both are used, even in new code added in this branch.