<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbe:messageSchema xmlns:sbe="http://fixprotocol.io/2016/sbe"
                   byteOrder="bigEndian"
                   id="6"
                   package="com.weareadaptive.accelerators.platformexchange.gateway.binarymarketdata"
                   semanticVersion="2.0"
                   version="768">
    <types>
        <enum encodingType="uint8" name="BooleanType">
            <validValue name="False">0</validValue>
            <validValue name="True">1</validValue>
        </enum>
        <composite name="FixedPointDecimal">
            <type name="Exponent" presence="constant" primitiveType="int8">-8</type>
            <type name="Mantissa" primitiveType="int64"/>
        </composite>
        <composite name="UTCTimestampNanos">
            <type name="Unit" presence="constant" primitiveType="uint8">9</type>
            <type name="Time" primitiveType="int64"/>
        </composite>
        <enum encodingType="char" name="InstrumentTradingStatusType">
            <validValue name="Halted">H</validValue>
            <validValue name="Quoting">Q</validValue>
            <validValue name="LimitOnlyTrading">L</validValue>
            <validValue name="Trading">T</validValue>
        </enum>
        <enum encodingType="char" name="MDEntryType">
            <validValue name="IndexValue">3</validValue>
            <validValue name="PreliminaryMarkPrice">m</validValue>
            <validValue name="FinalMarkPrice">n</validValue>
            <validValue name="PreliminaryFundingRate">p</validValue>
            <validValue name="FinalFundingRate">f</validValue>
            <validValue name="OpenInterest">C</validValue>
        </enum>
        <enum encodingType="char" name="InstrumentTradingStatusReasonType">
            <validValue name="None">X</validValue>
            <validValue name="Administrative">A</validValue>
        </enum>
        <enum encodingType="char" name="TradingSessionType">
            <validValue name="Trading">1</validValue>
            <validValue name="Closed">2</validValue>
        </enum>
        <enum encodingType="char" name="SideType">
            <validValue name="Buy">B</validValue>
            <validValue name="Sell">S</validValue>
        </enum>
        <enum encodingType="char" name="RetailLiquidityIndicatorType">
            <validValue name="Normal">1</validValue>
            <validValue name="DesignatedRetail">2</validValue>
            <validValue name="RetailLiquidityProvider">3</validValue>
        </enum>
        <enum encodingType="int8" name="InstrumentTypeValue">
            <validValue name="Spot">1</validValue>
            <validValue name="Perp">2</validValue>
        </enum>
        <composite name="messageHeader">
            <type name="blockLength" primitiveType="uint16"/>
            <type name="templateId" primitiveType="uint8"/>
            <type name="schemaId" primitiveType="uint8"/>
            <type name="version" primitiveType="uint16"/>
        </composite>
        <type length="20" name="TokenID" primitiveType="char"/>
        <type length="8" name="Asset" primitiveType="char"/>
    </types>
    <sbe:message blockLength="56" id="1" name="InstrumentDirectory">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TokenID" type="TokenID"/>
        <field id="3" name="BaseCurrency" type="Asset"/>
        <field id="4" name="QuoteCurrency" type="Asset"/>
        <field id="5" name="UnitMultiplier" type="int16"/>
        <field id="6" name="IsTestSymbol" type="BooleanType"/>
        <field id="7" name="MPV" type="FixedPointDecimal"/>
        <field id="8" sinceVersion="513" name="InstrumentType" type="InstrumentTypeValue"/>
    </sbe:message>
    <sbe:message blockLength="30" id="2" name="InstrumentTradingStatus">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TokenID" type="TokenID"/>
        <field id="3" name="InstrumentTradingStatus" type="InstrumentTradingStatusType"/>
        <field id="4" name="InstrumentTradingStatusReason" type="InstrumentTradingStatusReasonType"/>
    </sbe:message>
    <sbe:message blockLength="9" id="3" name="TradingSessionStatus">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TradingSession" type="TradingSessionType"/>
    </sbe:message>
    <sbe:message blockLength="16" id="4" name="SnapshotComplete">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="AsOfSequenceNumber" type="int64"/>
    </sbe:message>
    <sbe:message blockLength="62" id="10" name="OrderAdded">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TokenID" type="TokenID"/>
        <field id="3" name="OrderID" type="int64"/>
        <field id="4" name="CorrelationID" type="int64"/>
        <field id="5" name="Side" type="SideType"/>
        <field id="6" name="Quantity" type="int64"/>
        <field id="7" name="Price" type="FixedPointDecimal"/>
        <field id="8" name="RetailIndicator" type="RetailLiquidityIndicatorType"/>
    </sbe:message>
    <sbe:message blockLength="36" id="11" name="OrderDeleted">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TokenID" type="TokenID"/>
        <field id="3" name="OrderID" type="int64"/>
    </sbe:message>
    <sbe:message blockLength="44" id="12" name="OrderReduced">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TokenID" type="TokenID"/>
        <field id="3" name="OrderID" type="int64"/>
        <field id="4" name="Quantity" type="int64"/>
    </sbe:message>
    <sbe:message blockLength="68" id="13" name="OrderExecuted">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TokenID" type="TokenID"/>
        <field id="3" name="OrderID" type="int64"/>
        <field id="4" name="TradeIDUpperBits" type="int64"/>
        <field id="5" name="TradeIDLowerBits" type="int64"/>
        <field id="6" name="Quantity" type="int64"/>
        <field id="7" name="Price" type="FixedPointDecimal"/>
    </sbe:message>
    <sbe:message blockLength="37" id="14" name="IncrementalTradingMetric">
        <field id="1" name="Timestamp" type="UTCTimestampNanos"/>
        <field id="2" name="TokenID" type="TokenID"/>
        <field id="3" name="MDEntryType" type="MDEntryType"/>
        <field id="4" name="MDEntryValue" type="FixedPointDecimal"/>
    </sbe:message>
</sbe:messageSchema>
