code: def serialise(self):
          
          return {
              'marketId': self.market_id,
              'totalAvailable': None,
              'isMarketDataDelayed': None,
              'lastMatchTime': None,
              'betDelay': self.market_definition.get('betDelay'),
              'version': self.market_definition.get('version'),
              'complete': self.market_definition.get('complete'),
              'runnersVoidable': self.market_definition.get('runnersVoidable'),
              'totalMatched': self.total_matched,
              'status': self.market_definition.get('status'),
              'bspReconciled': self.market_definition.get('bspReconciled'),
              'crossMatching': self.market_definition.get('crossMatching'),
              'inplay': self.market_definition.get('inPlay'),
              'numberOfWinners': self.market_definition.get('numberOfWinners'),
              'numberOfRunners': len(self.market_definition.get('runners')),
              'numberOfActiveRunners': self.market_definition.get('numberOfActiveRunners'),
              'runners': [
                  runner.serialise(
                      self.market_definition_runner_dict[(runner.selection_id, runner.handicap)]
                  ) for runner in self.runners
              ],
              'publishTime': self.publish_time,
              'priceLadderDefinition': self.market_definition.get('priceLadderDefinition'),
              'keyLineDescription': self.market_definition.get('keyLineDefinition'),
              'marketDefinition': self.market_definition,  # used in lightweight
          }
docs: Creates standard market book json response,
          will error if EX_MARKET_DEF not incl.