Marshaller accessible fields

Update and expand #4544 to have tests and API docs.