{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/audioalpha-io/json-schema/audioalpha-io-signal-schema.json",
  "title": "Signal",
  "x-generated": "2026-11-02",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/audioalpha-io-openapi.json#/components/schemas/Signal",
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Asset ticker symbol — crypto tickers are suffixed with \"-USD\" (e.g. SOL-USD)"
    },
    "status": {
      "type": "string",
      "description": "Generation status of the parent daily snapshot. \"completed\" once the snapshot has finished generating (the normal case); \"writing\" while it is being (re)generated, typically during the 00:00–00:01 UTC build window. Always present in the response."
    },
    "version_num": {
      "type": "integer",
      "description": "Revision number of the parent snapshot. Only present when version_info=true."
    },
    "version_label": {
      "type": "string",
      "description": "Version label of the parent snapshot (e.g. \"eod_utc\", \"backfill\"). Only present when version_info=true."
    },
    "signal_type": {
      "type": "string",
      "description": "Type of signal (bullish/bearish/neutral)"
    },
    "horizon": {
      "type": "string",
      "description": "Time horizon for the signal"
    },
    "scenario": {
      "type": "string",
      "description": "Description of the expected scenario"
    },
    "trigger": {
      "type": "string",
      "description": "Conditions that would trigger this scenario"
    },
    "narrative_basis": {
      "type": "string",
      "description": "The narrative reasoning behind the signal"
    },
    "confidence": {
      "type": "number",
      "description": "Confidence level of the signal (0-1)"
    },
    "invalidating_condition": {
      "type": "string",
      "description": "Conditions that would invalidate this signal"
    }
  }
}