Вам может понадобиться что-то вроде этого:
sealed class RouteGroup
data class RouteGroupWithName(
@SerializedName("name") var name: String
) : RouteGroup()
data class RouteGroupWithId(
@SerializedName("id") var id: Int
) : RouteGroup()
data class RouteGroupWithNameAndId(
@SerializedName("name") var name: String,
@SerializedName("id") var id: Int
) : RouteGroup()
РЕДАКТИРОВАТЬ 1:
Или вы можете использовать пустые поля и именованные параметры, например:
data class RouteGroup(
@SerializedName("name") var name: String? = null,
@SerializedName("id") var id: Int? = null
)
val routeGroupWithName = RouteGroup(name = "example")
val routeGroupWithId = RouteGroup(id = 2)
val routeGroupWithNameAndId = RouteGroup(id = 2, name = "example")