ambient_schema 0.3.1

Ambient schema.
Documentation
[package]
name = "Package"
description = "Package-related state and functionality."
content = { type = "Asset", schema = true }
version = "0.3.1"
ambient_version = "0.3.1"

[enums.PackageContent]
description = "The content type of the package."
[enums.PackageContent.members]
Playable = "A playable experience."
Asset = "An asset."
Tool = "A tool."
Mod = "A mod."

[components]
[components.main_package_id]
type = "EntityId"
name = "Main Package ID"
description = "The ID of the main package."
attributes = ["Debuggable", "Networked"]

[components.is_package]
type = "Empty"
name = "Is Package"
description = "Whether or not this entity is a package."
attributes = ["Debuggable", "Networked"]

[components.enabled]
type = "Bool"
name = "Enabled"
description = "Whether or not this package is enabled."
attributes = ["Debuggable", "Networked"]

[components.id]
type = "String"
name = "ID"
description = "The ID of the package."
attributes = ["Debuggable", "Networked"]

[components.name]
type = "String"
name = "Name"
description = "The name of the package."
attributes = ["Debuggable", "Networked"]

[components.version]
type = "String"
name = "Version"
description = "The version of the package."
attributes = ["Debuggable", "Networked"]

[components.authors]
type = { container_type = "Vec", element_type = "String" }
name = "Authors"
description = "The authors of the package."
attributes = ["Debuggable", "Networked"]

[components.description]
type = "String"
name = "Description"
description = "The description of the package. If not attached, the package does not have a description."
attributes = ["Debuggable", "Networked"]

[components.repository]
type = "String"
name = "Repository"
description = "The repository of the package. If not attached, the package does not have a repository."
attributes = ["Debuggable", "Networked"]

[components.for_playables]
type = { container_type = "Vec", element_type = "String" }
name = "For Playables"
description = "The playable IDs that this package is for. This package must be a `Mod`."
attributes = ["Debuggable", "Networked"]

[components.asset_url]
type = "String"
name = "Asset URL"
description = "The asset URL (i.e. where the built assets are) of the package."
attributes = ["Debuggable", "Networked"]

[components.client_modules]
type = { container_type = "Vec", element_type = "EntityId" }
name = "Client Modules"
description = "The clientside WASM modules spawned by this package."
attributes = ["Debuggable", "Networked"]

[components.server_modules]
type = { container_type = "Vec", element_type = "EntityId" }
name = "Server Modules"
description = "The serverside WASM modules spawned by this package."
attributes = ["Debuggable", "Networked"]

[concepts.Package]
name = "Package"
description = "A package is a collection of assets, definitions and WASM logic."
[concepts.Package.components.required]
is_package = {}
enabled = {}
id = {}
name = {}
version = {}
authors = {}
asset_url = {}
client_modules = {}
server_modules = {}
[concepts.Package.components.optional]
description = {}
repository = {}
for_playables = {}

[messages.PackageLoadSuccess]
description = "A package has successfully loaded. Note that this may fire before all of its constituent WASM modules have loaded."
[messages.PackageLoadSuccess.fields]
package = "EntityId"
url = "String"

[messages.PackageLoadFailure]
name = "Package Load Failure"
description = "A package has failed to load."
[messages.PackageLoadFailure.fields]
url = "String"
reason = "String"