ScopeDefinition
What a scope is made of: the containers to bring into being and how their occupants see the public world.
Nebula · Packages/com.1by3.nebula/Runtime/ControlPlane/ScopeActivation.cs[Serializable]
public sealed class ScopeDefinitionWhat 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.