title: Moshi: multiple JSON properties into one field of a class
body: <p>Let's say we have this JSON structures:</p>
  
  <pre><code>"data": [
          {
              "order_id": 460,
              "order_no": "365"
          },
          ....
  ]
  
  "data": {
          "id": 460,
          "order_no": "365"
  }
  </code></pre>
  
  <p>One is order listing, another is order details. To parse such structures I would like to reuse same class.</p>
  
  <pre><code>data class Order (
      @Json(name = "id") val id: Int?,
      @Json(name = "order_id") val orderId: Int?,
      @Json(name = "order_no") val orderNumber: Int
  )
  
  data class OrderListingResponse (
      @Json(name = "data") val data: List&lt;Order&gt;
  )
  
  data class OrderDetailsResponse (
      @Json(name = "data") val data: Order
  )
  </code></pre>
  
  <p>This implementation looks ok until different naming of properties with the same data becoming too many. I would like to merge multiple properties into one so I can make my reusable class shorter and more elegant for order listing and order details:</p>
  
  <pre><code>data class Order (
          @Json(names = ["id", "order_id"]) val id: Int,
          @Json(name = "order_no") val orderNumber: Int
      )
  </code></pre>
  
  <p>How to achieve such result using Moshi without creating additional fields in the class and just reuse same field with different naming of properties in JSON? </p>
  
  <p>Appreciate if you can provide sample code for custom annotation implementation. Using interfaces is not what I'm looking for. </p>