¿Cómo puedo representar una relación de muchos a muchos con Android Room?

¿Cómo puedo representar una relación de muchos a muchos con Room? p.ej. Tengo "Invitado" y "Reserva". La reserva puede tener muchos invitados y un invitado puede ser parte de muchas reservas.

Aquí están mis definiciones de entidad:

@Entity data class Reservation(
    @PrimaryKey val id: Long,
    val table: String,
    val guests: List<Guest>
)

@Entity data class Guest(
    @PrimaryKey val id: Long,
    val name: String,
    val email: String
)

Mientras miraba documentos, me encontré@Relation. Sin embargo, me pareció realmente confuso.

De acuerdo con esto, me gustaría crear un POJO y agregar las relaciones allí. Entonces, con mi ejemplo hice lo siguiente

data class ReservationForGuest(
    @Embedded val reservation: Reservation,
    @Relation(
        parentColumn = "reservation.id", 
        entityColumn = "id", 
        entity = Guest::class
    ) val guestList: List<Guest>
)

Con lo anterior me sale el error del compilador:

No se puede descubrir cómo leer este campo desde un cursor.

No pude encontrar una muestra funcional de@Relation.

Respuestas a la pregunta(5)

Su respuesta a la pregunta