A version controlled document think of it as a personal diary where you have one Entry for each day and the content on each day can be text, images, urls, video, tables.
The user can edit the entry of a particular day in the history. For eg. if there was an entry on 5/22 and there were more entries after that day like 5/23, 5/24 etc. The user has the ability to go back on 5/22 and add/delete or edit content.
The position of the content is important for eg: Entry on 5/22 has the following content in the order of :
Some text
Image1
URL1
Table 1
Image2
^^ The above ordering of the content should be reflected when you design the datamodel.
Some key functions:
You should be able to look at version history just like google docs and every entry gets saved after 10 secs.
Edge case: If there's an entry on 5/22 and the latest edit was made on 5/26. The version history should pull the edit from 5/26 and the last few edits/versions per the user request.