net.anisota.chronicle.expedition.camp

anisota.net

Documentation

Camp record. Created when a user makes camp during an expedition. Updated when camp is broken. References the parent expedition record via AT URI.

main record

Camp record. Created when a user makes camp during an expedition. Updated when camp is broken. References the parent expedition record via AT URI.

Record Key tid Timestamp-based ID

Properties

brokeAt string datetime Optional

When camp was broken (only set when status is 'completed')

campNumber integer Optional

Sequential camp number within the parent expedition (1, 2, 3...). Combined with expeditionNumber gives e.g. Camp 2.1, Camp 2.3

minimum: 1
campedAt string datetime Required

When camp was set up

createdAt string datetime Required

When the record was created

duration integer Optional

Total camp duration in milliseconds (only set when status is 'completed')

minimum: 0
expeditionRef string at-uri Required

AT URI of the parent expedition record (net.anisota.chronicle.expedition)

light ref #campLight Optional

No description available.

reason string Required

Why camp was made

Allowed: user_initiated, light_low, stamina_low, conditions_harsh
status string Required

Whether the camp is currently active or has been broken

Allowed: active, completed
updatedAt string datetime Optional

When the record was last updated (set on break camp)

View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "expeditionRef",
      "status",
      "campedAt",
      "reason",
      "signature",
      "createdAt"
    ],
    "properties": {
      "light": {
        "ref": "#campLight",
        "type": "ref"
      },
      "reason": {
        "enum": [
          "user_initiated",
          "light_low",
          "stamina_low",
          "conditions_harsh"
        ],
        "type": "string",
        "description": "Why camp was made"
      },
      "status": {
        "enum": [
          "active",
          "completed"
        ],
        "type": "string",
        "description": "Whether the camp is currently active or has been broken"
      },
      "brokeAt": {
        "type": "string",
        "format": "datetime",
        "description": "When camp was broken (only set when status is 'completed')"
      },
      "campedAt": {
        "type": "string",
        "format": "datetime",
        "description": "When camp was set up"
      },
      "duration": {
        "type": "integer",
        "minimum": 0,
        "description": "Total camp duration in milliseconds (only set when status is 'completed')"
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "When the record was created"
      },
      "signature": {
        "ref": "#chronicleSignature",
        "type": "ref"
      },
      "updatedAt": {
        "type": "string",
        "format": "datetime",
        "description": "When the record was last updated (set on break camp)"
      },
      "campNumber": {
        "type": "integer",
        "minimum": 1,
        "description": "Sequential camp number within the parent expedition (1, 2, 3...). Combined with expeditionNumber gives e.g. Camp 2.1, Camp 2.3"
      },
      "conditions": {
        "ref": "#campConditions",
        "type": "ref"
      },
      "expeditionRef": {
        "type": "string",
        "format": "at-uri",
        "description": "AT URI of the parent expedition record (net.anisota.chronicle.expedition)"
      }
    }
  },
  "description": "Camp record. Created when a user makes camp during an expedition. Updated when camp is broken. References the parent expedition record via AT URI."
}
campConditions object

Environmental conditions when camp was made

Properties

lightLevel string Optional

Time-of-day light condition when camp was made

weather string Optional

Weather condition when camp was made

View raw schema
{
  "type": "object",
  "properties": {
    "weather": {
      "enum": [
        "clear",
        "overcast",
        "rainy",
        "stormy",
        "foggy"
      ],
      "type": "string",
      "description": "Weather condition when camp was made"
    },
    "lightLevel": {
      "enum": [
        "dawn",
        "morning",
        "midday",
        "afternoon",
        "dusk",
        "night",
        "deepnight"
      ],
      "type": "string",
      "description": "Time-of-day light condition when camp was made"
    }
  },
  "description": "Environmental conditions when camp was made"
}
campLight object

Light levels at camp start/end

Properties

atBreak integer Optional

Light level when camp was broken (in minutes)

minimum: 0
atCamp integer Optional

Light level when camp was made (in minutes)

minimum: 0
regenerated integer Optional

Light regenerated during camp

minimum: 0
View raw schema
{
  "type": "object",
  "properties": {
    "atCamp": {
      "type": "integer",
      "minimum": 0,
      "description": "Light level when camp was made (in minutes)"
    },
    "atBreak": {
      "type": "integer",
      "minimum": 0,
      "description": "Light level when camp was broken (in minutes)"
    },
    "regenerated": {
      "type": "integer",
      "minimum": 0,
      "description": "Light regenerated during camp"
    }
  },
  "description": "Light levels at camp start/end"
}
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"
}

Lexicon Garden

@