I realized immediately that this would have a lot of things to consider. I'll admit to not knowing the best implementation details. XD
But I do notice it gets kinda tedious having to copy time 0 keys, and paste them at the end and vice versa repeatedly over the course of animating a looping thing.
Not requests or claims of truth. Just thinking out loud:
If you could mark an Animation as "looping", it could automatically keep start and end keys, and keep them in sync.
Alternatively, you could mark only specific Timelines
(in runtime terminology) as "looping". I originally thought this was a good idea for flexibility but I can't imagine what it would be for.
There could probably be a indicator-and-slider that allows you to place the end keys/define the duration of the Animation. The orange line end-indicator could grow a handle on top of it to serve this purpose. There could even be an icon above of the orange line/along the time graduations to indicate that it's a looping Animation.
In terms of game data, it could just be a destructive export and not reflect any "looping" label on the Animations in the json— instead, just storing Animations as if you had manually copied the start keys and pasted them at the end yourself. Json import could detect equality of start and end keys and give you the option to rehydrate its looping state.