# best.mediaserver.lspace.experimental.defs

> Published by [lspace.mediaserver.best](https://lexicon.garden/identity/did:plc:432gc3tn6mbhglopn6idgxnx)

✓ This is the authoritative definition for this NSID.

## Description

Draft shared fields for portable playback history.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:432gc3tn6mbhglopn6idgxnx/best.mediaserver.lspace.experimental.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:432gc3tn6mbhglopn6idgxnx/best.mediaserver.lspace.experimental.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:432gc3tn6mbhglopn6idgxnx/best.mediaserver.lspace.experimental.defs/examples)

## Definitions

### `best.mediaserver.lspace.experimental.defs#workId`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `value` | `string` | Yes |  |
| `namespace` | `string` | Yes |  |

### `best.mediaserver.lspace.experimental.defs#progress`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `subject` | `array` | Yes |  |
| `sequence` | `integer` | Yes |  |
| `timeline` | `string` | Yes | SHA-256 of the exact media file. Only an equal fingerprint permits automatic resume. |
| `completed` | `boolean` | Yes |  |
| `durationMs` | `integer` | Yes |  |
| `playbackId` | `string` | Yes |  |
| `positionMs` | `integer` | Yes |  |

### `best.mediaserver.lspace.experimental.defs#retraction`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `targetEventId` | `string` | Yes |  |

## Raw Schema

```json
{
  "id": "best.mediaserver.lspace.experimental.defs",
  "defs": {
    "workId": {
      "type": "object",
      "required": [
        "namespace",
        "value"
      ],
      "properties": {
        "value": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1
        },
        "namespace": {
          "enum": [
            "imdb",
            "wikidata",
            "tmdb.movie",
            "tmdb.tv"
          ],
          "type": "string"
        }
      }
    },
    "progress": {
      "type": "object",
      "required": [
        "playbackId",
        "sequence",
        "subject",
        "timeline",
        "positionMs",
        "durationMs",
        "completed"
      ],
      "properties": {
        "subject": {
          "type": "array",
          "items": {
            "ref": "lex:best.mediaserver.lspace.experimental.defs#workId",
            "type": "ref"
          },
          "maxLength": 16,
          "minLength": 1
        },
        "sequence": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0
        },
        "timeline": {
          "type": "string",
          "maxLength": 71,
          "minLength": 71,
          "description": "SHA-256 of the exact media file. Only an equal fingerprint permits automatic resume."
        },
        "completed": {
          "type": "boolean"
        },
        "durationMs": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1
        },
        "playbackId": {
          "type": "string",
          "maxLength": 36,
          "minLength": 36
        },
        "positionMs": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0
        }
      }
    },
    "retraction": {
      "type": "object",
      "required": [
        "targetEventId"
      ],
      "properties": {
        "targetEventId": {
          "type": "string",
          "maxLength": 36,
          "minLength": 36
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "Draft shared fields for portable playback history."
}
```
