modInfo.json can contain the following key-values;

Base node is an array, to allow for multiple assembly definitions / parts per modinfo file
Per definition:

name
-	unique string identifying your mod (presented in the UI, used for dependencies)

description
-	some string briefly describing the mod to clarify what it is to players

version
-	string in the format of "0.1.2", where each number is between 0 and 255

dependencies
-	array of mod dependencies required to enable this mod
-	each item is of the form { "name" : "some mod", "minversion" : "1.0.0" }

isoptional
-	boolean, defaults to true -> if true, allows the user to enable/disable this. if false -> enabled is permanently set to enableddefault

enableddefault
-	boolean, defaults to true -> default state of enabled for worlds that have not previously seen this mod

marksgamemodded
-	boolean, defaults to true -> if true and the mod loads succesfully, it'll mark the server as modded and be shown in the server browser.

dllpath
-	string, optional - relative path to the managed .dll file that'll be loaded

compatibleversions
-	Array of version strings like [ "0.7.0", "0.7.1" ]
-	Contains game versions this mod is compatible with. If the current game version is not a subversion of a compatible version the mod is not loaded. Some updates may allow loading of earlier version mods.

custom
-	A json object like { "some_key" :  "...."  } that can be accessed in code directly for custom parsing

jsonFiles
-	an array of json objects; the core way to load configs for the game
-	structure per entry:
|	-	"absolutePath" - the path of the json file relative to the game root folder
	-	"relativePath" - the path of the json file relative to this modinfo.json file
	-	"fileType" - the type of contents that file will have. Requires either absolutePath or relativePath to be set. See jsonfiles.txt
	-	"index" - Defaults to 0. Changes will be applied in order of their index (lowest first). If the index is the same, order is undefined.
	

