class InternalGatewayRequest(object):
    """
    Internal requests are made by servers to the gateway or another server.
    """

    # mandatory fields; always present
    ACCOUNT_ID = "account_id"  # int; id of the user to prepare context and execute by
    ROOM_ID = "room_id"  # int; id of the relevant room for the execution

    # optional fields; their presence depends on the request properties
    REQUEST = "request"  # dict; a request payload to execute on a relevant server
    LOAD_AVATAR = "load_avatar"  # bool; to ask for avatar of the account in the context


class InternalGatewayResponse(object):
    CONTEXT = "context"  # always included
    RESPONSE = "response"  # when there was a request
