@Override
    public Somebody decode(BsonReader reader, DecoderContext decoderContext) {
      reader.readStartDocument();
      ObjectId id = reader.readObjectId("_id");
      String prop1 = reader.readString("prop1");
      Date date = new Date(reader.readDateTime("dateChanged"));
      reader.readEndDocument();
      return ImmutableSomebody.builder().id(id).prop1(prop1).date(date).build();
    }
Manually reads and writes all attributes
mongo/test/org/immutables/mongo/fixture/BsonCodecRepoTest.java