social.sthenos.alpha.workout

sthenos.social

Documentation

A completed training session: an ordered list of exercises, each with the sets actually performed.

main record

A completed training session: an ordered list of exercises, each with the sets actually performed.

Record Key tid Timestamp-based ID

Properties

completedAt string datetime Required

ISO 8601 timestamp marking when the session was completed.

createdAt string datetime Required

ISO 8601 timestamp of record creation.

exercises array of ref #exerciseEntry Required

Ordered exercises performed in this session. Array order is the canonical order; no separate sort field is needed because records are replaced wholesale on edit.

maxLength: 100 items
name string Optional

Optional display name for the session, e.g. "Push Day A".

maxLength: 640 bytesmaxGraphemes: 64 graphemes
notes string Optional

Optional freeform notes about the session.

maxLength: 10000 bytesmaxGraphemes: 1000 graphemes
startedAt string datetime Required

ISO 8601 timestamp marking when the session was started.

View raw schema
{
  "description": "A completed training session: an ordered list of exercises, each with the sets actually performed.",
  "key": "tid",
  "record": {
    "properties": {
      "completedAt": {
        "description": "ISO 8601 timestamp marking when the session was completed.",
        "format": "datetime",
        "type": "string"
      },
      "createdAt": {
        "description": "ISO 8601 timestamp of record creation.",
        "format": "datetime",
        "type": "string"
      },
      "exercises": {
        "description": "Ordered exercises performed in this session. Array order is the canonical order; no separate sort field is needed because records are replaced wholesale on edit.",
        "items": {
          "ref": "#exerciseEntry",
          "type": "ref"
        },
        "maxLength": 100,
        "type": "array"
      },
      "name": {
        "description": "Optional display name for the session, e.g. \"Push Day A\".",
        "maxGraphemes": 64,
        "maxLength": 640,
        "type": "string"
      },
      "notes": {
        "description": "Optional freeform notes about the session.",
        "maxGraphemes": 1000,
        "maxLength": 10000,
        "type": "string"
      },
      "startedAt": {
        "description": "ISO 8601 timestamp marking when the session was started.",
        "format": "datetime",
        "type": "string"
      }
    },
    "required": [
      "startedAt",
      "completedAt",
      "createdAt",
      "exercises"
    ],
    "type": "object"
  },
  "type": "record"
}
exerciseEntry object

One exercise performed within a workout, with the sets performed for it. Either 'exercise' (a backing record reference) or 'name' (an inline label) should be present; entries missing both should be ignored by consumers.

Properties

exercise ref com.atproto.repo.strongRef Optional

Strong reference (uri + cid) to the social.sthenos.alpha.exercise record performed. Optional: omit for an inline/custom exercise with no backing record, in which case 'name' should be set.

name string Optional

Display name for an inline/custom exercise when 'exercise' is omitted, or an optional override label when it is present.

maxLength: 640 bytesmaxGraphemes: 64 graphemes
sets array of ref#set Required

Sets performed for this exercise, in order. Array order is the canonical order; no separate sort field is needed because records are replaced wholesale on edit.

maxLength: 100 items
View raw schema
{
  "description": "One exercise performed within a workout, with the sets performed for it. Either 'exercise' (a backing record reference) or 'name' (an inline label) should be present; entries missing both should be ignored by consumers.",
  "properties": {
    "exercise": {
      "description": "Strong reference (uri + cid) to the social.sthenos.alpha.exercise record performed. Optional: omit for an inline/custom exercise with no backing record, in which case 'name' should be set.",
      "ref": "com.atproto.repo.strongRef",
      "type": "ref"
    },
    "name": {
      "description": "Display name for an inline/custom exercise when 'exercise' is omitted, or an optional override label when it is present.",
      "maxGraphemes": 64,
      "maxLength": 640,
      "type": "string"
    },
    "sets": {
      "description": "Sets performed for this exercise, in order. Array order is the canonical order; no separate sort field is needed because records are replaced wholesale on edit.",
      "items": {
        "ref": "#set",
        "type": "ref"
      },
      "maxLength": 100,
      "type": "array"
    }
  },
  "required": [
    "sets"
  ],
  "type": "object"
}
set object

A single performed set.

Properties

reps integer Required

Number of repetitions performed.

minimum: 0maximum: 1000
weight ref #weight Optional

The weight lifted in this set. Optional; omit for bodyweight or unweighted sets.

View raw schema
{
  "description": "A single performed set.",
  "properties": {
    "reps": {
      "description": "Number of repetitions performed.",
      "maximum": 1000,
      "minimum": 0,
      "type": "integer"
    },
    "weight": {
      "description": "The weight lifted in this set. Optional; omit for bodyweight or unweighted sets.",
      "ref": "#weight",
      "type": "ref"
    }
  },
  "required": [
    "reps"
  ],
  "type": "object"
}
weight object

A weight value paired with its unit.

Properties

unit string Required

Unit the value is expressed in.

Known values: kg, lb
value string Required

Decimal weight expressed as a string to preserve exact user-entered precision (e.g. "22.5").

maxLength: 12 bytesminLength: 1 bytes
View raw schema
{
  "description": "A weight value paired with its unit.",
  "properties": {
    "unit": {
      "description": "Unit the value is expressed in.",
      "knownValues": [
        "kg",
        "lb"
      ],
      "type": "string"
    },
    "value": {
      "description": "Decimal weight expressed as a string to preserve exact user-entered precision (e.g. \"22.5\").",
      "maxLength": 12,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "value",
    "unit"
  ],
  "type": "object"
}

Lexicon Garden

@