Nebula
Control plane

ScopeDefinition

What a scope is made of: the containers to bring into being and how their occupants see the public world.

generated from the sources
[Serializable]
public sealed class ScopeDefinition

What a scope is made of: the containers to bring into being and how their occupants see the public world. A definition is compared by value (its canonical JSON), so activating the same key twice with the same definition is a no-op and activating it with a different one is refused rather than silently merged.

Kind and Payload are the extension seam: scoped chunk grids (NEB-239) add a kind of their own and put the grid definition in the payload. Nebula carries the payload verbatim and never parses it.

Fields

Kind

public string Kind = ScopeKind.Parts;

Parts

public List<ScopePart> Parts = new List<ScopePart>();

Payload

public string Payload = "";

An opaque blob the game or a later milestone attaches to the definition. Never parsed by Nebula.

HasPose

public bool HasPose;

Whether the scope's own space is turned against the host it is entered from (InstanceContainerInfo.HasPose, docs/scope-frames.md D12). Copied to every part's lease row. Written only when set, so a definition without it compares equal to one written before it existed.

PoseOrigin

public Double3 PoseOrigin;

The point the scope's space and its host's share, absolute.

PoseRotation

public Quaternion PoseRotation = Quaternion.identity;

The scope's axes in its host's.

Methods

Validate

public string Validate();

The reason this definition cannot be activated, or null when it is well formed.

On this page