<commit_before>package event

type Event struct {
	Event     string       `json:"event,omitempty"`
	Channel   string       `json:"channel,omitempty"`
	ChanID    int64        `json:"chanId,omitempty"`
	Symbol    string       `json:"symbol,omitempty"`
	Precision string       `json:"prec,omitempty"`
	Frequency string       `json:"freq,omitempty"`
	Key       string       `json:"key,omitempty"`
	Len       string       `json:"len,omitempty"`
	Pair      string       `json:"pair,omitempty"`
	Code      int64        `json:"code,omitempty"`
	Version   int64        `json:"version,omitempty"`
	ServerID  string       `json:"serverId,omitempty"`
	Status    string       `json:"status"`
	UserID    int64        `json:"userId,omitempty"`
	SubID     string       `json:"subId"`
	AuthID    string       `json:"auth_id,omitempty"`
	Message   string       `json:"msg,omitempty"`
	Caps      Capabilities `json:"caps"`
	Platform  struct {
		Status int `json:"status,omitempty"`
	} `json:"platform"`
}

type Capability struct {
	Read  int `json:"read"`
	Write int `json:"write"`
}

type Capabilities struct {
	Orders    Capability `json:"orders"`
	Account   Capability `json:"account"`
	Funding   Capability `json:"funding"`
	History   Capability `json:"history"`
	Wallets   Capability `json:"wallets"`
	Withdraw  Capability `json:"withdraw"`
	Positions Capability `json:"positions"`
}
<commit_msg>amending ws subscription model to separate concerns<commit_after>package event

type Subscribe struct {
	Event     string `json:"event,omitempty"`
	Channel   string `json:"channel,omitempty"`
	Symbol    string `json:"symbol,omitempty"`
	Precision string `json:"prec,omitempty"`
	Frequency string `json:"freq,omitempty"`
	Len       string `json:"len,omitempty"`
	Key       string `json:"key,omitempty"`
}

type Info struct {
	Subscribe
	ChanID   int64        `json:"chanId,omitempty"`
	Pair     string       `json:"pair,omitempty"`
	Code     int64        `json:"code,omitempty"`
	Version  int64        `json:"version,omitempty"`
	ServerID string       `json:"serverId,omitempty"`
	Status   string       `json:"status,omitempty"`
	UserID   int64        `json:"userId,omitempty"`
	SubID    string       `json:"subId,omitempty"`
	AuthID   string       `json:"auth_id,omitempty"`
	Message  string       `json:"msg,omitempty"`
	Caps     Capabilities `json:"caps,omitempty"`
	Platform struct {
		Status int `json:"status,omitempty"`
	} `json:"platform,omitempty"`
}

type Capability struct {
	Read  int `json:"read,omitempty"`
	Write int `json:"write,omitempty"`
}

type Capabilities struct {
	Orders    Capability `json:"orders,omitempty"`
	Account   Capability `json:"account,omitempty"`
	Funding   Capability `json:"funding,omitempty"`
	History   Capability `json:"history,omitempty"`
	Wallets   Capability `json:"wallets,omitempty"`
	Withdraw  Capability `json:"withdraw,omitempty"`
	Positions Capability `json:"positions,omitempty"`
}

{'fraction_non_alphanumeric': 0.12315608919382505, 'fraction_numerical': 0.005488850771869639, 'mean_word_length': 3.9008403361344537, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2328154', 'n_tokens_mistral': 873, 'n_tokens_neox': 850, 'n_words': 206}