Entity types, edge types, event mappings, and feature vector definitions used in the knowledge graph
Defined in data/rules/schema/entity-schema.yml:
| Entity | Source Field | Description |
|---|---|---|
| Member | member_code | User/player account |
| Device | device_id | Device fingerprint |
| Game | game_code | Game identifier |
| Affiliate | affiliate_code | Marketing affiliate |
| Currency | currency | Currency code |
| VipGroup | vip_group | VIP tier level |
| Error | error_code | Error classification |
| Platform | platform | Platform (mobile/desktop/etc) |
| Popup | popup_name | UI popup/modal |
| Provider | provider_code | Game/service provider |
| Edge | From | To | Derived From |
|---|---|---|---|
| LoggedInFrom | Member | Device | Login events |
| OpenedGame | Member | Game | GameOpened events |
| SawPopup | Member | Popup | PopupModule events |
| HitError | Member | Error | API Error events |
| BelongsToGroup | Member | VipGroup | Login events |
| ReferredBy | Member | Affiliate | Login events |
| UsesCurrency | Member | Currency | Login events |
| PlaysOnPlatform | Member | Platform | Login events |
| ProvidedBy | Game | Provider | GameOpened events |
| Event | Key Fields |
|---|---|
| Login | member_code, device_id, vip_group, affiliate_code, currency, platform |
| GameOpened | member_code, game_code, provider_code |
| PopupModule | member_code, popup_name |
| API Error | member_code, error_code |
Defined in data/rules/features/feature-config.yml:
| Dimension | Type | Description |
|---|---|---|
| login_count | count | Total login events |
| game_count | count | Total game opens |
| unique_games | count_distinct | Unique games played |
| error_count | count | Total errors |
| popup_count | count | Total popups seen |
| platform_mobile_ratio | ratio | Mobile vs total logins |
| session_count | count | Distinct sessions |
| avg_session_gap_hours | average | Mean time between sessions |
| vip_group | encoded | bronze→1, silver→2, gold→3, platinum→4, diamond→5, vip→6 |
| currency | encoded | USD→1, EUR→2, GBP→3, ... IDR→10 |
Performed by crates/connector/src/entity_extract.rs:
Tests in crates/rules/tests/examples.rs verify that YAML entity/edge types match Rust enum variants. When adding new entity or edge types:
data/rules/schema/entity-schema.yml