{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/aixbt-tech/json-schema/aixbt-tech-signal-activity-schema.json",
  "title": "SignalActivity",
  "description": "Sanitized activity timeline entry for an intel item",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/aixbt-tech-v2-openapi.yaml#/components/schemas/SignalActivity",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Stable activity row ID"
    },
    "date": {
      "type": "string",
      "format": "date-time",
      "description": "Activity timestamp"
    },
    "action": {
      "type": "string",
      "description": "Canonical action: INITIAL_DETECTION, REFINED, NEW_DETAIL, TENSE_UPDATE, NO_CHANGE, PARSE_ERROR"
    },
    "source": {
      "type": "string",
      "description": "Platform source name (e.g. twitter, discord, telegram)"
    },
    "actor": {
      "type": "object",
      "description": "Agent actor metadata (present on agent-originated rows)",
      "properties": {
        "type": {
          "type": "string"
        }
      }
    },
    "officialSourceUrl": {
      "type": "string",
      "format": "uri",
      "description": "Canonical URL for the official source when available"
    },
    "clusters": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/SignalCluster"
      }
    },
    "incoming": {
      "type": "string",
      "description": "Description extracted from new content"
    },
    "result": {
      "type": "string",
      "description": "Description after merge"
    },
    "headline": {
      "type": "string",
      "description": "Plain-language summary up to 10 words"
    },
    "sentiment": {
      "type": [
        "number",
        "null"
      ],
      "minimum": -1,
      "maximum": 1,
      "description": "Sentiment value for this activity entry"
    },
    "citationEvidence": {
      "type": "array",
      "description": "Structured citation evidence (agent rows)",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "targetActivityIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "fromSignal": {
      "type": "object",
      "description": "Present for project-merge events",
      "properties": {
        "signalId": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "projectName": {
          "type": "string"
        }
      }
    },
    "isOfficial": {
      "type": "boolean",
      "description": "Whether this activity came from an official project source"
    },
    "changelog": {
      "type": "string",
      "description": "Terse noun-phrase describing what changed"
    }
  },
  "$defs": {
    "SignalCluster": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    }
  }
}