syntax = "proto3";

package aea.fetchai.state_update.v0_1_0;

message StateUpdateMessage{

  // Performatives and contents
  message Initialize_Performative{
    map<string, float> exchange_params_by_currency_id = 1;
    map<string, float> utility_params_by_good_id = 2;
    map<string, int32> amount_by_currency_id = 3;
    map<string, int32> quantities_by_good_id = 4;
  }

  message Apply_Performative{
    map<string, int32> amount_by_currency_id = 1;
    map<string, int32> quantities_by_good_id = 2;
  }

  message End_Performative{
  }


  oneof performative{
    Apply_Performative apply = 5;
    End_Performative end = 6;
    Initialize_Performative initialize = 7;
  }
}
