anchor.diff:  List<Person> allPersons = personRepository.listAll();
   
   // finding a specific person by ID
  +// here we build a new ObjectId but you can also retrieve it from the existing entity after being persisted
  +ObjectId personId = new ObjectId(idAsString);
   person = personRepository.findById(personId);
   
   // finding a specific person by ID via an Optional
  
positive.code: 
  IDs are often a touchy subject. In MongoDB, they are usually auto-generated by the database with an `ObjectId` type.
  In MongoDB with Panache the ID are defined by a field named `id` of the `org.bson.types.ObjectId` type,
  but if you want ot customize them, once again we have you covered.
  
  You can specify your own ID strategy by extending `PanacheMongoEntityBase` instead of `PanacheMongoEntity`. Then
  you just declare whatever ID you want as a public field by annotating it by `@BsonId`:
  
negative.code: 
  `ObjectId` can be difficult to use if you want to expose its value in your REST service.
  So we created JSON-B and Jackson providers to serialize/deserialize them as a `String` which are automatically registered if your project depends on either the RESTEasy JSON-B extension or the RESTEasy Jackson extension.
  
  [IMPORTANT]
  ====
  If you use the standard `ObjectId` ID type, don't forget to retrieve your entity by creating a new `ObjectId` when the identifier comes from a path parameter. For example:
  
  [source,java]
  ----
  @GET
  @Path("/{id}")
  public Person findById(@PathParam("id") String id) {
      return Person.findById(new ObjectId(id));
  }
  ----
  ====
  
  == Working with Kotlin Data classes
  
  