I noticed that there are 4 fields representing the same thing: launch date. Why do we need them, if we could use one:unix time or date UTC?
{
"flight_number": 50,
"mission_name": "KoreaSat 5A",
"mission_id": [],
"launch_year": "2017", // 1) year we could extract from launch_date_unix
"launch_date_unix": 1509392040, // 2) I suggest to use this
"launch_date_utc": "2017-10-30T19:34:00.000Z", // 3) or use this
"launch_date_local": "2017-10-30T15:34:00-04:00", // 4) why do we need local time?
"is_tentative": false,
\\ ...
}
All of these exist because at some point in time someone asked for them to be included in a specific form. Ideally it would be a single data format, and the timezone could be inferred from the launch site location, but some users wanted more options.
Launch year isn't used for anything internally, and could probably be removed at this point, but I've kept it because a significant amount of requests still filter using that field.
Although these 4 fields don't increase size of JSON significantly, such data duplication could lead to unintentional mistakes.
I was wrapping my head around to understand why do we need them. I thought that there is extra meaning in launch_date_local vs launch_date_utc. It's probably possible to extract timezone from launch site location without using launch_date_local...?
If people still use them, you could you mark them as #deprecated and retire in v4 or v5 of the API?
Mistakes are always a possibility, but the time updates are handled by a script, which generates all the different time formats automatically.
launch_year will be deprecated at some point for sure, but for the foreseeable future all the others should stay.