updates
The updates array contains objects that represent different updates for a
title. You can link updates to their dependent updates and titles.
In the following example, required properties are highlighted. The values are for example only.
"updates": [
{
"name": "Some Video Game (USA) (Update v1.2)",
"container": "auto",
"requiresId": ["123456", "321653"]
"id": "321654",
"comments": "Something relevant about the update",
"files": [
...
]
},
{
"name": "Some Video Game (USA) (Update v1.1)",
"container": "auto",
"requiresId": ["123456"],
"id": "321653",
"comments": "Something relevant about the update",
"files": [
...
]
},
{
"name": "Some Video Game (USA) (Update v1.01)",
"container": "auto",
"requiresId": ["123456"],
"superseded": true,
"id": "321652",
"comments": "Something relevant about the update",
"files": [
...
]
}
]
Required properties
-
namepattern stringrequiredThe name of the update, in UTF-8. This is used for the name of the archive or folder of the contained update:
Names can't end with a period or space, start with a path separator, or use the following invalid path characters:
Path separators are represented Linux-style, with
/instead of\. Don't use absolute paths, paths are relative to a path the user sets.Expand for developer details
Invalid path characters are found with the following regular expression:
Non-UTF-8 characters are found with the following regular expressions:
[\xC0-\xC1] [\xF5-\xFF] \xE0[\x80-\x9F] \xF0[\x80-\x8F] [\xC2-\xDF](?![\x80-\xBF]) [\xE0-\xEF](?![\x80-\xBF]{2}) [\xF0-\xF4](?![\x80-\xBF]{3}) (?<=[\x00-\x7F\xF5-\xFF])[\x80-\xBF] (?<![\xC2-\xDF]|[\xE0-\xEF]|[\xE0-\xEF][\x80-\xBF]|[\xF0-\xF4]|[\xF0-\xF4][\x80-\xBF]|[\xF0-\xF4][\x80-\xBF]{2})[\x80-\xBF] (?<=[\xE0-\xEF])[\x80-\xBF](?![\x80-\xBF]) (?<=[\xF0-\xF4])[\x80-\xBF](?![\x80-\xBF]{2}) (?<=[\xF0-\xF4][\x80-\xBF])[\x80-\xBF](?![\x80-\xBF]) -
filesobject arrayrequiredThe files in the update and their properties. Read more about the
filesarray.
Optional properties
-
commentsstringoptionalComments related to the update.
-
containerstringoptionalThe container that the DAT application should use for the file set. Must be one of the following values:
-
auto: Store the files in whatever container the user chooses in the DAT application. For example, a ZIP file, a 7Z file, a folder, or no container. The base file name of the container matches the updatename. -
folder: Store the files in a folder named after the updatename. -
null: Don't store the files in any container. Useful for keeping files by themselves, or for treating archives as files.
If this property isn't present, the DAT application assumes the value is
auto. -
-
idstringoptionalA globally unique ID for the update. Usually a database ID to ease lookups for DAT file maintainers. Might be referenced by a DAT application when finding dependencies for add-ons or other updates, or when present in a
containsarray. -
requiresIdstringoptionalWhich titles and updates the specific update requires to function, as identified by their globally unique IDs.
This way if a title gets selected during filtering, its relevant updates can be selected too. Conversely, if a title gets filtered out, there's an opportunity to remove its updates as well.
Updates are considered to be valid for all
sets.Expand for developer details
The most optimal behavior here is likely first walking the
updatesarray for the required ID, and then on a miss going up one level tocollections, and walking thetitlesarray for the required ID. -
supersededbooleanoptionalUpdates kept for archival purposes, that are no longer required to update a title to its latest version.
If this property isn't present, the DAT application assumes the value is
false.