final case class Concat[-R, +E, Ids1, Ids2](left: Endpoints[R, E, Ids1], right: Endpoints[R, E, Ids2]) extends Endpoints[R, E, Ids1 & Ids2]
final case class HandledEndpoint[-R, +E, In0, Out0, Id](endpointSpec: EndpointSpec[In0, Out0], handler: In0 => ZIO[R, E, Out0]) extends Endpoints[R, E, Id]