Skip to content

Commit

Permalink
fix: Fix links and formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
jlacivita committed Oct 27, 2023
1 parent 751b3eb commit 9668729
Show file tree
Hide file tree
Showing 6 changed files with 228 additions and 157 deletions.
35 changes: 21 additions & 14 deletions requirements/specifications/entities/channels.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
# Channel Entities

Document Status: Working Draft
Document Status: Proposed Specification

See [Firebolt Requirements Governance](../../governance.md) for more info.
See [Firebolt Requirements Governance](../../governance.md) for more info.

| Contributor | Organization |
| -------------- | -------------- |
| Jeremy LaCivita | Comcast |
| Contributor | Organization |
| --------------- | ------------ |
| Jeremy LaCivita | Comcast |

## 1. Overview
TBD...
TBD...

The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in [BCP 14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL
NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT
RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be
interpreted as described in [BCP
14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and
only when, they appear in all capitals, as shown here.

## 2. Table of Contents
- [1. Overview](#1-overview)
Expand All @@ -20,31 +25,33 @@ The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL


## 3. Channel Entities
Every Channel Entity **MUST** be an [Entity](./index.md#3-entities).
Every Channel Entity **MUST** be an [Entity](./index.md#3-entities).

Every Channel Entity **MUST** have a `const` property named `entityType`, which **MUST** have the value `"channel"`.
Every Channel Entity **MUST** have a `const` property named `entityType`, which
**MUST** have the value `"channel"`.

Every Channel Entity **MUST** have a `string` property named `channelType`, whose value **MUST** be one of:
Every Channel Entity **MUST** have a `string` property named `channelType`,
whose value **MUST** be one of:

- `"streaming"`
- `"broadcast"`

An example Channel Entity:
An example Channel Entity:

```json
{
"entityType": "channel",
"channelType": "streaming",
"entityId": "streaming/xyz"
}
```
```

Another example Channel Entity:
Another example Channel Entity:

```json
{
"entityType": "channel",
"channelType": "broadcast",
"entityId": "broadcast/xyz"
}
```
```
53 changes: 36 additions & 17 deletions requirements/specifications/entities/index.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
# Firebolt Entities

Document Status: Working Draft
Document Status: Proposed Specification

See [Firebolt Requirements Governance](../../governance.md) for more info.
See [Firebolt Requirements Governance](../../governance.md) for more info.

## 1. Overview
Entities are object which identify a piece of content that an end-user may consume within an app.
Entities are object which identify a piece of content that an end-user may
consume within an app.

Firebolt uses Entities or Entity Ids as parameters and/or results of content-centric Firebolt APIs that an App may interact with.
Firebolt uses Entities or Entity Ids as parameters and/or results of
content-centric Firebolt APIs that an App may interact with.

The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in [BCP 14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL
NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT
RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be
interpreted as described in [BCP
14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and
only when, they appear in all capitals, as shown here.

## 2. Table of Contents
- [1. Overview](#1-overview)
Expand All @@ -19,46 +26,58 @@ The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL
- [5. Entity Specifications](#5-entity-specifications)

## 3. Entities
Every Entity **MUST** be of type `object`.
Every Entity **MUST** be of type `object`.

Every Entity object **MUST** have a `string` property named `entityId`, which identifies the entity. The scope of entity identifiers **SHOULD** be defined by the app providing or receiving the Entity, so that the App may work across Firebolt distrubutions without mapping IDs from a distributor space to the App's space.
Every Entity object **MUST** have a `string` property named `entityId`, which
identifies the entity. The scope of entity identifiers **SHOULD** be defined by
the app providing or receiving the Entity, so that the App may work across
Firebolt distrubutions without mapping IDs from a distributor space to the
App's space.

Every Entity object **MAY** have a `string` property named `assetId`, which disambiguates the asset from the entity, if needed. The scope of asset identifiers **SHOULD** be defined by the app providing or receiving the Entity, so that the App may work across Firebolt distrubutions without mapping IDs from a distributor space to the App's space.
Every Entity object **MAY** have a `string` property named `assetId`, which
disambiguates the asset from the entity, if needed. The scope of asset
identifiers **SHOULD** be defined by the app providing or receiving the Entity,
so that the App may work across Firebolt distrubutions without mapping IDs from
a distributor space to the App's space.

Every Entity object **MAY** have a `string` property named `appContentData`, limited to 256 characters, which provides additional information useful for targeting that Entity, e.g. a deeplink path.
Every Entity object **MAY** have a `string` property named `appContentData`,
limited to 256 characters, which provides additional information useful for
targeting that Entity, e.g. a deeplink path.

An example Entity:
An example Entity:

```json
{
"entityId": "entity/abc"
}
```
```

Another example Entity:
Another example Entity:

```json
{
"entityId": "entity/abc",
"assetId": "asset/123",
"appContentData": "xyz"
}
```
```

Firebolt platforms **MUST NOT** infer anything from the values of these fields, although back-office systems operated by Firebolt distributors may.
Firebolt platforms **MUST NOT** infer anything from the values of these fields,
although back-office systems operated by Firebolt distributors may.

## 4. Playlist Entities
A playlist is a type of entity that points to a list of other entities.
A playlist is a type of entity that points to a list of other entities.

Since entity IDs are in the target app's scope, it is up to each app to know what to do with the contents of a given playlist.
Since entity IDs are in the target app's scope, it is up to each app to know
what to do with the contents of a given playlist.


```json
{
"entityType": "playlist",
"entityId": "playlist/xyz"
}
```
```

## 5. Entity Specifications

Expand Down
44 changes: 26 additions & 18 deletions requirements/specifications/entities/music.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
# Music Entities

Document Status: Working Draft
Document Status: Proposed Specification

See [Firebolt Requirements Governance](../../governance.md) for more info.
See [Firebolt Requirements Governance](../../governance.md) for more info.

| Contributor | Organization |
| --------------- | -------------- |
| Jeremy LaCivita | Comcast |
| Liz Sheffield | Comcast |
| Contributor | Organization |
| --------------- | ------------ |
| Jeremy LaCivita | Comcast |
| Liz Sheffield | Comcast |

## 1. Overview
TBD...
TBD...

The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in [BCP 14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL
NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT
RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be
interpreted as described in [BCP
14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and
only when, they appear in all capitals, as shown here.

## 2. Table of Contents
- [1. Overview](#1-overview)
Expand All @@ -22,39 +27,42 @@ The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL


## 3. Music Entities
Every Music Entity **MUST** be an [Entity](../index#3-entities).
Every Music Entity **MUST** be an [Entity](./index.md#3-entities).

Every Music Entity **MUST** have a `const` property named `entityType`, which **MUST** have the value `"music"`.
Every Music Entity **MUST** have a `const` property named `entityType`, which
**MUST** have the value `"music"`.

Every Music Entity **MUST** have a `string` property named `musicType`, whose value **MUST** be one of:
Every Music Entity **MUST** have a `string` property named `musicType`, whose
value **MUST** be one of:

- `"song"`
- `"album"`

An example Music Entity:
An example Music Entity:

```json
{
"entityType": "music",
"musicType": "song",
"entityId": "song/xyz"
}
```
```

Another example Music Entity:
Another example Music Entity:

```json
{
"entityType": "music",
"musicType": "album",
"entityId": "album/xyz"
}
```
```

### 3.1. Optional Music Entity Properties
A Music Entity **MAY** have a `string` property named `albumId` if its musicType is `song`, otherwise the entity **MUST NOT** have this property.
A Music Entity **MAY** have a `string` property named `albumId` if its
musicType is `song`, otherwise the entity **MUST NOT** have this property.

An example Music Entity:
An example Music Entity:

```json
{
Expand All @@ -63,4 +71,4 @@ An example Music Entity:
"entityId": "song/xyz",
"albumId": "album/xyz"
}
```
```
52 changes: 31 additions & 21 deletions requirements/specifications/entities/programs.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
# Program Entities

Document Status: Working Draft
Document Status: Proposed Specification

See [Firebolt Requirements Governance](../../governance.md) for more info.
See [Firebolt Requirements Governance](../../governance.md) for more info.

| Contributor | Organization |
| -------------- | -------------- |
| Seth Kelly | Comcast |
| Jeremy LaCivita | Comcast |
| Contributor | Organization |
| --------------- | ------------ |
| Seth Kelly | Comcast |
| Jeremy LaCivita | Comcast |

## 1. Overview
TBD...
TBD...

The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in [BCP 14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL
NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**NOT
RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be
interpreted as described in [BCP
14](https://www.rfc-editor.org/rfc/rfc2119.txt) [RFC2119] [RFC8174] when, and
only when, they appear in all capitals, as shown here.

## 2. Table of Contents
- [1. Overview](#1-overview)
Expand All @@ -22,11 +27,13 @@ The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL


## 3. Program Entities
Every Program Entity **MUST** be an [Entity](./index.md#3-entities).
Every Program Entity **MUST** be an [Entity](./index.md#3-entities).

Every Program Entity **MUST** have a `const` property named `entityType`, which **MUST** have the value `"program"`.
Every Program Entity **MUST** have a `const` property named `entityType`, which
**MUST** have the value `"program"`.

Every Program Entity **MUST** have a `string` property named `programType`, whose value **MUST** be one of:
Every Program Entity **MUST** have a `string` property named `programType`,
whose value **MUST** be one of:

- `"movie"`
- `"episode"`
Expand All @@ -41,32 +48,35 @@ Every Program Entity **MUST** have a `string` property named `programType`, whos
- `"musicVideo"`
- `"minisode"`

An example Program Entity:
An example Program Entity:

```json
{
"entityType": "program",
"programType": "movie",
"entityId": "entity/abc"
}
```
```

Another example Entity:
Another example Entity:

```json
{
"entityType": "program",
"programType": "episode",
"entityId": "entity/xyz"
}
```
```

### 3.1. Optional TV Entity Properties
A Program Entity **MAY** have a `string` property named `seasonId` if its programType is `episode`, otherwise the entity **MUST NOT** have this property.
A Program Entity **MAY** have a `string` property named `seasonId` if its
programType is `episode`, otherwise the entity **MUST NOT** have this property.

A Program Entity **MAY** have a `string` property named `seriesId` if its programType is either `episode` or `season`, otherwise the entity **MUST NOT** have this property.
A Program Entity **MAY** have a `string` property named `seriesId` if its
programType is either `episode` or `season`, otherwise the entity **MUST NOT**
have this property.

An example TV Program Entity:
An example TV Program Entity:

```json
{
Expand All @@ -76,9 +86,9 @@ An example TV Program Entity:
"seriesId": "entity/hij",
"seasonId": "entity/klm"
}
```
```

Another example TV Program Entity:
Another example TV Program Entity:

```json
{
Expand All @@ -87,4 +97,4 @@ Another example TV Program Entity:
"entityId": "entity/klm",
"seriesId": "entity/hij"
}
```
```
Loading

0 comments on commit 9668729

Please sign in to comment.