ignore _ prefixed fields more, stricter type field

also expose some immutable objects in CodecConfig