Schemas / Node graph

rig.node.pin

v0.31.0 · draft 4 fields 4 required

Fields

FieldTypeMeaning
id uint required Stable id within the node
name string required Pin label (may carry domain hint, e.g. rgba)
kind enumin · out required in, out
type propertyType required Property datatype id - see properties

Pin on a rig.node.node.

type vocabulary

Same table as portable property descriptors:

bool, int, uint, float, double, string, vec2, vec3, vec4, quat, entity, enum

Colour is vec4, not a separate type - domain lives in name (e.g. rgba) or the catalog node id. Hosts may draw a colour control for a vec4 pin named rgba.

Empty type = untyped wildcard (link to anything). Prefer concrete types.

Hosts may add prefixed ids (host.foo). Do not invent unprefixed extras (color, any, ...).

Linking

Exact type match always links. Hosts may allow documented coercions at eval (e.g. float to vec2 / vec4) - that is fulfillment, not Contract.

JSON Schema

Resolves at https://rig.works/schemas/rig.node.pin.schema.jsonraw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.node.pin.schema.json",
  "title": "rig.node.pin",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "$ref": "./_defs.schema.json#/$defs/uint"
    },
    "name": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "in",
        "out"
      ]
    },
    "type": {
      "$ref": "./_defs.schema.json#/$defs/propertyType"
    }
  },
  "required": [
    "id",
    "name",
    "kind",
    "type"
  ]
}