using Unity.NetCode;
namespace ProjectM.Simulation
{
///
/// Client -> server request to move items from the sender's PERSONAL inventory into the shared base
/// stockpile (the global the build/upgrade/automation economy spends from).
/// A one-off action, so it is an RPC (not a per-tick predicted input), and the server applies it exactly
/// once in the plain SimulationSystemGroup (no rollback double-apply). Payload is plain blittable scalars
/// (no entity refs, no enum): the server resolves the sender's player from the RPC's SourceConnection. The
/// wire type is UNCONDITIONAL (never #if-gated) so the RpcCollection hash matches across release/dev peers;
/// only the send/receive SYSTEMS may be #if-gated.
///
public struct InventoryDepositRequest : IRpcCommand
{
/// Item to deposit, or 0 to deposit EVERYTHING the player is carrying. The server branches on
/// 0 BEFORE any per-item withdraw and never writes a 0-id row.
public ushort ItemId;
/// Quantity to deposit; <= 0 means "all of that item" (ignored when ItemId is 0).
public int Count;
}
}