Thanks for looking at it Ashley.
Unfortunately, my understanding is that source control cannot detect this case, because the changes that cause an issue for C3 are happening in different files. Git/SVN cannot detect this as an issue.
For example, in two different branches, one user adds Sprite1 w/ 1 frame, another user adds Sprite2 w/ 1 frame. One user pushes to repo, then the second user pushes and tries to merge. Git will not detect any merge issues.
The *.c3proj file will have non-conflicting changes (two objects added with different names.)
Two json object files well be created w/ different names one per user/branch: Sprite1.json and Sprite2.json. So git will not detect a conflict.
Two animation images will be created with different names: Sprite1-*.png and Sprite2-*.png. So Git will not detect any conflict.
However, in some cases, the Sprite1.json and the Sprite2.json will use the same imageSpriteId for the animation frame. This will cause an error in C3 when loading, but git cannot detect it.
Since if it seems there cannot be a change to C3 like what is done for UID, the conflict detection I am thinking about is to add CI to our git repo that goes through the branch of the PR and detects for duplicated imageSpriteIds between different object json files. We could at least detect conflicts, though I don't think there is anything we can do about it, except reverting/refusing the PR. I don't know of a fix (e.g. change a imageSpriteId manually seems like a very bad idea, since it must be included somewhere else also (in png meta data?)). Thoughts on CI detecting this type of issue would be appreciated.
Of course, we will also add some 'rules' to our team workflow. I wanted to note something that would be helpful for team collab and source control - if that becomes more important to the C3 community.