{
  "format": "dataset-manifest/1",
  "slug": "snake-game",
  "version": 2,
  "seed": "snake-game:1",
  "spec": {
    "format": "dataset/1",
    "slug": "snake-game",
    "name": "Snake Game Insights",
    "tagline": "Player profiles, tournaments, game events, chat interactions, and leaderboard entries for a competitive snake game.",
    "description": "Players engage in an exciting and competitive environment where they maneuver a snake through various obstacles while aiming to score points and outlast other competitors. This dataset models player profiles, tournament matches, game events, and their interactions in chat rooms during gameplay. The tables are designed to reflect the relationships between players, their performances in tournaments, and interactions within the game, making it a rich resource for understanding player behavior and tournament outcomes. With this synthetic dataset, developers can practice building ETL pipelines or teaching data analysis techniques, as it provides a variety of data points to explore. The structure allows for insights into how players interact, their achievements, and the dynamics of competitive play.",
    "domain": "gaming",
    "shape": "slowly-changing",
    "useCases": [
      "etl-pipelines",
      "teaching"
    ],
    "keywords": [
      "gaming",
      "snake game",
      "player profiles",
      "tournaments",
      "game events",
      "chat interactions",
      "leaderboard"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "players": {
        "description": "Each row represents a player in the Snake Game, linking to their tournament participations and performance metrics.",
        "rows": 1000,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the player."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the player."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address linked to the player."
          },
          "join_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "Date when the player joined the game."
          },
          "total_games_played": {
            "kind": "int",
            "min": 0,
            "max": 500,
            "description": "Total number of games the player has participated in.",
            "distribution": "long-tail"
          }
        }
      },
      "tournaments": {
        "description": "This table holds information about tournaments, including details about the matches played and their outcomes.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the tournament."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The name of the tournament.",
            "pool": [
              "championship",
              "battle",
              "arena",
              "cup",
              "challenge",
              "showdown",
              "league",
              "finals",
              "series",
              "clash",
              "open",
              "masters",
              "qualifier",
              "fest",
              "event",
              "trophy",
              "season",
              "sprint",
              "duel",
              "exhibition",
              "grand"
            ]
          },
          "start_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The start date and time of the tournament.",
            "dayProfile": "waking",
            "trend": "growing"
          },
          "end_date": {
            "kind": "datetime",
            "after": "start_date",
            "withinDays": 30,
            "description": "The end date and time of the tournament."
          },
          "winner_id": {
            "kind": "fk",
            "ref": "players.id",
            "nullable": true,
            "description": "The player who won the tournament."
          }
        }
      },
      "game_events": {
        "description": "Records significant moments during gameplay, such as scores achieved and obstacles encountered.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the game event."
          },
          "player_id": {
            "kind": "fk",
            "ref": "players.id",
            "description": "The player associated with the game event."
          },
          "tournament_id": {
            "kind": "fk",
            "ref": "tournaments.id",
            "nullable": true,
            "description": "The tournament in which the event occurred."
          },
          "score": {
            "kind": "int",
            "min": 0,
            "max": 10000,
            "description": "Score achieved during the event.",
            "distribution": "normal"
          },
          "event_time": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "Timestamp of when the event occurred.",
            "dayProfile": "waking"
          }
        }
      },
      "chat_rooms": {
        "description": "Captures player interactions in chat rooms during tournaments, showcasing player engagement.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the chat message."
          },
          "player_id": {
            "kind": "fk",
            "ref": "players.id",
            "description": "The player who sent the message."
          },
          "tournament_id": {
            "kind": "fk",
            "ref": "tournaments.id",
            "description": "The tournament where the message was sent."
          },
          "message": {
            "kind": "sentence",
            "min": 1,
            "max": 250,
            "description": "The content of the chat message."
          },
          "sent_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "Timestamp of when the message was sent.",
            "dayProfile": "waking"
          }
        }
      },
      "leaderboard": {
        "description": "Displays the rankings of players based on their scores across tournaments.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the leaderboard entry."
          },
          "player_id": {
            "kind": "fk",
            "ref": "players.id",
            "description": "The player associated with this leaderboard entry."
          },
          "tournament_id": {
            "kind": "fk",
            "ref": "tournaments.id",
            "description": "The tournament related to this leaderboard entry."
          },
          "rank": {
            "kind": "int",
            "min": 1,
            "max": 100,
            "description": "The rank of the player in the tournament."
          },
          "score": {
            "kind": "int",
            "min": 0,
            "max": 10000,
            "description": "Score that determined the player's rank.",
            "distribution": "normal"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "What factors contribute to a player's success in tournaments?",
      "How do chat interactions correlate with tournament performance?",
      "Which players consistently rank at the top across multiple tournaments?",
      "What times of day see the most player engagement in chat rooms?",
      "How do scores vary between different tournaments?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Players and Tournaments",
        "sql": "SELECT players.full_name, tournaments.name FROM players JOIN tournaments ON players.id = tournaments.winner_id;",
        "dialect": "postgres"
      },
      {
        "title": "Aggregate Scores by Player",
        "sql": "SELECT player_id, SUM(score) AS total_score FROM game_events GROUP BY player_id;",
        "dialect": "postgres"
      },
      {
        "title": "Leaderboard Rankings",
        "sql": "SELECT player_id, rank FROM leaderboard WHERE tournament_id = 1 ORDER BY rank;",
        "dialect": "postgres"
      },
      {
        "title": "Chat Activity During Tournaments",
        "sql": "SELECT tournament_id, COUNT(*) AS message_count FROM chat_rooms GROUP BY tournament_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Data Analysis for Game Developers",
        "body": "Game developers can utilize this dataset to analyze player engagement and performance trends. By examining tournament results alongside chat interactions, they can identify features that enhance player retention and competitiveness."
      },
      {
        "title": "Teaching Data Science Concepts",
        "body": "Educators can use this dataset to teach data science concepts such as data cleaning, aggregation, and visualization. Students can explore player performance metrics and learn how to derive insights from the data."
      },
      {
        "title": "ETL Pipeline Development",
        "body": "Data engineers can practice building ETL pipelines using this dataset. They can extract, transform, and load data into a data warehouse while ensuring the integrity and accessibility of player performance and interaction data."
      }
    ]
  },
  "counts": {
    "players": 1000,
    "tournaments": 200,
    "chat_rooms": 400,
    "game_events": 500,
    "leaderboard": 300
  },
  "stats": {
    "players": {
      "rows": 1000,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 1000,
          "min": 1,
          "max": 1000
        },
        "full_name": {
          "nulls": 0,
          "distinct": 914,
          "min": "Alice Costa",
          "max": "Zoe Schmidt"
        },
        "email": {
          "nulls": 0,
          "distinct": 972
        },
        "join_date": {
          "nulls": 0,
          "distinct": 708,
          "min": "2020-01-05",
          "max": "2023-12-28"
        },
        "total_games_played": {
          "nulls": 0,
          "distinct": 386,
          "min": 0,
          "max": 500
        }
      }
    },
    "tournaments": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "name": {
          "nulls": 0,
          "distinct": 150
        },
        "start_date": {
          "nulls": 0,
          "distinct": 200,
          "min": "2020-01-05 13:47:29",
          "max": "2023-12-30 12:54:21"
        },
        "end_date": {
          "nulls": 0,
          "distinct": 200,
          "min": "2020-01-23 00:36:38",
          "max": "2023-12-31 22:05:52"
        },
        "winner_id": {
          "nulls": 14,
          "distinct": 163,
          "min": 9,
          "max": 997
        }
      }
    },
    "game_events": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "player_id": {
          "nulls": 0,
          "distinct": 404,
          "min": 4,
          "max": 1000
        },
        "tournament_id": {
          "nulls": 43,
          "distinct": 179,
          "min": 1,
          "max": 200
        },
        "score": {
          "nulls": 0,
          "distinct": 469,
          "min": 531,
          "max": 8760
        },
        "event_time": {
          "nulls": 0,
          "distinct": 500,
          "min": "2020-01-08 12:40:50",
          "max": "2023-12-30 18:51:25"
        }
      }
    },
    "chat_rooms": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "player_id": {
          "nulls": 0,
          "distinct": 336,
          "min": 2,
          "max": 997
        },
        "tournament_id": {
          "nulls": 0,
          "distinct": 171,
          "min": 2,
          "max": 200
        },
        "message": {
          "nulls": 0,
          "distinct": 396
        },
        "sent_at": {
          "nulls": 0,
          "distinct": 400,
          "min": "2020-01-04 19:30:59",
          "max": "2023-12-31 19:25:02"
        }
      }
    },
    "leaderboard": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "player_id": {
          "nulls": 0,
          "distinct": 259,
          "min": 1,
          "max": 996
        },
        "tournament_id": {
          "nulls": 0,
          "distinct": 160,
          "min": 1,
          "max": 200
        },
        "rank": {
          "nulls": 0,
          "distinct": 95,
          "min": 1,
          "max": 100
        },
        "score": {
          "nulls": 0,
          "distinct": 293,
          "min": 1062,
          "max": 9139
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/players.csv",
      "format": "csv",
      "table": "players",
      "key": "datasets/snake-game/v2/csv/players.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/csv/players.csv",
      "bytes": 55510,
      "sha256": "5f14ec7de76e5299673e626fa3f5fe54fb159d847114e7d6da43d72a77c88e0b",
      "rows": 1000,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/tournaments.csv",
      "format": "csv",
      "table": "tournaments",
      "key": "datasets/snake-game/v2/csv/tournaments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/csv/tournaments.csv",
      "bytes": 12581,
      "sha256": "d8b5cec1cdb51b550647258a5541466d7b45d79660691a113973a34d37e3e892",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/chat_rooms.csv",
      "format": "csv",
      "table": "chat_rooms",
      "key": "datasets/snake-game/v2/csv/chat_rooms.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/csv/chat_rooms.csv",
      "bytes": 35447,
      "sha256": "3094fb388297f4e64c416226a6a6909a6569a7a5e7259eadc0d02a380a0aac9c",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/game_events.csv",
      "format": "csv",
      "table": "game_events",
      "key": "datasets/snake-game/v2/csv/game_events.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/csv/game_events.csv",
      "bytes": 18509,
      "sha256": "416b2dad4385358565ca3fe77f9bf9497f6e9cbdf463789b1dd8e887cacc3116",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/leaderboard.csv",
      "format": "csv",
      "table": "leaderboard",
      "key": "datasets/snake-game/v2/csv/leaderboard.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/csv/leaderboard.csv",
      "bytes": 6007,
      "sha256": "9c952d112b43cb089607a659bfc9bca63386b54b6f038bfed29383c726b6d342",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "snake-game.json",
      "format": "json",
      "table": null,
      "key": "datasets/snake-game/v2/snake-game.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/snake-game.json",
      "bytes": 390429,
      "sha256": "a6aa1f6bfaf892bae18a551b3aa98bd9a167cd1002770796ccb0decad5f001b8",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/snake-game/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/sql/postgres.sql",
      "bytes": 165703,
      "sha256": "319b18a2d22235d1497866caf0fc13d7b2a678d487e606149376d3fe77e3c8c2",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/snake-game/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/sql/mysql.sql",
      "bytes": 165104,
      "sha256": "da8846ba65b884413c0f6e7eebb4dc53f740fc88837b9f390f0f1d9920f6652d",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/snake-game/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/sql/mssql.sql",
      "bytes": 170345,
      "sha256": "7d9b32fbdbaf18cfcc41b79d95bfec33d4b773492b359cf8566ffdda1d17a8c5",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/snake-game/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/sql/sqlite.sql",
      "bytes": 164821,
      "sha256": "aac950ccb2f8c5f33628a72fcc963e9b32f3e89415c4b5497d4c479f31840855",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/snake-game/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/prisma/seed.ts",
      "bytes": 319315,
      "sha256": "7e1b107475403d15e464ab73fff46c2efddba76085d73af90751480e52dbc54b",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/snake-game/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/snake-game/v2/django/fixtures.json",
      "bytes": 491619,
      "sha256": "5d826d727a4c1baa7317c743f5fa5a9059bafc55bbd1353ac8684ce006ec637e",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768172888,
  "updatedAt": 1788786102593
}
