syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.dexorder.proto";

message Market {
  string exchange_id = 2;   // e.g., BINANCE
  string market_id = 3;     // e.g., BTC/USDT
  string market_type = 4;   // e.g., Spot, CryptoPerpetual
  string description = 5;   // e.g., Bitcoin/Tether on Binance
  repeated string column_names = 6;  // e.g., ['open', 'high', 'low', 'close', 'volume']
  string base_asset = 9;    // e.g., BTC
  string quote_asset = 10;  // e.g., USDT
  uint64 earliest_time = 11; // nanoseconds since epoch

  repeated uint32 supported_period_seconds = 15;

  // Nautilus Instrument fields — used to construct Instrument objects in the sandbox bridge
  uint32 price_precision = 16;          // decimal places for prices (e.g., 2 for $0.01 resolution)
  uint32 size_precision = 17;           // decimal places for quantities
  double tick_size = 18;                // minimum price increment (e.g., 0.01)
  double lot_size = 19;                 // minimum order size
  double min_notional = 20;             // minimum order value in quote currency
  double margin_init = 21;              // initial margin requirement (futures/perps only)
  double margin_maint = 22;             // maintenance margin (futures/perps only)
  double maker_fee = 23;                // maker fee rate (e.g., 0.001 = 0.1%)
  double taker_fee = 24;                // taker fee rate
  double contract_multiplier = 25;      // contract multiplier for derivatives (default 1.0)

}
