Initial schema for AS v2
This commit is contained in:
commit
3bdbe4693e
11 changed files with 243 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
book
|
||||||
|
.idea
|
6
book.toml
Normal file
6
book.toml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[book]
|
||||||
|
authors = ["AddonScript Team", "Timo Ley"]
|
||||||
|
language = "en"
|
||||||
|
multilingual = false
|
||||||
|
src = "docs"
|
||||||
|
title = "AddonScript"
|
14
docs/SUMMARY.md
Normal file
14
docs/SUMMARY.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
# AddonScript
|
||||||
|
|
||||||
|
# Schema
|
||||||
|
- [Addon Object](schema/root.md)
|
||||||
|
- [AddonScript Object](schema/addonscript.md)
|
||||||
|
- [Version Object](schema/version.md)
|
||||||
|
- [File Object](schema/file.md)
|
||||||
|
- [Relation Object](schema/relation.md)
|
||||||
|
- [Repository Object](schema/repository.md)
|
||||||
|
- [Index Object](schema/index.md)
|
||||||
|
- [Meta Object](schema/meta.md)
|
||||||
|
|
||||||
|
|
10
docs/schema/addonscript.md
Normal file
10
docs/schema/addonscript.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# AddonScript Object
|
||||||
|
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"version": 2
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Currently the AddonScript object only contains the version of AddonScript, the file ist using.
|
||||||
|
In future versions there may be other information in this.
|
43
docs/schema/file.md
Normal file
43
docs/schema/file.md
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# File Object
|
||||||
|
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"id": "modfile",
|
||||||
|
"url": "https://example.com/mymod.jar",
|
||||||
|
"flags": [],
|
||||||
|
"install": [
|
||||||
|
"move mods"
|
||||||
|
],
|
||||||
|
"sha1": "somesha1checksum"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Required properties
|
||||||
|
|
||||||
|
### id
|
||||||
|
|
||||||
|
This is the ID of the file. It should only contain lowercase letters, numbers and dashes.
|
||||||
|
If multiple file objects in the same array have the same ID, they are treated as the same file,
|
||||||
|
which means, that the first one of them in the array will be used unless it can't be retrieved from the URL,
|
||||||
|
in which case the next one will be used as fallback.
|
||||||
|
|
||||||
|
### url
|
||||||
|
|
||||||
|
This is URL, which points to the actual file. The URL can have one of the schemes listed [here](../schemes.md).
|
||||||
|
|
||||||
|
### install
|
||||||
|
|
||||||
|
This is an array of [install steps](../install.md). They describe, how the file should be installed to the game.
|
||||||
|
The order in the array correspond to the order, in which the install steps should be applied.
|
||||||
|
|
||||||
|
## Optional properties
|
||||||
|
|
||||||
|
### flags
|
||||||
|
|
||||||
|
This is an array of [flags](../flags.md) for this file. If this property is not present in a file object, the file
|
||||||
|
will have the flags, which are set as default for files or, if no default was set, it will inherit the flags from the
|
||||||
|
associated version, which are applicable for files.
|
||||||
|
|
||||||
|
### sha1
|
||||||
|
|
||||||
|
This is the sha1 checksum of the file. Although the checksum is optional, it is recommended to use it.
|
25
docs/schema/index.md
Normal file
25
docs/schema/index.md
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# Index Object
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"versions": {
|
||||||
|
"1.0": "https://example.json/mymod-1.0.json"
|
||||||
|
},
|
||||||
|
"addons": {
|
||||||
|
"othermod": "https://example.com/othermod.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Optional Properties
|
||||||
|
|
||||||
|
### versions
|
||||||
|
|
||||||
|
This is a map, with version numbers as keys and URLs to AddonScript files as values. The AddonScript file, to which the URL
|
||||||
|
points, must include the version number, which is the key in the map, and its addon ID must match the addon ID of the AddonScript
|
||||||
|
file, which includes the index object.
|
||||||
|
|
||||||
|
### addons
|
||||||
|
|
||||||
|
This is a map, with addon IDs as keys and URLs to AddonScript files as values. The addon ID of the AddonScript file, to
|
||||||
|
which the URL points, must match the key in the map.
|
7
docs/schema/meta.md
Normal file
7
docs/schema/meta.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# Meta Object
|
||||||
|
|
||||||
|
Meta objects can be included in [addon](root.md) and [version](version.md) objects.
|
||||||
|
They should be used, to give information about the addon or the version, like a name,
|
||||||
|
a description or a changelog. The specification does not require a specific format
|
||||||
|
for meta objects, therefore you can add any property you want to it. It is however
|
||||||
|
recommended, to follow conventions for it.
|
27
docs/schema/relation.md
Normal file
27
docs/schema/relation.md
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# Relation Object
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "namespace:othermod",
|
||||||
|
"version": "[1.0,)",
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Required properties
|
||||||
|
|
||||||
|
### id
|
||||||
|
|
||||||
|
This is the ID or namespaced ID of the addon, this relation refers to.
|
||||||
|
|
||||||
|
### version
|
||||||
|
|
||||||
|
This is a [maven version range](https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html) of supported versions of this relation.
|
||||||
|
|
||||||
|
## Optional properties
|
||||||
|
|
||||||
|
### flags
|
||||||
|
|
||||||
|
This is an array of [flags](../flags.md) for this relation. If this property is not present in a relation object, the relation
|
||||||
|
will have the flags, which are set as default for relations or, if no default was set, it will inherit the flags from the
|
||||||
|
associated version, which are applicable for relations.
|
24
docs/schema/repository.md
Normal file
24
docs/schema/repository.md
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Repository Object
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "asrepo",
|
||||||
|
"type": "api",
|
||||||
|
"link": "https://addonscript.net/repo"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Required properties
|
||||||
|
|
||||||
|
### id
|
||||||
|
|
||||||
|
This is the ID of the repository. It has to be unique to the AddonScript file.
|
||||||
|
|
||||||
|
### type
|
||||||
|
|
||||||
|
This is the type of the repository. Possible values are ```api``` or ```maven```.
|
||||||
|
|
||||||
|
### link
|
||||||
|
|
||||||
|
This is the base URL of the repository. While other URLs in AddonScript can have different schemes,
|
||||||
|
the base URL has to be a http(s) URL.
|
48
docs/schema/root.md
Normal file
48
docs/schema/root.md
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# Addon Object
|
||||||
|
|
||||||
|
``` json
|
||||||
|
{
|
||||||
|
"addonscript": {},
|
||||||
|
"id": "myaddon",
|
||||||
|
"versions": [],
|
||||||
|
"repositories": [],
|
||||||
|
"index": {},
|
||||||
|
"flags": {},
|
||||||
|
"meta": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Required properties
|
||||||
|
|
||||||
|
### addonscript
|
||||||
|
|
||||||
|
This is an [AddonScript object](addonscript.md) containing information about the version of AddonScript used in this file.
|
||||||
|
|
||||||
|
### id
|
||||||
|
|
||||||
|
This is the ID of your addon. It should only contain lowercase letters, numbers and dashes.
|
||||||
|
|
||||||
|
## Optional properties
|
||||||
|
|
||||||
|
### versions
|
||||||
|
|
||||||
|
This is an array of [version objects](version.md). It is possible to define multiple versions of the addon in one AddonScript file,
|
||||||
|
but in the most cases, there should be just one version per file. Although this property is optional, as you can define versions
|
||||||
|
in the [index](index.md), it can be used to define a list of versions, which can be found in the index.
|
||||||
|
|
||||||
|
### repositories
|
||||||
|
|
||||||
|
This is an array of [repository objects](repository.md). Each repository object defines one repository, from which files or
|
||||||
|
addons can be retrieved.
|
||||||
|
|
||||||
|
### index
|
||||||
|
|
||||||
|
This is an [index object](index.md), which includes links to other versions of this addon or to other related addons.
|
||||||
|
|
||||||
|
### flags
|
||||||
|
|
||||||
|
Not yet specified
|
||||||
|
|
||||||
|
### meta
|
||||||
|
|
||||||
|
This is a [meta object](meta.md).
|
37
docs/schema/version.md
Normal file
37
docs/schema/version.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Version Object
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"version": "1.0",
|
||||||
|
"files": [],
|
||||||
|
"relations": [],
|
||||||
|
"flags": ["server", "client"],
|
||||||
|
"meta": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Required properties
|
||||||
|
|
||||||
|
### version
|
||||||
|
|
||||||
|
This is the version number of this version. It should follow [Maven version naming conventions](https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm),
|
||||||
|
as they are used to comparing versions.
|
||||||
|
|
||||||
|
## Optional properties
|
||||||
|
|
||||||
|
### files
|
||||||
|
|
||||||
|
This is an array of [file objects](file.md), including the files, belonging to this version.
|
||||||
|
|
||||||
|
### relations
|
||||||
|
|
||||||
|
This is an array of [relation objects](relation.md), which represents related addons.
|
||||||
|
|
||||||
|
### flags
|
||||||
|
|
||||||
|
This is an array of [flags](../flags.md) for this version. If this property is not present in a version object, the version
|
||||||
|
will have the flags, which are set as default for versions.
|
||||||
|
|
||||||
|
### meta
|
||||||
|
|
||||||
|
This is a [meta object](meta.md).
|
Loading…
Reference in a new issue