{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "channels"
  ],
  "properties": {
    "channels": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "destination",
          "short_channel_id",
          "public",
          "amount_msat",
          "message_flags",
          "channel_flags",
          "active",
          "last_update",
          "base_fee_millisatoshi",
          "fee_per_millionth",
          "delay",
          "htlc_minimum_msat",
          "features"
        ],
        "properties": {
          "source": {
            "type": "pubkey",
            "description": "the source node"
          },
          "destination": {
            "type": "pubkey",
            "description": "the destination node"
          },
          "short_channel_id": {
            "type": "short_channel_id",
            "description": "short channel id of channel"
          },
          "public": {
            "type": "boolean",
            "description": "true if this is announced (otherwise it must be our channel)"
          },
          "amount_msat": {
            "type": "msat",
            "description": "the total capacity of this channel (always a whole number of satoshis)"
          },
          "message_flags": {
            "type": "u8",
            "description": "as defined by BOLT #7"
          },
          "channel_flags": {
            "type": "u8",
            "description": "as defined by BOLT #7"
          },
          "active": {
            "type": "boolean",
            "description": "true unless source has disabled it, or it's a local channel and the peer is disconnected or it's still opening or closing"
          },
          "last_update": {
            "type": "u32",
            "description": "UNIX timestamp on the last channel_update from *source*"
          },
          "base_fee_millisatoshi": {
            "type": "u32",
            "description": "Base fee changed by *source* to use this channel"
          },
          "fee_per_millionth": {
            "type": "u32",
            "description": "Proportional fee changed by *source* to use this channel, in parts-per-million"
          },
          "delay": {
            "type": "u32",
            "description": "The number of blocks delay required by *source* to use this channel"
          },
          "htlc_minimum_msat": {
            "type": "msat",
            "description": "The smallest payment *source* will allow via this channel"
          },
          "satoshis": {
            "deprecated": true
          },
          "htlc_maximum_msat": {
            "type": "msat",
            "description": "The largest payment *source* will allow via this channel"
          },
          "features": {
            "type": "hex",
            "description": "BOLT #9 features bitmap for this channel"
          }
        }
      }
    }
  }
}
