I started working on the aw-watcher-vim watcher and it seems to work for me now and have thought about this aswell.
The editor field is unnecessary since it will always be the same in every event anyway and the bucketname describes what the editor is, so you can remove that to save some disk space.
You can actually remove the language field aswell. Since vim and other more simpler editors sometimes don’t have an API to fetch the language of the file we would have to do this analysis in the aw-server anyway, so the suffix from the file should be enough.
The project field i named “workdir” since that’s more abstract and would be an accurate name for both editors and IDEs. I have been thinking about if we should only have the folder name or the whole path here and have concluded that it’s probably best to save as much data as possible and then if we want to we can remove the parent folders during the analysis in aw-server later instead.
I named the file field “filename”, but maybe I should just name it file as you do instead since that’s descriptive enough and shorter.
So, in essence I would propose this format:
workdir: string (complete path to project folder, eg "/home/me/Programming/project")
file: string (filename, eg "extension.ts")
Yeah, “unknown” is probably better than nothing. In that case you would know that there was activity at least.