{
  "format": "dataset-manifest/1",
  "slug": "item-catalogue",
  "version": 1,
  "seed": "item-catalogue:1",
  "spec": {
    "format": "dataset/1",
    "slug": "item-catalogue",
    "name": "Item Catalogue",
    "tagline": "Essential reference data for role-playing game items.",
    "description": "The Item Catalogue serves as a foundational resource for role-playing games, providing detailed information on items, their rarities, and categories. This synthetic dataset is designed for developers seeking to mock APIs or teach database concepts. The tables within the dataset form a cohesive reference system: the 'items' table holds individual item records, while the 'rarities' table categorizes items based on their scarcity and the 'categories' table organizes items into types such as weapons, armor, and consumables. Each item links to its rarity and category, allowing for structured queries that can answer questions about item availability and characteristics. This dataset is ideal for practicing SQL queries, API interactions, and data modeling techniques.",
    "domain": "gaming",
    "shape": "lookup-catalog",
    "useCases": [
      "api-mocking",
      "teaching"
    ],
    "keywords": [
      "items",
      "gaming",
      "rarities",
      "categories",
      "role-playing",
      "data",
      "reference",
      "synthetic"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "items": {
        "description": "This table contains records of individual game items, linking to their corresponding rarity and category. Each row represents a unique item with associated attributes like name, description, and stats.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each item."
          },
          "name": {
            "kind": "fullName",
            "description": "The name of the item."
          },
          "description": {
            "kind": "paragraph",
            "min": 10,
            "max": 500,
            "description": "A detailed description of the item.",
            "nullable": true
          },
          "rarity_id": {
            "kind": "fk",
            "ref": "rarities.id",
            "description": "Foreign key linking to the rarity of the item."
          },
          "category_id": {
            "kind": "fk",
            "ref": "categories.id",
            "description": "Foreign key linking to the category of the item."
          },
          "stats": {
            "kind": "json",
            "template": {
              "attack": {
                "kind": "int",
                "min": 0,
                "max": 100,
                "description": "Attack value of the item."
              },
              "defense": {
                "kind": "int",
                "min": 0,
                "max": 100,
                "description": "Defense value of the item."
              }
            },
            "description": "Stat block containing various attributes of the item.",
            "nullable": true
          }
        }
      },
      "rarities": {
        "description": "This table lists the different rarities that items can possess, categorizing them by their scarcity. Each rarity has a unique identifier and a descriptive name.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each rarity."
          },
          "name": {
            "kind": "fullName",
            "description": "The name of the rarity (e.g., Common, Rare, Epic)."
          },
          "weight": {
            "kind": "decimal",
            "min": 0,
            "max": 1,
            "scale": 2,
            "description": "Weight representing the likelihood of the rarity appearing.",
            "nullable": true
          }
        }
      },
      "categories": {
        "description": "This table organizes items into specific categories, such as weapons, armor, and consumables. Each category is linked to its respective items.",
        "rows": 15,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each category."
          },
          "name": {
            "kind": "fullName",
            "description": "The name of the category."
          },
          "description": {
            "kind": "sentence",
            "min": 5,
            "max": 200,
            "description": "A brief description of what items belong in this category.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "high-cardinality",
      "nullable"
    ],
    "analysisQuestions": [
      "What are the most common item categories in the game?",
      "How does the rarity distribution affect item availability?",
      "Which items have the highest attack or defense values?",
      "How many items belong to each rarity type?",
      "What is the average weight of rarities across different categories?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Items with Rarities",
        "sql": "SELECT items.name, rarities.name AS rarity FROM items JOIN rarities ON items.rarity_id = rarities.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Items by Category",
        "sql": "SELECT categories.name, COUNT(items.id) AS item_count FROM categories LEFT JOIN items ON categories.id = items.category_id GROUP BY categories.name;",
        "dialect": "postgres"
      },
      {
        "title": "Average Attack Value by Rarity",
        "sql": "SELECT rarities.name, AVG((stats->>'attack')::int) AS average_attack FROM items JOIN rarities ON items.rarity_id = rarities.id GROUP BY rarities.name;",
        "dialect": "postgres"
      },
      {
        "title": "Items with High Defense",
        "sql": "SELECT items.name FROM items WHERE (stats->>'defense')::int > 75;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Game Server Initialization",
        "body": "Game developers can use this dataset to preload item data into their game servers, ensuring that players have access to a rich variety of items from the start. By integrating this data, they can create dynamic interactions based on item rarity and category."
      },
      {
        "title": "Teaching SQL Concepts",
        "body": "Educators can leverage this dataset in classroom settings to teach students SQL querying and database management. The structured nature of the data allows for hands-on learning with practical examples related to gaming."
      },
      {
        "title": "API Development for Game Items",
        "body": "Developers building APIs for gaming applications can mock endpoints that serve item data using this dataset. By simulating real-world scenarios, they can test their APIs thoroughly before deploying them in production."
      }
    ]
  },
  "counts": {
    "categories": 15,
    "rarities": 10,
    "items": 200
  },
  "stats": {
    "items": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "name": {
          "nulls": 0,
          "distinct": 192,
          "min": "Alice Baker",
          "max": "Zoe Nguyen"
        },
        "description": {
          "nulls": 16,
          "distinct": 184
        },
        "rarity_id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "category_id": {
          "nulls": 0,
          "distinct": 15,
          "min": 1,
          "max": 15
        },
        "stats": {
          "nulls": 19,
          "distinct": 179
        }
      }
    },
    "rarities": {
      "rows": 10,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "name": {
          "nulls": 0,
          "distinct": 10,
          "min": "Alice Larsen",
          "max": "Ravi Clark"
        },
        "weight": {
          "nulls": 1,
          "distinct": 9,
          "min": 0.02,
          "max": 0.85
        }
      }
    },
    "categories": {
      "rows": 15,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 15,
          "min": 1,
          "max": 15
        },
        "name": {
          "nulls": 0,
          "distinct": 15,
          "min": "Amir Clark",
          "max": "Zoe Torres"
        },
        "description": {
          "nulls": 0,
          "distinct": 15
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/categories.csv",
      "format": "csv",
      "table": "categories",
      "key": "datasets/item-catalogue/v1/csv/categories.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/csv/categories.csv",
      "bytes": 1088,
      "sha256": "7fc49c37f2f0c144e66f24eb5184d360d9fea75efbf20d16c792ab18bda4157b",
      "rows": 15,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/rarities.csv",
      "format": "csv",
      "table": "rarities",
      "key": "datasets/item-catalogue/v1/csv/rarities.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/csv/rarities.csv",
      "bytes": 213,
      "sha256": "b7a2600ee0590ed42acbfc2a9c03eca1fb14a320c1bb3e983f461bd2af6b560d",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/items.csv",
      "format": "csv",
      "table": "items",
      "key": "datasets/item-catalogue/v1/csv/items.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/csv/items.csv",
      "bytes": 41836,
      "sha256": "a806c76ce781b02d5a8b11a01a979b486e959913744e0c829342b09aa366ea3b",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "item-catalogue.json",
      "format": "json",
      "table": null,
      "key": "datasets/item-catalogue/v1/item-catalogue.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/item-catalogue.json",
      "bytes": 73002,
      "sha256": "7a19b72c65882dd1e46c54a0502bbd470fe19bd3fd1c91a2b60a77b1c0e10292",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/item-catalogue/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/sql/postgres.sql",
      "bytes": 47076,
      "sha256": "a35d0871da7648c0c7029b298501fae2e13459787a49cc195861f4c03bbe2f2d",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/item-catalogue/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/sql/mysql.sql",
      "bytes": 46754,
      "sha256": "a8d9e2bc068bff3870f085f0cbb9406359557285445ec6a4ed95a2fe2b59beea",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/item-catalogue/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/sql/mssql.sql",
      "bytes": 47570,
      "sha256": "faeab34b21afa1583537255b94f0097212b59a315572940fcf71b761ff5d6340",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/item-catalogue/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/sql/sqlite.sql",
      "bytes": 46662,
      "sha256": "9641fbcde9e364a86076c87c87a23e8464e5bb45134c9592faa2666c085f9ede",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/item-catalogue/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/prisma/seed.ts",
      "bytes": 59641,
      "sha256": "138a5be7e6b03fa934c48d6e3ad4889338255e0ccc96a9b829b27fc51290c81a",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/item-catalogue/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/item-catalogue/v1/django/fixtures.json",
      "bytes": 81067,
      "sha256": "7f99595451f06e18c5774e341f7e68b822293c7832123158445078a4b3eff6a4",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768332356,
  "updatedAt": 1788768332356
}
