# org.simocracy.broadlistening

> Published by [gainforest.earth](https://lexicon.garden/identity/did:plc:qoti4acfmc5wg6zzmtix6hse)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/org.simocracy.broadlistening)
- [Documentation](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/org.simocracy.broadlistening/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:qoti4acfmc5wg6zzmtix6hse/org.simocracy.broadlistening/examples)

## Definitions

### `org.simocracy.broadlistening`

**Type**: `record`

A published broad listening (Talk to the City) report for a gathering. Written by a gathering admin after the analysis pipeline has run over the gathering's proposals. The report body is a T3C v0.2 JSON document stored as a blob so large reports (hundreds of claims with verbatim quotes) fit; the record carries the metadata needed to list and render it without downloading the blob.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes |  |
| `description` | `string` | No | Short summary of what corpus the report covers and how it was produced. |
| `gatheringUri` | `string` | Yes | AT-URI of the org.simocracy.gathering this report analyses. |
| `model` | `string` | No | Id of the model that served the pipeline's completions (an OpenRouter slug). Comma-separated when several models served one run. |
| `report` | `blob` | Yes | The T3C v0.2 report JSON: {"data": ["v0.2", {...}], "metadata": ["v0.2", {...}]}. Uploaded as application/octet-stream: the reference PDS cannot stream blobs whose mime type is application/json through com.atproto.sync.getBlob (xrpc-server tries to JSON-serialise the stream and 500s), so readers must parse the bytes themselves. |
| `sourceCollection` | `string` | No | NSID of the records that formed the corpus (e.g. org.hypercerts.claim.activity for proposals). |
| `stats` | `ref` → `#stats` | No |  |
| `title` | `string` | Yes | Report title, shown in the channel header and on broadlistening.org. |

### `org.simocracy.broadlistening#stats`

**Type**: `object`

Headline counts, copied from the report so channel headers can show them without fetching the blob.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `claims` | `integer` | No |  |
| `cruxes` | `integer` | No |  |
| `documents` | `integer` | No |  |
| `people` | `integer` | No |  |
| `subtopics` | `integer` | No |  |
| `topics` | `integer` | No |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A published broad listening (Talk to the City) report for a gathering. Written by a gathering admin after the analysis pipeline has run over the gathering's proposals. The report body is a T3C v0.2 JSON document stored as a blob so large reports (hundreds of claims with verbatim quotes) fit; the record carries the metadata needed to list and render it without downloading the blob.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "Short summary of what corpus the report covers and how it was produced.",
            "maxLength": 3000,
            "type": "string"
          },
          "gatheringUri": {
            "description": "AT-URI of the org.simocracy.gathering this report analyses.",
            "type": "string"
          },
          "model": {
            "description": "Id of the model that served the pipeline's completions (an OpenRouter slug). Comma-separated when several models served one run.",
            "maxLength": 128,
            "type": "string"
          },
          "report": {
            "accept": [
              "application/octet-stream",
              "application/json"
            ],
            "description": "The T3C v0.2 report JSON: {\"data\": [\"v0.2\", {...}], \"metadata\": [\"v0.2\", {...}]}. Uploaded as application/octet-stream: the reference PDS cannot stream blobs whose mime type is application/json through com.atproto.sync.getBlob (xrpc-server tries to JSON-serialise the stream and 500s), so readers must parse the bytes themselves.",
            "maxSize": 20000000,
            "type": "blob"
          },
          "sourceCollection": {
            "description": "NSID of the records that formed the corpus (e.g. org.hypercerts.claim.activity for proposals).",
            "maxLength": 128,
            "type": "string"
          },
          "stats": {
            "ref": "#stats",
            "type": "ref"
          },
          "title": {
            "description": "Report title, shown in the channel header and on broadlistening.org.",
            "maxLength": 300,
            "type": "string"
          }
        },
        "required": [
          "gatheringUri",
          "title",
          "report",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "stats": {
      "description": "Headline counts, copied from the report so channel headers can show them without fetching the blob.",
      "properties": {
        "claims": {
          "type": "integer"
        },
        "cruxes": {
          "type": "integer"
        },
        "documents": {
          "type": "integer"
        },
        "people": {
          "type": "integer"
        },
        "subtopics": {
          "type": "integer"
        },
        "topics": {
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "id": "org.simocracy.broadlistening",
  "lexicon": 1
}
```
