Will you be adopting jsdoc for this project? `opts` here is an optimization for the usual case of `serializeProperty` being called in a loop by `serialize`. I wanted to avoid the `metaForProperty` lookup since `serialize` already has the options info for the field.

But for someone calling this method directly, they probably shouldn't pass `opts`. So we should probably mark the param private/internal.