Any approach to sharing and collaborating around a git repository that requires some convention inside that repository seems fundamentally broken to me. I understand why people want to do it that way -- self describing artifacts are quite handy. Having something like fossil that can live inside a git repo itself is a big plus, for some workflows. I would be shocked if the linux kernel tree ever has a project.json file added to it. All the identifiers you need are already there in the commit hashes, why create another layer of complexity inside the repo itself?