equipment.rpg.item

rpg.actor

Documentation

An item in the player's inventory. Self-contained with all data needed for rendering and display. The give URI and assetCid enable verification against the provider's attestation. Each record is one item.

main record
1 example

An item in the player's inventory. Self-contained with all data needed for rendering and display. The give URI and assetCid enable verification against the provider's attestation. Each record is one item.

Record Key any Any valid record key

Properties

acceptedAt string datetime Required

When the player accepted this item.

asset blob Optional

The item's sprite layer artwork (144x192 PNG). Required for 'layer' items, optional for 'inventory' items.

assetCid string Optional

CID of the canonical asset PNG, copied from the give. Matches the asset blob's ref when the copy is genuine.

maxLength: 200 bytes
behindRows array of integer Optional

Sprite-sheet row indices (0-3) where this layer composites behind the body via destination-over blending. Row 0=down, 1=left, 2=right, 3=up. Omit for normal source-over on all rows.

maxLength: 4 items
bodyTypeAlt unknown Optional

Per-body-class alternate artwork map. Keys such as body.feminine map to structured fallbacks matching #fallback.

category string Optional

Generator layer category for 'layer' items (e.g. 'tops', 'righthand'). Ignored for 'inventory' items.

maxLength: 30 bytes
channels array of ref #channel Optional

Color channels defined by this item's colorway. Each entry names a recolorable region and declares its sentinel color and optional default.

maxLength: 8 items
colorway blob Optional

Colorway map (_c) for the asset. A 144x192 PNG with sentinel-colored pixels indicating recolorable regions. Required for 'layer' items that support recoloring.

context string Optional

Origin description copied from the give record.

maxLength: 200 bytes
description string Optional

Flavour text or description.

maxLength: 500 bytes
fitClass string Optional

Fit-class tag for this item (format <category>.<name>) used by class-based suppression.

maxLength: 90 bytes
give string at-uri Required

AT URI of the equipment.rpg.give record on the provider's PDS.

icon blob Optional

Small standalone icon for the item (e.g. 64x64 PNG). Used in inventory displays and profile panels.

iconCid string Optional

CID of the canonical icon PNG, copied from the give. Matches the icon blob's ref when the copy is genuine. Omit if there's no icon.

maxLength: 200 bytes
item string Required

Item identifier matching the give record (e.g. 'popcorn', 'theatre_shirt').

maxLength: 50 bytes
kind string Optional

Item kind. 'layer' for sprite-generator wearables (requires category + asset). For non-wearable inventory items, use any descriptive type string such as 'badge', 'potion', 'map', 'key', 'ticket', etc. This value is shown as the item's type label in the player's inventory. Defaults to 'layer' if omitted.

maxLength: 20 bytes
provider string did Required

DID of the provider who gave this item.

stats unknown Optional

Item properties copied from the give record at acceptance time.

submaskExclusions ref #submaskExclusions Optional

Target-side exceptions to submaskRule. The layers array contains exact canonical source layer IDs and the classes array contains exact source layerClass or fitClass values; matching source masks are skipped before submaskRule is evaluated. Omission or empty arrays means no source-specific exclusions.

submaskRule string Optional

Controls which external subtractive masks may affect this asset. Omission means respect-all.

maxLength: 24 bytes
Known values: respect-all, ignore-all, ignore-layers-above, ignore-layers-below
suppressAs string Optional

When this item is suppressed, render this same-category item name instead (e.g. replace pigtails with basic short).

maxLength: 120 bytes
suppressAsFallback ref #fallback Optional

Self-contained artwork for suppressAs when the fallback is not otherwise available to the generator.

suppressClasses array of string Optional

Fit-class identifiers that should be hidden while this item is equipped (e.g. hide all items tagged hair.*).

maxLength: 20 items
suppressLayers array of string Optional

Layer IDs that should be hidden while this item is equipped (e.g. a hat suppressing hair and bangs).

maxLength: 20 items
suppressSpecific unknown Optional

Per-suppressor override map. Values may be a structured #fallback or a rule with default and bodyTypeAlt fallbacks. The active body-specific value takes priority over the class default, then suppressAs.

title string Required

Display name for the item.

maxLength: 100 bytes
zSlot integer Optional

Legacy all-direction draw-order slot. zSlotByDir takes precedence.

minimum: 0maximum: 30
zSlotByDir unknown Optional

Per-direction draw-order slots [down, left, right, up]. Entries are non-negative integers or null when the category default applies.

View raw schema
{
  "description": "An item in the player's inventory. Self-contained with all data needed for rendering and display. The give URI and assetCid enable verification against the provider's attestation. Each record is one item.",
  "key": "any",
  "record": {
    "properties": {
      "acceptedAt": {
        "description": "When the player accepted this item.",
        "format": "datetime",
        "type": "string"
      },
      "asset": {
        "accept": [
          "image/png"
        ],
        "description": "The item's sprite layer artwork (144x192 PNG). Required for 'layer' items, optional for 'inventory' items.",
        "type": "blob"
      },
      "assetCid": {
        "description": "CID of the canonical asset PNG, copied from the give. Matches the asset blob's ref when the copy is genuine.",
        "maxLength": 200,
        "type": "string"
      },
      "behindRows": {
        "description": "Sprite-sheet row indices (0-3) where this layer composites behind the body via destination-over blending. Row 0=down, 1=left, 2=right, 3=up. Omit for normal source-over on all rows.",
        "items": {
          "maximum": 3,
          "minimum": 0,
          "type": "integer"
        },
        "maxLength": 4,
        "type": "array"
      },
      "bodyTypeAlt": {
        "description": "Per-body-class alternate artwork map. Keys such as body.feminine map to structured fallbacks matching #fallback.",
        "type": "unknown"
      },
      "category": {
        "description": "Generator layer category for 'layer' items (e.g. 'tops', 'righthand'). Ignored for 'inventory' items.",
        "maxLength": 30,
        "type": "string"
      },
      "channels": {
        "description": "Color channels defined by this item's colorway. Each entry names a recolorable region and declares its sentinel color and optional default.",
        "items": {
          "ref": "#channel",
          "type": "ref"
        },
        "maxLength": 8,
        "type": "array"
      },
      "colorway": {
        "accept": [
          "image/png"
        ],
        "description": "Colorway map (_c) for the asset. A 144x192 PNG with sentinel-colored pixels indicating recolorable regions. Required for 'layer' items that support recoloring.",
        "type": "blob"
      },
      "context": {
        "description": "Origin description copied from the give record.",
        "maxLength": 200,
        "type": "string"
      },
      "description": {
        "description": "Flavour text or description.",
        "maxLength": 500,
        "type": "string"
      },
      "fitClass": {
        "description": "Fit-class tag for this item (format <category>.<name>) used by class-based suppression.",
        "maxLength": 90,
        "type": "string"
      },
      "give": {
        "description": "AT URI of the equipment.rpg.give record on the provider's PDS.",
        "format": "at-uri",
        "type": "string"
      },
      "icon": {
        "accept": [
          "image/png"
        ],
        "description": "Small standalone icon for the item (e.g. 64x64 PNG). Used in inventory displays and profile panels.",
        "type": "blob"
      },
      "iconCid": {
        "description": "CID of the canonical icon PNG, copied from the give. Matches the icon blob's ref when the copy is genuine. Omit if there's no icon.",
        "maxLength": 200,
        "type": "string"
      },
      "item": {
        "description": "Item identifier matching the give record (e.g. 'popcorn', 'theatre_shirt').",
        "maxLength": 50,
        "type": "string"
      },
      "kind": {
        "description": "Item kind. 'layer' for sprite-generator wearables (requires category + asset). For non-wearable inventory items, use any descriptive type string such as 'badge', 'potion', 'map', 'key', 'ticket', etc. This value is shown as the item's type label in the player's inventory. Defaults to 'layer' if omitted.",
        "maxLength": 20,
        "type": "string"
      },
      "provider": {
        "description": "DID of the provider who gave this item.",
        "format": "did",
        "type": "string"
      },
      "stats": {
        "description": "Item properties copied from the give record at acceptance time.",
        "type": "unknown"
      },
      "submaskExclusions": {
        "description": "Target-side exceptions to submaskRule. The layers array contains exact canonical source layer IDs and the classes array contains exact source layerClass or fitClass values; matching source masks are skipped before submaskRule is evaluated. Omission or empty arrays means no source-specific exclusions.",
        "ref": "#submaskExclusions",
        "type": "ref"
      },
      "submaskRule": {
        "description": "Controls which external subtractive masks may affect this asset. Omission means respect-all.",
        "knownValues": [
          "respect-all",
          "ignore-all",
          "ignore-layers-above",
          "ignore-layers-below"
        ],
        "maxLength": 24,
        "type": "string"
      },
      "suppress": {
        "ref": "#suppressionRules",
        "type": "ref"
      },
      "suppressAs": {
        "description": "When this item is suppressed, render this same-category item name instead (e.g. replace pigtails with basic short).",
        "maxLength": 120,
        "type": "string"
      },
      "suppressAsFallback": {
        "description": "Self-contained artwork for suppressAs when the fallback is not otherwise available to the generator.",
        "ref": "#fallback",
        "type": "ref"
      },
      "suppressClasses": {
        "description": "Fit-class identifiers that should be hidden while this item is equipped (e.g. hide all items tagged hair.*).",
        "items": {
          "maxLength": 90,
          "type": "string"
        },
        "maxLength": 20,
        "type": "array"
      },
      "suppressLayers": {
        "description": "Layer IDs that should be hidden while this item is equipped (e.g. a hat suppressing hair and bangs).",
        "items": {
          "maxLength": 30,
          "type": "string"
        },
        "maxLength": 20,
        "type": "array"
      },
      "suppressSpecific": {
        "description": "Per-suppressor override map. Values may be a structured #fallback or a rule with default and bodyTypeAlt fallbacks. The active body-specific value takes priority over the class default, then suppressAs.",
        "type": "unknown"
      },
      "title": {
        "description": "Display name for the item.",
        "maxLength": 100,
        "type": "string"
      },
      "zSlot": {
        "description": "Legacy all-direction draw-order slot. zSlotByDir takes precedence.",
        "maximum": 30,
        "minimum": 0,
        "type": "integer"
      },
      "zSlotByDir": {
        "description": "Per-direction draw-order slots [down, left, right, up]. Entries are non-negative integers or null when the category default applies.",
        "type": "unknown"
      }
    },
    "required": [
      "item",
      "title",
      "give",
      "provider",
      "acceptedAt"
    ],
    "type": "object"
  },
  "type": "record"
}
channel object

No description available.

Properties

color string Optional

Sentinel hex color in the colorway map.

maxLength: 7 bytes
defaultColor string Optional

Suggested default hex color for the color picker.

maxLength: 7 bytes
name string Required

Channel identifier such as main, sub1, brim, or ribbon.

maxLength: 20 bytes
View raw schema
{
  "properties": {
    "color": {
      "description": "Sentinel hex color in the colorway map.",
      "maxLength": 7,
      "type": "string"
    },
    "defaultColor": {
      "description": "Suggested default hex color for the color picker.",
      "maxLength": 7,
      "type": "string"
    },
    "name": {
      "description": "Channel identifier such as main, sub1, brim, or ribbon.",
      "maxLength": 20,
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "type": "object"
}
fallback object

Self-contained alternate artwork used for suppression or body-type adaptation.

Properties

asset blob Required

No description available.

maxSize: 1.0 MB
assetName string Required

No description available.

maxLength: 120 bytes
colorway blob Optional

No description available.

maxSize: 1.0 MB
View raw schema
{
  "description": "Self-contained alternate artwork used for suppression or body-type adaptation.",
  "properties": {
    "asset": {
      "accept": [
        "image/png"
      ],
      "maxSize": 1000000,
      "type": "blob"
    },
    "assetName": {
      "maxLength": 120,
      "type": "string"
    },
    "colorway": {
      "accept": [
        "image/png"
      ],
      "maxSize": 1000000,
      "type": "blob"
    }
  },
  "required": [
    "assetName",
    "asset"
  ],
  "type": "object"
}
submaskExclusions object

Target-side exceptions for subtractive masks. List exact canonical source layer IDs in layers, or exact source layerClass or fitClass values in classes; matching source masks must not erase the target item. Omission or empty arrays means no source-specific exclusions.

Properties

classes array of string Optional

Exact source layerClass or fitClass values whose subtractive masks must be skipped.

maxLength: 64 items
layers array of string Optional

Exact canonical source layer IDs whose subtractive masks must be skipped.

maxLength: 32 items
View raw schema
{
  "description": "Target-side exceptions for subtractive masks. List exact canonical source layer IDs in layers, or exact source layerClass or fitClass values in classes; matching source masks must not erase the target item. Omission or empty arrays means no source-specific exclusions.",
  "properties": {
    "classes": {
      "description": "Exact source layerClass or fitClass values whose subtractive masks must be skipped.",
      "items": {
        "maxLength": 90,
        "type": "string"
      },
      "maxLength": 64,
      "type": "array"
    },
    "layers": {
      "description": "Exact canonical source layer IDs whose subtractive masks must be skipped.",
      "items": {
        "maxLength": 30,
        "type": "string"
      },
      "maxLength": 32,
      "type": "array"
    }
  },
  "type": "object"
}
suppressionRules object

Layer categories and fit classes hidden while this item is active.

Properties

categories array of string Optional

No description available.

maxLength: 20 items
classes array of string Optional

No description available.

maxLength: 20 items
layerClasses array of string Optional

No description available.

maxLength: 20 items
View raw schema
{
  "description": "Layer categories and fit classes hidden while this item is active.",
  "properties": {
    "categories": {
      "items": {
        "maxLength": 30,
        "type": "string"
      },
      "maxLength": 20,
      "type": "array"
    },
    "classes": {
      "items": {
        "maxLength": 90,
        "type": "string"
      },
      "maxLength": 20,
      "type": "array"
    },
    "layerClasses": {
      "items": {
        "maxLength": 90,
        "type": "string"
      },
      "maxLength": 20,
      "type": "array"
    }
  },
  "type": "object"
}

Lexicon Garden

@