Since we aren't restricted by Goober's files anymore, I made semantic versioning a requirement for the "version" field. I suggest we use composer's syntax for versioned dependencies.
So you want to drop txt files conversion to json in fs2mod-py ? (the php server is far from ready, but It will get there eventually)
I've just read the new schema :
- I really like the new "dependencies", "environment" and "actions" handling. (single level lists of objects in json help me a lot on the database and form building side)
- I'd like to keep my object map as simple, and as close as possible to the json data structure, for obvious parsing reasons.
*With your previous json schema, I was using file groups. File groups are custom objects that contain all files sharing the same mirrors, and these mirrors urls. For both database management and dynamic form building, I'm mapping a relation from multiple file groups to a single mod object.
*With the new json schema, I'll have to map a relation from multiple file groups to both the mod object (because of the "files" string) and to a new type object (because of the "features" string). It would make my objects map a bit less readable, and data operations cascades (like removing orphan file groups on mod removal) a bit more complicated.
*The goal of "required" "packages" was for me to completely drop the file group relation to the mod object, and replace it with a relation to the "package" instead.
Short version : having "files" at 2 different depth in the data structure is not ideal on my side. If the new json schema makes things easier on the python side, I'm ok with it, I will find a solution (either at the database level or parsing level).
*Anyway, including additional/overridden "dependencies" in the "features" is a good idea. Will the fs2_open builds to install on the users system be specified through dependency (if the build is considered as a standard "mod", I guess) or environment variables? I'm asking this because if it's set with environment, it could be useful to get "environment" inside "features" too.
- Now we nearly have a good dependency handling, isn't "submods" list going to be obsolete ?
EDIT : At first I wanted modders to manually enter md5 hashes into the mod building form. I know it can easily be automated in php, but it also looks heavily server dependent (reaching all kinds of limits : execution time, file size...) for big files like VPs. Thoughts ?