func (c *Client) SessionArgumentsGet(ctx context.Context, fields []string) (sessionArgs SessionArguments, err error) {
	if err = c.validateSessionFields(fields); err != nil {
		return
	}
	if err = c.rpcCall(ctx, "session-get", sessionGetParams{Fields: fields}, &sessionArgs); err != nil {
		err = fmt.Errorf("'session-get' rpc method failed: %w", err)
	}
	return
}
SessionArgumentsGet returns global/session values for specified fields.
See the JSON tags of the SessionArguments struct for valid fields.
https://github.com/transmission/transmission/blob/3.00/extras/rpc-spec.txt#L563
package transmissionrpc
import (
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"reflect"
	"github.com/hekmon/cunits/v2"
)
var validSessionFields []string
func init() {
	torrentType := reflect.TypeOf(SessionArguments{})
	for i := 0; i < torrentType.NumField(); i++ {
		validSessionFields = append(validSessionFields, torrentType.Field(i).Tag.Get("json"))
	}
}
func (c *Client) RPCVersion(ctx context.Context) (ok bool, serverVersion int64, serverMinimumVersion int64, err error) {
	payload, err := c.SessionArgumentsGetAll(ctx)
	if err != nil {
		err = fmt.Errorf("can't get session values: %w", err)
		return
	}
	if payload.RPCVersion == nil {
		err = errors.New("payload RPC Version is nil")
		return
	}
	if payload.RPCVersionMinimum == nil {
		err = errors.New("payload RPC Version minimum is nil")
		return
	}
	serverVersion = *payload.RPCVersion
	serverMinimumVersion = *payload.RPCVersionMinimum
	ok = RPCVersion >= serverMinimumVersion
	return
}
func (c *Client) SessionArgumentsSet(ctx context.Context, payload SessionArguments) (err error) {
	payload.BlocklistSize = nil
	payload.ConfigDir = nil
	payload.RPCVersion = nil
	payload.RPCVersionMinimum = nil
	payload.SessionID = nil
	payload.Version = nil
	if err = c.rpcCall(ctx, "session-set", payload, nil); err != nil {
		err = fmt.Errorf("'session-set' rpc method failed: %w", err)
	}
	return
}
func (c *Client) SessionArgumentsGetAll(ctx context.Context) (sessionArgs SessionArguments, err error) {
	if err = c.rpcCall(ctx, "session-get", nil, &sessionArgs); err != nil {
		err = fmt.Errorf("'session-get' rpc method failed: %w", err)
	}
	return
}
type sessionGetParams struct {
	Fields []string `json:"fields"`
}