Mais ServiceStack solicita consultoria sobre DTO

Este é um acompanhamento sobre:

Design do DTO da solicitação do ServiceStack

Na pergunta acima, o design era estritamente referente às operações de leitura. E as operações de gravação? Digamos que desejássemos adicionar operações para criar um novo limite de reserva. Reutilizar o substantivo seria apropriado aqui?

[Route("/bookinglimits/","POST")]
public class CreateBookingLimit : IReturn<BookingLimit>
{      
     BookingLimit newBookingLimit
}

-OU- Seria melhor design?

[Route("/bookinglimits/","POST")]
public class CreateBookingLimit : IReturn<BookingLimit>
{      
  public int ShiftId { get; set; }
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; set; }
  public int Limit { get; set; }    }
}

Além disso, se quisermos adicionar edição - devemos inserir e editar compartilhar os mesmos modelos e adicionar o ID?

[Route("/bookinglimits/","POST")]
[Route("/bookinglimits/{Id}/","PUT")]
public class CreateBookingLimit : IReturn<BookingLimit>
{      
  public int Id { get; set; }
  public int ShiftId { get; set; }
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; set; }
  public int Limit { get; set; }    }
}

Estou tentando entender quando faz mais sentido reutilizar POCOs e quando faz mais sentido separar intenções.

questionAnswers(1)

yourAnswerToTheQuestion