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