{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Response Message for Completing A Report",
  "description": "Provides the response to a report request, containing all the information available from the report including the receipt.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "jsonrpc",
    "id",
    "result"
  ],
  "properties": {
    "jsonrpc": {
      "title": "JSON-RPC Version Number",
      "description": "Identifies the JSON Remote Protocol version that this message uses.",
      "type": "string",
      "enum": [
        "2.0"
      ],
      "default": "2.0"
    },
    "id": {
      "title": "JSON-RPC2 Message ID",
      "description": "The same message id as the request JSON message this is a reply to, so that this response can be matched to the correct request.",
      "type": "integer",
      "maximum": 999999,
      "minimum": 0
    },
    "result": {
      "title": "Report Response",
      "description": "Information about a report processed on a terminal including the receipt.",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "tid",
        "reportType",
        "reportTime",
        "reportResult",
        "balances",
        "banking",
        "reportLines"
      ],
      "properties": {
        "tid": {
          "title": "Terminal Identifier (TID)",
          "description": "The identifier for a terminal.",
          "type": "string",
          "default": "N/A"
        },
        "reportType": {
          "type": "string",
          "enum": [
            "END_OF_DAY",
            "BANKING",
            "X_BALANCE",
            "Z_BALANCE"
          ]
        },
        "reportTime": {
          "type": "string"
        },
        "reportResult": {
          "type": "string",
          "enum": [
            "TIMED_OUT",
            "COMPLETE"
          ]
        },
        "balances": {
          "title": "Report Balances",
          "description": "Describes the balances on the terminal. If present this will contain the results of an X-Balance or Z-Balance report.",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "currency",
            "issuerTotals",
            "totalAmount",
            "totalCashbackAmount",
            "totalCashbackCount",
            "totalGratuityAmount",
            "totalGratuityCount",
            "totalRefundsAmount",
            "totalRefundsCount",
            "totalSalesAmount",
            "totalSalesCount",
            "totalsSince",
            "waiterTotals"
          ],
          "properties": {
            "currency": {
              "title": "Currency Code",
              "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
              "type": "string",
              "enum": [
                "GBP",
                "EUR"
              ]
            },
            "issuerTotals": {
              "title": "Issuer Totals",
              "description": "A dictionary of totals broken down by issuer, keyed by the issuer name. '<issuer name>' is an example key.",
              "type": "object",
              "additionalProperties": {
                "title": "Breakdown of Totals",
                "description": "A breakdown of the totals for a particular category.",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "currency",
                  "totalAmount",
                  "totalRefundsAmount",
                  "totalRefundsCount",
                  "totalSalesAmount",
                  "totalSalesCount"
                ],
                "properties": {
                  "currency": {
                    "title": "Currency Code",
                    "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                    "type": "string",
                    "enum": [
                      "GBP",
                      "EUR"
                    ]
                  },
                  "totalAmount": {
                    "type": "integer"
                  },
                  "totalRefundsAmount": {
                    "type": "integer"
                  },
                  "totalRefundsCount": {
                    "type": "integer"
                  },
                  "totalSalesAmount": {
                    "type": "integer"
                  },
                  "totalSalesCount": {
                    "type": "integer"
                  }
                }
              },
              "properties": {
                "<issuer name>": {
                  "title": "Breakdown of Totals",
                  "description": "A breakdown of the totals for a particular category.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "currency",
                    "totalAmount",
                    "totalRefundsAmount",
                    "totalRefundsCount",
                    "totalSalesAmount",
                    "totalSalesCount"
                  ],
                  "properties": {
                    "currency": {
                      "title": "Currency Code",
                      "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                      "type": "string",
                      "enum": [
                        "GBP",
                        "EUR"
                      ]
                    },
                    "totalAmount": {
                      "type": "integer"
                    },
                    "totalRefundsAmount": {
                      "type": "integer"
                    },
                    "totalRefundsCount": {
                      "type": "integer"
                    },
                    "totalSalesAmount": {
                      "type": "integer"
                    },
                    "totalSalesCount": {
                      "type": "integer"
                    }
                  }
                }
              }
            },
            "totalAmount": {
              "type": "integer"
            },
            "totalCashbackAmount": {
              "type": "integer"
            },
            "totalCashbackCount": {
              "type": "integer"
            },
            "totalGratuityAmount": {
              "type": "integer"
            },
            "totalGratuityCount": {
              "type": "integer"
            },
            "totalRefundsAmount": {
              "type": "integer"
            },
            "totalRefundsCount": {
              "type": "integer"
            },
            "totalSalesAmount": {
              "type": "integer"
            },
            "totalSalesCount": {
              "type": "integer"
            },
            "totalsSince": {
              "type": "string"
            },
            "waiterTotals": {
              "type": "object",
              "description": "A dictionary of totals broken down by waiter, keyed by the waiter id. '<waiter id>' is an example key.",
              "additionalProperties": {
                "title": "Breakdown of Totals",
                "description": "An extended breakdown of the totals for a particular category.",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "currency",
                  "totalAmount",
                  "totalRefundsAmount",
                  "totalRefundsCount",
                  "totalSalesAmount",
                  "totalSalesCount",
                  "totalGratuityAmount",
                  "totalGratuityCount",
                  "totalCashbackAmount",
                  "totalCashbackCount"
                ],
                "properties": {
                  "currency": {
                    "title": "Currency Code",
                    "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                    "type": "string",
                    "enum": [
                      "GBP",
                      "EUR"
                    ]
                  },
                  "totalAmount": {
                    "type": "integer"
                  },
                  "totalRefundsAmount": {
                    "type": "integer"
                  },
                  "totalRefundsCount": {
                    "type": "integer"
                  },
                  "totalSalesAmount": {
                    "type": "integer"
                  },
                  "totalSalesCount": {
                    "type": "integer"
                  },
                  "totalGratuityAmount": {
                    "type": "integer"
                  },
                  "totalGratuityCount": {
                    "type": "integer"
                  },
                  "totalCashbackAmount": {
                    "type": "integer"
                  },
                  "totalCashbackCount": {
                    "type": "integer"
                  }
                }
              },
              "properties": {
                "<waiter id>": {
                  "title": "Breakdown of Totals",
                  "description": "An extended breakdown of the totals for a particular category.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "currency",
                    "totalAmount",
                    "totalRefundsAmount",
                    "totalRefundsCount",
                    "totalSalesAmount",
                    "totalSalesCount",
                    "totalGratuityAmount",
                    "totalGratuityCount",
                    "totalCashbackAmount",
                    "totalCashbackCount"
                  ],
                  "properties": {
                    "currency": {
                      "title": "Currency Code",
                      "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                      "type": "string",
                      "enum": [
                        "GBP",
                        "EUR"
                      ]
                    },
                    "totalAmount": {
                      "type": "integer"
                    },
                    "totalRefundsAmount": {
                      "type": "integer"
                    },
                    "totalRefundsCount": {
                      "type": "integer"
                    },
                    "totalSalesAmount": {
                      "type": "integer"
                    },
                    "totalSalesCount": {
                      "type": "integer"
                    },
                    "totalGratuityAmount": {
                      "type": "integer"
                    },
                    "totalGratuityCount": {
                      "type": "integer"
                    },
                    "totalCashbackAmount": {
                      "type": "integer"
                    },
                    "totalCashbackCount": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        },
        "banking": {
          "title": "Report Banking",
          "description": "Describes the results of a banking report on the terminal. Defined by a dictionary of banking reporst broken down by acquirer, keyed by Acquirer name. '<acquirer name>' is an example key",
          "type": "object",
          "additionalProperties": {
            "title": "Acquirer Banking",
            "description": "Describes banking information for an acquirer.",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "currency",
              "currentSessionIssuerTotals",
              "previousSessionIssuerTotals",
              "currentSessionTotals",
              "previousSessionTotals",
              "currentSessionTransactionNumbers",
              "previousSessionTransactionNumbers"
            ],
            "properties": {
              "currency": {
                "title": "Currency Code",
                "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                "type": "string",
                "enum": [
                  "GBP",
                  "EUR"
                ]
              },
              "currentSessionIssuerTotals": {
                "title": "Issuer Totals",
                "description": "A dictionary of totals broken down by issuer, keyed by the issuer name. '<issuer name>' is an example key.",
                "type": "object",
                "additionalProperties": {
                  "title": "Breakdown of Totals",
                  "description": "A breakdown of the totals for a particular category.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "currency",
                    "totalAmount",
                    "totalRefundsAmount",
                    "totalRefundsCount",
                    "totalSalesAmount",
                    "totalSalesCount"
                  ],
                  "properties": {
                    "currency": {
                      "title": "Currency Code",
                      "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                      "type": "string",
                      "enum": [
                        "GBP",
                        "EUR"
                      ]
                    },
                    "totalAmount": {
                      "type": "integer"
                    },
                    "totalRefundsAmount": {
                      "type": "integer"
                    },
                    "totalRefundsCount": {
                      "type": "integer"
                    },
                    "totalSalesAmount": {
                      "type": "integer"
                    },
                    "totalSalesCount": {
                      "type": "integer"
                    }
                  }
                },
                "properties": {
                  "<issuer name>": {
                    "title": "Breakdown of Totals",
                    "description": "A breakdown of the totals for a particular category.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "currency",
                      "totalAmount",
                      "totalRefundsAmount",
                      "totalRefundsCount",
                      "totalSalesAmount",
                      "totalSalesCount"
                    ],
                    "properties": {
                      "currency": {
                        "title": "Currency Code",
                        "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                        "type": "string",
                        "enum": [
                          "GBP",
                          "EUR"
                        ]
                      },
                      "totalAmount": {
                        "type": "integer"
                      },
                      "totalRefundsAmount": {
                        "type": "integer"
                      },
                      "totalRefundsCount": {
                        "type": "integer"
                      },
                      "totalSalesAmount": {
                        "type": "integer"
                      },
                      "totalSalesCount": {
                        "type": "integer"
                      }
                    }
                  }
                }
              },
              "previousSessionIssuerTotals": {
                "title": "Issuer Totals",
                "description": "A dictionary of totals broken down by issuer, keyed by the issuer name. '<issuer name>' is an example key.",
                "type": "object",
                "additionalProperties": {
                  "title": "Breakdown of Totals",
                  "description": "A breakdown of the totals for a particular category.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "currency",
                    "totalAmount",
                    "totalRefundsAmount",
                    "totalRefundsCount",
                    "totalSalesAmount",
                    "totalSalesCount"
                  ],
                  "properties": {
                    "currency": {
                      "title": "Currency Code",
                      "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                      "type": "string",
                      "enum": [
                        "GBP",
                        "EUR"
                      ]
                    },
                    "totalAmount": {
                      "type": "integer"
                    },
                    "totalRefundsAmount": {
                      "type": "integer"
                    },
                    "totalRefundsCount": {
                      "type": "integer"
                    },
                    "totalSalesAmount": {
                      "type": "integer"
                    },
                    "totalSalesCount": {
                      "type": "integer"
                    }
                  }
                },
                "properties": {
                  "<issuer name>": {
                    "title": "Breakdown of Totals",
                    "description": "A breakdown of the totals for a particular category.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "currency",
                      "totalAmount",
                      "totalRefundsAmount",
                      "totalRefundsCount",
                      "totalSalesAmount",
                      "totalSalesCount"
                    ],
                    "properties": {
                      "currency": {
                        "title": "Currency Code",
                        "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                        "type": "string",
                        "enum": [
                          "GBP",
                          "EUR"
                        ]
                      },
                      "totalAmount": {
                        "type": "integer"
                      },
                      "totalRefundsAmount": {
                        "type": "integer"
                      },
                      "totalRefundsCount": {
                        "type": "integer"
                      },
                      "totalSalesAmount": {
                        "type": "integer"
                      },
                      "totalSalesCount": {
                        "type": "integer"
                      }
                    }
                  }
                }
              },
              "currentSessionTotals": {
                "title": "Breakdown of Totals",
                "description": "A breakdown of the totals for a particular category.",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "currency",
                  "totalAmount",
                  "totalRefundsAmount",
                  "totalRefundsCount",
                  "totalSalesAmount",
                  "totalSalesCount"
                ],
                "properties": {
                  "currency": {
                    "title": "Currency Code",
                    "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                    "type": "string",
                    "enum": [
                      "GBP",
                      "EUR"
                    ]
                  },
                  "totalAmount": {
                    "type": "integer"
                  },
                  "totalRefundsAmount": {
                    "type": "integer"
                  },
                  "totalRefundsCount": {
                    "type": "integer"
                  },
                  "totalSalesAmount": {
                    "type": "integer"
                  },
                  "totalSalesCount": {
                    "type": "integer"
                  }
                }
              },
              "previousSessionTotals": {
                "title": "Breakdown of Totals",
                "description": "A breakdown of the totals for a particular category.",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "currency",
                  "totalAmount",
                  "totalRefundsAmount",
                  "totalRefundsCount",
                  "totalSalesAmount",
                  "totalSalesCount"
                ],
                "properties": {
                  "currency": {
                    "title": "Currency Code",
                    "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                    "type": "string",
                    "enum": [
                      "GBP",
                      "EUR"
                    ]
                  },
                  "totalAmount": {
                    "type": "integer"
                  },
                  "totalRefundsAmount": {
                    "type": "integer"
                  },
                  "totalRefundsCount": {
                    "type": "integer"
                  },
                  "totalSalesAmount": {
                    "type": "integer"
                  },
                  "totalSalesCount": {
                    "type": "integer"
                  }
                }
              },
              "currentSessionTransactionNumbers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "previousSessionTransactionNumbers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "properties": {
            "<acquirer name>": {
              "title": "Acquirer Banking",
              "description": "Describes banking information for an acquirer.",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "currency",
                "currentSessionIssuerTotals",
                "previousSessionIssuerTotals",
                "currentSessionTotals",
                "previousSessionTotals",
                "currentSessionTransactionNumbers",
                "previousSessionTransactionNumbers"
              ],
              "properties": {
                "currency": {
                  "title": "Currency Code",
                  "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                  "type": "string",
                  "enum": [
                    "GBP",
                    "EUR"
                  ]
                },
                "currentSessionIssuerTotals": {
                  "title": "Issuer Totals",
                  "description": "A dictionary of totals broken down by issuer, keyed by the issuer name. '<issuer name>' is an example key.",
                  "type": "object",
                  "additionalProperties": {
                    "title": "Breakdown of Totals",
                    "description": "A breakdown of the totals for a particular category.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "currency",
                      "totalAmount",
                      "totalRefundsAmount",
                      "totalRefundsCount",
                      "totalSalesAmount",
                      "totalSalesCount"
                    ],
                    "properties": {
                      "currency": {
                        "title": "Currency Code",
                        "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                        "type": "string",
                        "enum": [
                          "GBP",
                          "EUR"
                        ]
                      },
                      "totalAmount": {
                        "type": "integer"
                      },
                      "totalRefundsAmount": {
                        "type": "integer"
                      },
                      "totalRefundsCount": {
                        "type": "integer"
                      },
                      "totalSalesAmount": {
                        "type": "integer"
                      },
                      "totalSalesCount": {
                        "type": "integer"
                      }
                    }
                  },
                  "properties": {
                    "<issuer name>": {
                      "title": "Breakdown of Totals",
                      "description": "A breakdown of the totals for a particular category.",
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "currency",
                        "totalAmount",
                        "totalRefundsAmount",
                        "totalRefundsCount",
                        "totalSalesAmount",
                        "totalSalesCount"
                      ],
                      "properties": {
                        "currency": {
                          "title": "Currency Code",
                          "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                          "type": "string",
                          "enum": [
                            "GBP",
                            "EUR"
                          ]
                        },
                        "totalAmount": {
                          "type": "integer"
                        },
                        "totalRefundsAmount": {
                          "type": "integer"
                        },
                        "totalRefundsCount": {
                          "type": "integer"
                        },
                        "totalSalesAmount": {
                          "type": "integer"
                        },
                        "totalSalesCount": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "previousSessionIssuerTotals": {
                  "title": "Issuer Totals",
                  "description": "A dictionary of totals broken down by issuer, keyed by the issuer name. '<issuer name>' is an example key.",
                  "type": "object",
                  "additionalProperties": {
                    "title": "Breakdown of Totals",
                    "description": "A breakdown of the totals for a particular category.",
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "currency",
                      "totalAmount",
                      "totalRefundsAmount",
                      "totalRefundsCount",
                      "totalSalesAmount",
                      "totalSalesCount"
                    ],
                    "properties": {
                      "currency": {
                        "title": "Currency Code",
                        "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                        "type": "string",
                        "enum": [
                          "GBP",
                          "EUR"
                        ]
                      },
                      "totalAmount": {
                        "type": "integer"
                      },
                      "totalRefundsAmount": {
                        "type": "integer"
                      },
                      "totalRefundsCount": {
                        "type": "integer"
                      },
                      "totalSalesAmount": {
                        "type": "integer"
                      },
                      "totalSalesCount": {
                        "type": "integer"
                      }
                    }
                  },
                  "properties": {
                    "<issuer name>": {
                      "title": "Breakdown of Totals",
                      "description": "A breakdown of the totals for a particular category.",
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "currency",
                        "totalAmount",
                        "totalRefundsAmount",
                        "totalRefundsCount",
                        "totalSalesAmount",
                        "totalSalesCount"
                      ],
                      "properties": {
                        "currency": {
                          "title": "Currency Code",
                          "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                          "type": "string",
                          "enum": [
                            "GBP",
                            "EUR"
                          ]
                        },
                        "totalAmount": {
                          "type": "integer"
                        },
                        "totalRefundsAmount": {
                          "type": "integer"
                        },
                        "totalRefundsCount": {
                          "type": "integer"
                        },
                        "totalSalesAmount": {
                          "type": "integer"
                        },
                        "totalSalesCount": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                },
                "currentSessionTotals": {
                  "title": "Breakdown of Totals",
                  "description": "A breakdown of the totals for a particular category.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "currency",
                    "totalAmount",
                    "totalRefundsAmount",
                    "totalRefundsCount",
                    "totalSalesAmount",
                    "totalSalesCount"
                  ],
                  "properties": {
                    "currency": {
                      "title": "Currency Code",
                      "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                      "type": "string",
                      "enum": [
                        "GBP",
                        "EUR"
                      ]
                    },
                    "totalAmount": {
                      "type": "integer"
                    },
                    "totalRefundsAmount": {
                      "type": "integer"
                    },
                    "totalRefundsCount": {
                      "type": "integer"
                    },
                    "totalSalesAmount": {
                      "type": "integer"
                    },
                    "totalSalesCount": {
                      "type": "integer"
                    }
                  }
                },
                "previousSessionTotals": {
                  "title": "Breakdown of Totals",
                  "description": "A breakdown of the totals for a particular category.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "currency",
                    "totalAmount",
                    "totalRefundsAmount",
                    "totalRefundsCount",
                    "totalSalesAmount",
                    "totalSalesCount"
                  ],
                  "properties": {
                    "currency": {
                      "title": "Currency Code",
                      "description": "The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.",
                      "type": "string",
                      "enum": [
                        "GBP",
                        "EUR"
                      ]
                    },
                    "totalAmount": {
                      "type": "integer"
                    },
                    "totalRefundsAmount": {
                      "type": "integer"
                    },
                    "totalRefundsCount": {
                      "type": "integer"
                    },
                    "totalSalesAmount": {
                      "type": "integer"
                    },
                    "totalSalesCount": {
                      "type": "integer"
                    }
                  }
                },
                "currentSessionTransactionNumbers": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "previousSessionTransactionNumbers": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "reportLines": {
          "title": "Receipt Lines",
          "description": "A receipt from the terminal defined by an ordered array of Receipt Line objects.",
          "type": "array",
          "items": {
            "anyOf": [
              {
                "title": "Text Receipt Line",
                "description": "A receipt line containing text that has optional formatting.",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "value",
                  "type"
                ],
                "properties": {
                  "value": {
                    "title": "Value of Receipt Line",
                    "description": "This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.",
                    "type": "string",
                    "default": "",
                    "maxLength": 24
                  },
                  "type": {
                    "title": "Type of Receipt Line",
                    "description": "Defines the type of the receipt line to be text.",
                    "type": "string",
                    "enum": [
                      "TEXT"
                    ]
                  },
                  "format": {
                    "title": "Formatting of Receipt Line",
                    "description": "Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.",
                    "type": "array",
                    "maxItems": 3,
                    "items": {
                      "type": "string",
                      "enum": [
                        "BOLD",
                        "DOUBLE_HEIGHT",
                        "DOUBLE_WIDTH"
                      ]
                    }
                  }
                }
              },
              {
                "title": "Graphic Receipt Line",
                "description": "A receipt line containing a graphic.",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "value",
                  "type"
                ],
                "properties": {
                  "value": {
                    "title": "Value of Receipt Line",
                    "description": "If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.",
                    "type": "string",
                    "default": ""
                  },
                  "type": {
                    "title": "Type of Graphic",
                    "description": "Defines the type of graphic to be printed.",
                    "type": "string",
                    "enum": [
                      "CARRIAGE_RETURN",
                      "LINE_SEPARATOR_DOUBLE",
                      "LINE_SEPARATOR_SINGLE",
                      "TICKET_FEED"
                    ]
                  },
                  "format": {
                    "title": "Formatting of Receipt Line",
                    "description": "This property has no effect on this type of receipt line, which is why it is an optional parameter and when it is defined it is an empty list.",
                    "type": "array",
                    "maxItems": 0,
                    "items": {}
                  }
                }
              }
            ]
          }
        }
      }
    }
  }
}