net.anisota.chronicle.walk.camp

anisota.net

Documentation

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

main record

Camp record. Created when a user makes camp during a walk. Updated when camp is broken. References the parent walk 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 walk (1, 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 minutes (only set when status is 'completed'). Minutes throughout the walk system, unlike the legacy expedition camp lexicon's milliseconds.

minimum: 0
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)

walkRef string at-uri Required

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

View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "walkRef",
      "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')"
      },
      "walkRef": {
        "type": "string",
        "format": "at-uri",
        "description": "AT URI of the parent walk record (net.anisota.chronicle.walk)"
      },
      "campedAt": {
        "type": "string",
        "format": "datetime",
        "description": "When camp was set up"
      },
      "duration": {
        "type": "integer",
        "minimum": 0,
        "description": "Total camp duration in minutes (only set when status is 'completed'). Minutes throughout the walk system, unlike the legacy expedition camp lexicon's milliseconds."
      },
      "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 walk (1, 2, 3...)"
      },
      "conditions": {
        "ref": "#campConditions",
        "type": "ref"
      }
    }
  },
  "description": "Camp record. Created when a user makes camp during a walk. Updated when camp is broken. References the parent walk 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

@