Created
October 10, 2021 02:05
-
-
Save Frityet/43390d2415501441acf309363097078a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$schema: 'http://json-schema.org/draft-07/schema' | |
$id: https://raw.githubusercontent.com/H3VR-Modding/Mason/v1.0.0/schemas/project/root.json | |
type: object | |
title: Mason Project | |
description: A Mason project | |
examples: | |
- version: 1 | |
ignore: | |
- C10 | |
dependencies: | |
hard: | |
ExampleHardDependency: 1.2.3 | |
soft: | |
- ExampleSoftDependency | |
incompatibilities: | |
- ExampleIncompatibility | |
processes: | |
- ExampleGame.exe | |
assets: | |
setup: | |
- path: setup/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
runtime: | |
name: Root | |
assets: | |
- path: runtime/unordered/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
nested: | |
- name: Ordered | |
sequential: true | |
assets: | |
- path: runtime/ordered/first | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
- path: runtime/ordered/second | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
required: | |
- version | |
properties: | |
version: | |
type: integer | |
title: Version | |
description: The version of Mason project to use when compiling | |
examples: | |
- 1 | |
pattern: ^\d+$ | |
ignore: | |
type: array | |
title: Ignored warnings | |
description: IDs of warnings to not display | |
examples: | |
- - C10 | |
items: | |
type: string | |
title: Ignored warning | |
description: >- | |
An ID of a warning to not display. An ID is comprised by the scope (S: | |
standalone, C: compiler, P: patcher) and number | |
pattern: '^[SCP]\d+$' | |
examples: | |
- C10 | |
additionalItems: false | |
dependencies: | |
type: object | |
title: Dependencies | |
description: Plugins that this project depends on | |
examples: | |
- hard: | |
ExampleHardDependency: 1.2.3 | |
soft: | |
- ExampleSoftDependency | |
properties: | |
hard: | |
type: object | |
title: Hard dependencies | |
description: Plugins that must be present and their respective minimum versions | |
examples: | |
- ExampleHardDependency: 1.2.3 | |
patternProperties: | |
'^[a-zA-Z0-9\._\-]+$': | |
type: string | |
title: Hard dependency | |
description: >- | |
The GUID of a plugin and and the minimum version that must be | |
present | |
pattern: ^\d+\.\d+(\.\d+(\.\d+)?)?$ | |
examples: | |
- 1.2.3 | |
additionalProperties: false | |
soft: | |
type: array | |
title: Soft dependencies | |
description: Plugins that must load before this project if present | |
examples: | |
- - ExampleSoftDependency | |
items: | |
type: string | |
title: Soft dependency | |
description: The GUID of a plugin that must load before this project if present | |
pattern: '^[a-zA-Z0-9\._\-]+$' | |
examples: | |
- ExampleSoftDependency | |
additionalItems: false | |
additionalProperties: false | |
additionalProperties: false | |
incompatibilities: | |
type: array | |
title: Incompatibilities | |
description: >- | |
Plugins that will cause this project to both not load, and display a | |
warning in the console | |
examples: | |
- - ExampleIncompatibility | |
items: | |
type: string | |
title: Incompatibility | |
description: >- | |
A plugin that will cause this project to both not load, and display a | |
warning in the console | |
pattern: '^[a-zA-Z0-9\._\-]+$' | |
examples: | |
- ExampleIncompatibility | |
additionalItems: false | |
processes: | |
type: array | |
title: Processes | |
description: Processes that this plugin can run under. None for any | |
examples: | |
- - ExampleGame.exe | |
items: | |
type: string | |
title: Process | |
description: The file name of a process that this plugin can run under | |
examples: | |
- ExampleGame.exe | |
additionalItems: false | |
assets: | |
type: object | |
title: Assets | |
description: Resources to be loaded via specific loaders | |
examples: | |
- setup: | |
- path: setup/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
runtime: | |
name: Root | |
assets: | |
- path: runtime/unordered/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
nested: | |
- name: Ordered | |
sequential: true | |
assets: | |
- path: runtime/ordered/first | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
- path: runtime/ordered/second | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
properties: | |
setup: | |
type: array | |
title: Assets | |
description: The assets to load during the setup stage | |
examples: | |
- - path: setup/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
items: | |
$ref: '#/definitions/asset' | |
additionalItems: false | |
runtime: | |
$ref: '#/definitions/asset_pipeline' | |
additionalProperties: false | |
additionalProperties: false | |
definitions: | |
asset: | |
type: object | |
title: Asset | |
description: A resource to be loaded into a loader | |
examples: | |
- path: setup/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
required: | |
- path | |
- plugin | |
- loader | |
properties: | |
path: | |
type: string | |
title: Path | |
description: The path to a resource. Globbing supported. | |
examples: | |
- setup/* | |
plugin: | |
type: string | |
title: Plugin | |
description: The plugin that contains the loader to use | |
examples: | |
- ExamplePlugin | |
loader: | |
type: string | |
title: Loader | |
description: The name of the loader to use | |
examples: | |
- ExampleLoader | |
additionalProperties: false | |
asset_pipeline: | |
type: object | |
title: Asset Pipeline | |
description: A collection of runtime assets to load in a particular manner | |
examples: | |
- name: Example Name | |
assets: | |
name: Root | |
assets: | |
- path: runtime/unordered/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
nested: | |
- name: Ordered | |
sequential: true | |
assets: | |
- path: runtime/ordered/first | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
- path: runtime/ordered/second | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
properties: | |
name: | |
type: string | |
title: Name | |
description: 'The human-readable name of the pipeline, used in the debug log' | |
examples: | |
- Root | |
- Ordered | |
sequential: | |
type: boolean | |
title: Sequential | |
description: >- | |
Waits for the previous nested pipeline or asset to finish loading | |
before beginning to load the next one | |
examples: | |
- true | |
assets: | |
type: array | |
title: Assets | |
description: >- | |
The assets to load as part of this pipeline. These will be ran after | |
nested pipelines. | |
examples: | |
- - path: runtime/unordered/* | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
- - path: runtime/ordered/first | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
- path: runtime/ordered/second | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
items: | |
$ref: '#/definitions/asset' | |
additionalItems: false | |
nested: | |
type: array | |
title: Nested Pipelines | |
description: >- | |
Additional pipelines to run. These will be ran before the current | |
pipeline's assets and respect the 'sequential' property. | |
examples: | |
- name: Ordered | |
sequential: true | |
assets: | |
- path: runtime/ordered/first | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
- path: runtime/ordered/second | |
plugin: ExamplePlugin | |
loader: ExampleLoader | |
items: | |
$ref: '#/definitions/asset_pipeline' | |
additionalItems: false | |
additionalProperties: false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment