net.anisota.chronicle.level

anisota.net

Documentation

Immutable level milestone record. Created once on level-up with createRecord. rkey is zero-padded level (001-099).

main record

Immutable level milestone record. Created once on level-up with createRecord. rkey is zero-padded level (001-099).

Record Key any Any valid record key

Properties

createdAt string datetime Required

When the level was reached

journey ref #journeyData Optional

No description available.

level integer Required

The level that was reached

minimum: 1maximum: 99
View raw schema
{
  "key": "any",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "level",
      "snapshot",
      "signature",
      "createdAt"
    ],
    "properties": {
      "level": {
        "type": "integer",
        "maximum": 99,
        "minimum": 1,
        "description": "The level that was reached"
      },
      "journey": {
        "ref": "#journeyData",
        "type": "ref"
      },
      "snapshot": {
        "ref": "#levelSnapshot",
        "type": "ref"
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "When the level was reached"
      },
      "signature": {
        "ref": "#chronicleSignature",
        "type": "ref"
      }
    }
  },
  "description": "Immutable level milestone record. Created once on level-up with createRecord. rkey is zero-padded level (001-099)."
}
chronicleSignature object

ES256 cryptographic signature proving record authenticity

Properties

alg string Required

Signing algorithm (ES256)

kid string Required

Key identifier for the signing key

nonce string Required

Unique random nonce to prevent replay

sig string Required

Base64-encoded ES256 signature

signedAt string datetime Required

When the record was signed

version integer Required

Signature schema version

View raw schema
{
  "type": "object",
  "required": [
    "sig",
    "alg",
    "kid",
    "signedAt",
    "nonce",
    "version"
  ],
  "properties": {
    "alg": {
      "type": "string",
      "description": "Signing algorithm (ES256)"
    },
    "kid": {
      "type": "string",
      "description": "Key identifier for the signing key"
    },
    "sig": {
      "type": "string",
      "description": "Base64-encoded ES256 signature"
    },
    "nonce": {
      "type": "string",
      "description": "Unique random nonce to prevent replay"
    },
    "version": {
      "type": "integer",
      "description": "Signature schema version"
    },
    "signedAt": {
      "type": "string",
      "format": "datetime",
      "description": "When the record was signed"
    }
  },
  "description": "ES256 cryptographic signature proving record authenticity"
}
journeyData object

Journey info from previous level

Properties

daysFromPreviousLevel integer Optional

Days taken to advance from previous level

minimum: 0
xpGainedFromPreviousLevel integer Optional

XP gained since previous level

minimum: 0
View raw schema
{
  "type": "object",
  "properties": {
    "daysFromPreviousLevel": {
      "type": "integer",
      "minimum": 0,
      "description": "Days taken to advance from previous level"
    },
    "xpGainedFromPreviousLevel": {
      "type": "integer",
      "minimum": 0,
      "description": "XP gained since previous level"
    }
  },
  "description": "Journey info from previous level"
}
levelSnapshot object

Player state at the moment of leveling up

Properties

daysPlayed integer Optional

Total days played at time of level-up

minimum: 0
itemsTotal integer Optional

Total items at time of level-up

minimum: 0
postsReadTotal integer Optional

Total posts read all-time at level-up

minimum: 0
specimensDocumented integer Optional

Total specimens documented at time of level-up

minimum: 0
totalXP integer Required

Total XP at time of level-up

minimum: 0
View raw schema
{
  "type": "object",
  "required": [
    "totalXP"
  ],
  "properties": {
    "totalXP": {
      "type": "integer",
      "minimum": 0,
      "description": "Total XP at time of level-up"
    },
    "daysPlayed": {
      "type": "integer",
      "minimum": 0,
      "description": "Total days played at time of level-up"
    },
    "itemsTotal": {
      "type": "integer",
      "minimum": 0,
      "description": "Total items at time of level-up"
    },
    "postsReadTotal": {
      "type": "integer",
      "minimum": 0,
      "description": "Total posts read all-time at level-up"
    },
    "specimensDocumented": {
      "type": "integer",
      "minimum": 0,
      "description": "Total specimens documented at time of level-up"
    }
  },
  "description": "Player state at the moment of leveling up"
}

Lexicon Garden

@