Allocation

An allocation is a claim to a portion of energy available from a power source.

/structs/allocation /structs/allocation/{id}

message Allocation {
  string          id              = 1;
  allocationType  type            = 2;

  // Core allocation details
  string      sourceObjectId      = 3;
  uint64      index               = 4;
  string      destinationId       = 5;
  uint64      power               = 6;

  // Who does this currently belong to
  string      creator             = 7;
  string      controller          = 8;

  // Locking will be needed for IBC
  bool        locked              = 9;
}

Guild

The definition of a group of players.

/structs/guild /structs/guild/{id}

message Guild {
  string id                 = 1;
  uint64 index              = 2;

  string endpoint           = 3;
  
  string creator            = 4;
  string owner              = 5;

  uint64 joinInfusionMinimum = 6;
  guildJoinBypassLevel joinInfusionMinimumBypassByRequest   = 7;
  guildJoinBypassLevel joinInfusionMinimumBypassByInvite    = 8;
  
  string primaryReactorId    = 9;
  string entrySubstationId   = 10;
}

Infusion

An amount of alpha that has been provided to a source as fuel.

/structs/infusion /structs/infusion/{destinationId}/{address}

message Infusion {
  objectType  destinationType               = 1;
  string      destinationId                 = 2;

  uint64      fuel                          = 3;
  uint64      power                         = 4;

  string      commission                    = 5 [
    (cosmos_proto.scalar)  = "cosmos.Dec",
    (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
    (gogoproto.nullable)   = false
  ];

  string      playerId                      = 6;
  string      address                       = 7;
}

Planet

The place in which Structs are built and alpha Ore is extracted from.

/structs/planet /structs/planet/{id}

/structs/planet_by_player/{playerId}

message Planet {
  string id             = 1;

  uint64 maxOre         = 2;
  uint64 OreRemaining   = 3;
  uint64 OreStored      = 4;

  string creator        = 5;
  string owner          = 6;

  repeated string space = 7;
  repeated string sky   = 8;
  repeated string land  = 9;
  repeated string water = 10;

  uint64 spaceSlots     = 11;
  uint64 skySlots       = 12;
  uint64 landSlots      = 13;
  uint64 waterSlots     = 14;

  uint64 status         = 15;
}

Player

The user of the Structs universe, a collection of addresses and permissions that represent their ownership and control over in-game assets.

/structs/player /structs/player/{id}

message Player {
  string id             = 1;
  uint64 index          = 2;
  string guildId        = 3;
  string substationId   = 4;

  string creator        = 5;
  string primaryAddress = 6 [(cosmos_proto.scalar) = "cosmos.AddressString"];

  string planetId       = 7;

  uint64 load           = 8;
  uint64 capacity       = 9;
  uint64 capacitySecondary  = 10;
  uint64 structsLoad        = 11;

  cosmos.base.v1beta1.Coin storage = 12
    [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"];
  
}

Reactor