{
  "format": "dataset-manifest/1",
  "slug": "library-sample-database",
  "version": 1,
  "seed": "flagship:library-sample-database:1k",
  "engine": 2,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "engine": 2,
    "slug": "library-sample-database",
    "name": "Library sample database",
    "tagline": "Branches, books, copies, members, loans, holds and fines for a public library system, with events and reviews.",
    "description": "A public library system over five years: eight branches hold copies of books from publishers in ten languages, members borrow and return them, place holds, attend events and write reviews. A book is due three weeks after it was borrowed and comes back within 26 days, so about one in five is late; a few are never returned, and the last loans of 2025 are still out. Fines are charged on a share of loans -- which loans is drawn, not worked out from the dates; a fine never exceeds the cap of its policy, a payment settles its fine in full, and what a fine shows as paid is the sum of its payments. Opening hours are drawn per row, so a branch can list the same weekday twice -- a good table to deduplicate.",
    "domain": "education",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "bi-dashboards",
      "test-fixtures"
    ],
    "keywords": [
      "library",
      "books",
      "loans",
      "circulation",
      "sample database"
    ],
    "locale": "en_US",
    "license": "CC0-1.0",
    "version": 1,
    "seed": "flagship:library-sample-database",
    "tables": {
      "addresses": {
        "description": "Rows for the addresses table.",
        "rows": 31,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "city": {
            "kind": "place.city"
          },
          "country": {
            "kind": "constant",
            "value": "United States"
          },
          "postal_code": {
            "kind": "place.postcode"
          },
          "state": {
            "kind": "place.regionCode"
          },
          "street": {
            "kind": "location.streetAddress"
          }
        }
      },
      "audit_logs": {
        "description": "Rows for the audit_logs table.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "action": {
            "kind": "enum",
            "values": [
              "checkout",
              "return",
              "renew",
              "hold",
              "fine",
              "login"
            ],
            "weights": [
              30,
              28,
              12,
              10,
              5,
              15
            ]
          },
          "action_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "business"
          },
          "ip_address": {
            "kind": "internet.ipv4"
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "skew": "long-tail"
          }
        }
      },
      "authors": {
        "description": "Rows for the authors table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "biography": {
            "kind": "enum",
            "values": [
              "Novelist and essayist",
              "Journalist turned author",
              "Academic and historian",
              "Award-winning children’s author",
              "Poet and translator"
            ]
          },
          "birth_date": {
            "kind": "date",
            "from": "1900-01-01",
            "to": "1995-12-31"
          },
          "death_date": {
            "kind": "date",
            "from": "1960-01-01",
            "to": "2025-12-31",
            "nullable": true,
            "nullRate": 0
          },
          "first_name": {
            "kind": "person.firstName"
          },
          "last_name": {
            "kind": "person.lastName"
          }
        }
      },
      "book_authors": {
        "description": "Rows for the book_authors table.",
        "rows": 16,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "author_id": {
            "kind": "fk",
            "ref": "authors.id",
            "skew": "long-tail"
          },
          "book_id": {
            "kind": "fk",
            "ref": "books.id",
            "skew": "long-tail"
          }
        }
      },
      "book_tag_mappings": {
        "description": "Rows for the book_tag_mappings table.",
        "rows": 30,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "book_id": {
            "kind": "fk",
            "ref": "books.id",
            "skew": "long-tail"
          },
          "tag_id": {
            "kind": "fk",
            "ref": "book_tags.id",
            "skew": "long-tail"
          }
        }
      },
      "book_tags": {
        "description": "Rows for the book_tags table.",
        "rows": 40,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "name": {
            "kind": "enum",
            "values": [
              "award-winner",
              "bestseller",
              "debut",
              "series",
              "classic",
              "book-club",
              "staff-pick",
              "large-print",
              "audiobook-available",
              "translated",
              "illustrated",
              "true-story",
              "short-stories",
              "coming-of-age",
              "dystopian",
              "cozy",
              "space",
              "magic",
              "detective",
              "war",
              "family",
              "friendship",
              "nature",
              "technology",
              "art",
              "music",
              "sports",
              "food",
              "humor",
              "philosophy",
              "politics",
              "religion",
              "psychology",
              "economics",
              "education",
              "parenting",
              "gardening",
              "crafts",
              "local-history",
              "new-arrival"
            ],
            "unique": true
          }
        }
      },
      "books": {
        "description": "Rows for the books table.",
        "rows": 12,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "category_id": {
            "kind": "fk",
            "ref": "categories.id",
            "skew": "long-tail"
          },
          "description": {
            "kind": "enum",
            "values": [
              "Hardcover",
              "Paperback",
              "Large print",
              "Library binding"
            ],
            "weights": [
              30,
              55,
              5,
              10
            ]
          },
          "isbn": {
            "kind": "pattern",
            "pattern": "[978-]#-####-####-#",
            "unique": true
          },
          "language_id": {
            "kind": "fk",
            "ref": "languages.id",
            "skew": "long-tail"
          },
          "pages": {
            "kind": "int",
            "min": 60,
            "max": 900,
            "distribution": "normal"
          },
          "publication_year": {
            "kind": "int",
            "min": 1950,
            "max": 2025,
            "distribution": "high"
          },
          "publisher_id": {
            "kind": "fk",
            "ref": "publishers.id",
            "skew": "long-tail"
          },
          "title": {
            "kind": "title",
            "min": 2,
            "max": 4,
            "pool": [
              "silent",
              "harbor",
              "winter",
              "garden",
              "last",
              "light",
              "river",
              "stone",
              "house",
              "night",
              "shadow",
              "summer",
              "letters",
              "city",
              "glass",
              "north",
              "salt",
              "iron",
              "golden",
              "hollow",
              "paper",
              "moon",
              "orchard",
              "fire",
              "crown",
              "distant",
              "wild",
              "hidden",
              "broken",
              "song",
              "daughter",
              "kingdom",
              "ocean",
              "forest",
              "memory",
              "station",
              "island",
              "bridge",
              "mountain",
              "storm",
              "secret",
              "thousand",
              "quiet",
              "burning",
              "midnight",
              "lost",
              "sister",
              "map",
              "harvest",
              "lantern"
            ]
          }
        }
      },
      "categories": {
        "description": "Rows for the categories table.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "description": {
            "kind": "enum",
            "values": [
              "Adult collection",
              "Children and teens",
              "Reference only, not for loan",
              "Popular reads"
            ],
            "weights": [
              55,
              20,
              5,
              20
            ]
          },
          "name": {
            "kind": "enum",
            "values": [
              "Literary fiction",
              "Mystery",
              "Thriller",
              "Science fiction",
              "Fantasy",
              "Romance",
              "Historical fiction",
              "Biography",
              "History",
              "Science",
              "Self-help",
              "Business",
              "Cooking",
              "Travel",
              "Poetry",
              "Graphic novels",
              "Children",
              "Young adult",
              "Health",
              "Reference"
            ],
            "unique": true
          }
        }
      },
      "copies": {
        "description": "Rows for the copies table.",
        "rows": 40,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "barcode": {
            "kind": "pattern",
            "pattern": "[3]#############",
            "unique": true
          },
          "book_id": {
            "kind": "fk",
            "ref": "books.id",
            "skew": "long-tail"
          },
          "condition": {
            "kind": "enum",
            "values": [
              "new",
              "good",
              "fair",
              "worn",
              "damaged"
            ],
            "weights": [
              15,
              45,
              25,
              12,
              3
            ]
          },
          "library_id": {
            "kind": "fk",
            "ref": "libraries.id",
            "skew": "long-tail"
          },
          "status": {
            "kind": "enum",
            "values": [
              "available",
              "on_loan",
              "in_repair",
              "lost"
            ],
            "weights": [
              62,
              32,
              3,
              3
            ]
          }
        }
      },
      "event_registrations": {
        "description": "Rows for the event_registrations table.",
        "rows": 40,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "event_id": {
            "kind": "fk",
            "ref": "events.id",
            "skew": "long-tail"
          },
          "registration_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31"
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "skew": "long-tail"
          }
        }
      },
      "events": {
        "description": "Rows for the events table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "capacity": {
            "kind": "int",
            "min": 10,
            "max": 120
          },
          "description": {
            "kind": "enum",
            "values": [
              "Free, no booking needed",
              "Registration required",
              "For ages 3 to 7",
              "Adults only"
            ]
          },
          "end_time": {
            "kind": "datetime",
            "after": "start_time",
            "withinSeconds": 10800
          },
          "library_id": {
            "kind": "fk",
            "ref": "libraries.id",
            "skew": "long-tail"
          },
          "start_time": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "waking"
          },
          "title": {
            "kind": "enum",
            "values": [
              "Story Time",
              "Book Club",
              "Author Talk",
              "Coding for Kids",
              "Job Search Workshop",
              "Tax Help",
              "Knitting Circle",
              "Film Night"
            ]
          }
        }
      },
      "fine_policies": {
        "description": "Rows for the fine_policies table.",
        "rows": 4,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "daily_rate": {
            "kind": "decimal",
            "min": 0.1,
            "max": 1,
            "scale": 2
          },
          "max_fine": {
            "kind": "decimal",
            "min": 25,
            "max": 50,
            "scale": 2
          },
          "name": {
            "kind": "enum",
            "values": [
              "standard",
              "children",
              "reference",
              "interlibrary"
            ],
            "unique": true
          }
        }
      },
      "fines": {
        "description": "Rows for the fines table.",
        "rows": 60,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "decimal",
            "min": 0.25,
            "max": 25,
            "scale": 2,
            "distribution": "long-tail"
          },
          "fine_policy_id": {
            "kind": "fk",
            "ref": "fine_policies.id",
            "skew": "long-tail"
          },
          "loan_id": {
            "kind": "fk",
            "ref": "loans.id",
            "unique": true
          },
          "paid_amount": {
            "kind": "decimal",
            "min": 0,
            "max": 10000,
            "scale": 2,
            "distribution": "long-tail"
          },
          "status": {
            "kind": "enum",
            "values": [
              "assessed",
              "disputed"
            ],
            "weights": [
              95,
              5
            ]
          }
        }
      },
      "languages": {
        "description": "Rows for the languages table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "code": {
            "kind": "slug",
            "from": "name",
            "unique": true
          },
          "name": {
            "kind": "enum",
            "values": [
              "English",
              "Spanish",
              "French",
              "German",
              "Italian",
              "Portuguese",
              "Chinese",
              "Japanese",
              "Arabic",
              "Turkish"
            ],
            "unique": true
          }
        }
      },
      "libraries": {
        "description": "Rows for the libraries table.",
        "rows": 8,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "address_id": {
            "kind": "fk",
            "ref": "addresses.id",
            "skew": "long-tail"
          },
          "email": {
            "kind": "internet.email"
          },
          "name": {
            "kind": "enum",
            "values": [
              "Central Library",
              "Riverside Branch",
              "Northgate Branch",
              "Eastside Branch",
              "Westfield Branch",
              "Hillcrest Branch",
              "Lakeview Branch",
              "Old Town Branch"
            ],
            "unique": true
          },
          "phone": {
            "kind": "place.phone"
          }
        }
      },
      "library_hours": {
        "description": "Rows for the library_hours table.",
        "rows": 56,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "close_time": {
            "kind": "enum",
            "values": [
              "17:00:00",
              "18:00:00",
              "20:00:00"
            ],
            "weights": [
              30,
              40,
              30
            ],
            "type": "time"
          },
          "day_of_week": {
            "kind": "int",
            "min": 1,
            "max": 7
          },
          "library_id": {
            "kind": "fk",
            "ref": "libraries.id",
            "skew": "long-tail"
          },
          "open_time": {
            "kind": "enum",
            "values": [
              "08:00:00",
              "09:00:00",
              "10:00:00"
            ],
            "weights": [
              20,
              55,
              25
            ],
            "type": "time"
          }
        }
      },
      "loans": {
        "description": "Rows for the loans table.",
        "rows": 1000,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "copy_id": {
            "kind": "fk",
            "ref": "copies.id",
            "skew": "long-tail"
          },
          "due_date": {
            "kind": "datetime",
            "after": "loan_date",
            "withinDays": 21
          },
          "loan_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "trend": "growing",
            "dayProfile": "business"
          },
          "membership_id": {
            "kind": "fk",
            "ref": "memberships.id",
            "skew": "long-tail"
          },
          "return_date": {
            "kind": "datetime",
            "after": "loan_date",
            "withinDays": 45,
            "nullable": true,
            "nullRate": 0.02,
            "dayProfile": "business"
          },
          "staff_id": {
            "kind": "fk",
            "ref": "staff_profiles.id",
            "skew": "long-tail"
          }
        }
      },
      "memberships": {
        "description": "Rows for the memberships table.",
        "rows": 35,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "card_number": {
            "kind": "pattern",
            "pattern": "[LIB]-########",
            "unique": true
          },
          "expiration_date": {
            "kind": "date",
            "after": "registration_date",
            "withinDays": 1095
          },
          "library_id": {
            "kind": "fk",
            "ref": "libraries.id",
            "skew": "long-tail"
          },
          "registration_date": {
            "kind": "date",
            "from": "2019-01-01",
            "to": "2025-06-30",
            "trend": "growing"
          },
          "status": {
            "kind": "enum",
            "values": [
              "active",
              "expired",
              "suspended"
            ],
            "weights": [
              78,
              18,
              4
            ]
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "skew": "long-tail"
          }
        }
      },
      "notification_templates": {
        "description": "Rows for the notification_templates table.",
        "rows": 8,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "body": {
            "kind": "constant",
            "value": "Sign in to your account to see the details."
          },
          "name": {
            "kind": "enum",
            "values": [
              "due_soon",
              "overdue",
              "hold_ready",
              "fine_issued",
              "membership_expiring",
              "event_reminder",
              "welcome",
              "password_reset"
            ],
            "unique": true
          },
          "subject": {
            "kind": "constant",
            "value": "A message from your library"
          }
        }
      },
      "notifications": {
        "description": "Rows for the notifications table.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "sent_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31"
          },
          "status": {
            "kind": "enum",
            "values": [
              "delivered",
              "sent",
              "failed"
            ],
            "weights": [
              88,
              9,
              3
            ]
          },
          "template_id": {
            "kind": "fk",
            "ref": "notification_templates.id",
            "skew": "long-tail"
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "skew": "long-tail"
          }
        }
      },
      "order_items": {
        "description": "Rows for the order_items table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "book_id": {
            "kind": "fk",
            "ref": "books.id",
            "skew": "long-tail"
          },
          "purchase_order_id": {
            "kind": "fk",
            "ref": "purchase_orders.id",
            "skew": "long-tail"
          },
          "quantity": {
            "kind": "int",
            "min": 1,
            "max": 6
          },
          "unit_price": {
            "kind": "decimal",
            "min": 6,
            "max": 60,
            "scale": 2,
            "distribution": "long-tail"
          }
        }
      },
      "payments": {
        "description": "Rows for the payments table.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "decimal",
            "min": 0,
            "max": 25,
            "scale": 2,
            "distribution": "long-tail"
          },
          "fine_id": {
            "kind": "fk",
            "ref": "fines.id",
            "unique": true
          },
          "payment_date": {
            "kind": "datetime",
            "from": "2021-01-15",
            "to": "2025-12-31",
            "dayProfile": "business"
          },
          "payment_method": {
            "kind": "enum",
            "values": [
              "card",
              "cash",
              "online"
            ],
            "weights": [
              45,
              20,
              35
            ]
          },
          "staff_id": {
            "kind": "fk",
            "ref": "staff_profiles.id",
            "skew": "long-tail"
          }
        }
      },
      "publishers": {
        "description": "Rows for the publishers table.",
        "rows": 60,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "address_id": {
            "kind": "fk",
            "ref": "addresses.id",
            "skew": "long-tail"
          },
          "email": {
            "kind": "internet.email"
          },
          "name": {
            "kind": "company.name"
          },
          "phone": {
            "kind": "phone.number"
          },
          "website": {
            "kind": "internet.url"
          }
        }
      },
      "purchase_orders": {
        "description": "Rows for the purchase_orders table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "delivery_date": {
            "kind": "datetime",
            "after": "order_date",
            "withinDays": 30
          },
          "order_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31"
          },
          "staff_id": {
            "kind": "fk",
            "ref": "staff_profiles.id",
            "skew": "long-tail"
          },
          "status": {
            "kind": "enum",
            "values": [
              "received",
              "ordered",
              "cancelled"
            ],
            "weights": [
              85,
              10,
              5
            ]
          },
          "supplier_id": {
            "kind": "fk",
            "ref": "suppliers.id",
            "skew": "long-tail"
          },
          "total_cost": {
            "kind": "decimal",
            "min": 1,
            "max": 10000,
            "scale": 2,
            "distribution": "long-tail"
          }
        }
      },
      "reservations": {
        "description": "Rows for the reservations table.",
        "rows": 80,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "book_id": {
            "kind": "fk",
            "ref": "books.id",
            "skew": "long-tail"
          },
          "expiration_date": {
            "kind": "datetime",
            "after": "reservation_date",
            "withinDays": 14
          },
          "membership_id": {
            "kind": "fk",
            "ref": "memberships.id",
            "skew": "long-tail"
          },
          "reservation_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "waking"
          },
          "status": {
            "kind": "enum",
            "values": [
              "fulfilled",
              "waiting",
              "expired",
              "cancelled"
            ],
            "weights": [
              70,
              8,
              12,
              10
            ]
          }
        }
      },
      "reviews": {
        "description": "Rows for the reviews table.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "book_id": {
            "kind": "fk",
            "ref": "books.id",
            "skew": "long-tail"
          },
          "comment": {
            "kind": "enum",
            "values": [
              "Could not put it down.",
              "Slow start, great ending.",
              "Our book club loved it.",
              "Not for me.",
              "Read it in one weekend.",
              "The audiobook is better.",
              "Recommended by the librarian, and rightly."
            ],
            "nullable": true,
            "nullRate": 0.3
          },
          "rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "distribution": "high"
          },
          "review_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "waking"
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "skew": "long-tail"
          }
        }
      },
      "roles": {
        "description": "Rows for the roles table.",
        "rows": 4,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "description": {
            "kind": "enum",
            "values": [
              "Borrows and reserves",
              "Runs the desk",
              "Runs a branch",
              "Runs the system"
            ]
          },
          "name": {
            "kind": "enum",
            "values": [
              "member",
              "librarian",
              "branch_manager",
              "admin"
            ],
            "unique": true
          }
        }
      },
      "staff_profiles": {
        "description": "Rows for the staff_profiles table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "hire_date": {
            "kind": "date",
            "from": "2005-01-01",
            "to": "2024-12-31"
          },
          "library_id": {
            "kind": "fk",
            "ref": "libraries.id",
            "skew": "long-tail"
          },
          "salary": {
            "kind": "decimal",
            "min": 30000,
            "max": 85000,
            "scale": 2,
            "distribution": "long-tail"
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "unique": true
          }
        }
      },
      "suppliers": {
        "description": "Rows for the suppliers table.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "address_id": {
            "kind": "fk",
            "ref": "addresses.id",
            "skew": "long-tail"
          },
          "email": {
            "kind": "internet.email"
          },
          "name": {
            "kind": "company.name"
          },
          "phone": {
            "kind": "phone.number"
          }
        }
      },
      "users": {
        "description": "Rows for the users table.",
        "rows": 30,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "address_id": {
            "kind": "fk",
            "ref": "addresses.id",
            "skew": "long-tail"
          },
          "email": {
            "kind": "internet.email",
            "from": {
              "firstName": "first_name",
              "lastName": "last_name"
            },
            "unique": true
          },
          "first_name": {
            "kind": "person.firstName"
          },
          "last_name": {
            "kind": "person.lastName"
          },
          "password_hash": {
            "kind": "pattern",
            "pattern": "[$2b$12$]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
          },
          "phone": {
            "kind": "phone.number"
          },
          "role_id": {
            "kind": "fk",
            "ref": "roles.id",
            "skew": "long-tail"
          }
        }
      }
    }
  },
  "counts": {
    "addresses": 31,
    "authors": 10,
    "book_tags": 40,
    "categories": 20,
    "fine_policies": 4,
    "languages": 10,
    "libraries": 8,
    "events": 10,
    "library_hours": 56,
    "notification_templates": 8,
    "publishers": 60,
    "books": 12,
    "book_authors": 16,
    "book_tag_mappings": 30,
    "copies": 40,
    "roles": 4,
    "suppliers": 20,
    "users": 30,
    "audit_logs": 20,
    "event_registrations": 40,
    "memberships": 35,
    "notifications": 250,
    "reservations": 80,
    "reviews": 50,
    "staff_profiles": 10,
    "loans": 1000,
    "fines": 60,
    "payments": 50,
    "purchase_orders": 10,
    "order_items": 10
  },
  "artifacts": [
    {
      "file": "csv/addresses.csv",
      "format": "csv",
      "table": "addresses",
      "key": "datasets/library-sample-database/v1/csv/addresses.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/addresses.csv",
      "bytes": 1739,
      "sha256": "85a174c6b8c6c0d9acd6cf91f558e99fdf7e781e6440309b74cc70e67cf456f2",
      "rows": 31,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/authors.csv",
      "format": "csv",
      "table": "authors",
      "key": "datasets/library-sample-database/v1/csv/authors.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/authors.csv",
      "bytes": 654,
      "sha256": "38680cd722db17aa5cec66bf65d1b58d77023a4de055aced339776875b301bc1",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/book_tags.csv",
      "format": "csv",
      "table": "book_tags",
      "key": "datasets/library-sample-database/v1/csv/book_tags.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/book_tags.csv",
      "bytes": 538,
      "sha256": "98c5bf65af1b1ad642f5fe9cccc34cadb516a6c54e0d3c1618720694eb0a24cd",
      "rows": 40,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/categories.csv",
      "format": "csv",
      "table": "categories",
      "key": "datasets/library-sample-database/v1/csv/categories.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/categories.csv",
      "bytes": 652,
      "sha256": "ea55fed99dd1c0a73593ba840ade9bbcdfdad473be87d7d310c369f18ca0905c",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/fine_policies.csv",
      "format": "csv",
      "table": "fine_policies",
      "key": "datasets/library-sample-database/v1/csv/fine_policies.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/fine_policies.csv",
      "bytes": 126,
      "sha256": "bf0689e7fef5aec47512c4350e6806f99c00db41c2025f032404f5a54314816c",
      "rows": 4,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/languages.csv",
      "format": "csv",
      "table": "languages",
      "key": "datasets/library-sample-database/v1/csv/languages.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/languages.csv",
      "bytes": 207,
      "sha256": "5a9574053c060c3f83326cf726b15a6d6ca286ae8153567534b84e2a52741497",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/libraries.csv",
      "format": "csv",
      "table": "libraries",
      "key": "datasets/library-sample-database/v1/csv/libraries.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/libraries.csv",
      "bytes": 541,
      "sha256": "0603008799a078d5856debddfa114e9d706454c9baba2dd17a00cbdbd7b64092",
      "rows": 8,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/events.csv",
      "format": "csv",
      "table": "events",
      "key": "datasets/library-sample-database/v1/csv/events.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/events.csv",
      "bytes": 851,
      "sha256": "479352711641300e3ac6216bebe1f852a57ce21389c841036685253b3ecaebdd",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/library_hours.csv",
      "format": "csv",
      "table": "library_hours",
      "key": "datasets/library-sample-database/v1/csv/library_hours.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/library_hours.csv",
      "bytes": 1495,
      "sha256": "05dc3204e6f5c1017e5089ad20b111417edab56c86e9538ddab3626f0af41767",
      "rows": 56,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/notification_templates.csv",
      "format": "csv",
      "table": "notification_templates",
      "key": "datasets/library-sample-database/v1/csv/notification_templates.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/notification_templates.csv",
      "bytes": 720,
      "sha256": "eb9d092ec69dade62423563252b47cec0192975af1978a5d21afb6d33100793e",
      "rows": 8,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/publishers.csv",
      "format": "csv",
      "table": "publishers",
      "key": "datasets/library-sample-database/v1/csv/publishers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/publishers.csv",
      "bytes": 6075,
      "sha256": "0a570216515256d348c414c97d57ebf0bef25f4abb41390944f378dd86d4435f",
      "rows": 60,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/books.csv",
      "format": "csv",
      "table": "books",
      "key": "datasets/library-sample-database/v1/csv/books.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/books.csv",
      "bytes": 929,
      "sha256": "f67383be577661940f02564b005f87f4b6477318411300b1cf510d1e90097b0b",
      "rows": 12,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/book_authors.csv",
      "format": "csv",
      "table": "book_authors",
      "key": "datasets/library-sample-database/v1/csv/book_authors.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/book_authors.csv",
      "bytes": 142,
      "sha256": "aa580b0d7db6b884448a8c371def70a32c8fe8c6c1a8622b5a4c5810c5773150",
      "rows": 16,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/book_tag_mappings.csv",
      "format": "csv",
      "table": "book_tag_mappings",
      "key": "datasets/library-sample-database/v1/csv/book_tag_mappings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/book_tag_mappings.csv",
      "bytes": 267,
      "sha256": "b7eaf72a9428747ac32826eb13fa0d8e11b41ae7a0b47a46c3fda2ba35101a52",
      "rows": 30,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/copies.csv",
      "format": "csv",
      "table": "copies",
      "key": "datasets/library-sample-database/v1/csv/copies.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/copies.csv",
      "bytes": 1528,
      "sha256": "70ba361e927e4b7724dd07838fadebbbda1d8d5adb3e5e54499818b970aa708f",
      "rows": 40,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/roles.csv",
      "format": "csv",
      "table": "roles",
      "key": "datasets/library-sample-database/v1/csv/roles.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/roles.csv",
      "bytes": 129,
      "sha256": "4d93bf11afcc702d45a6e1dec4a07b91fdf7414a4885114d97dc43fb25f8b038",
      "rows": 4,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/suppliers.csv",
      "format": "csv",
      "table": "suppliers",
      "key": "datasets/library-sample-database/v1/csv/suppliers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/suppliers.csv",
      "bytes": 1377,
      "sha256": "d6ea41e42621f56f829394b48c068a8f39baa4aba976a993ea6eec26f8151435",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/library-sample-database/v1/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/users.csv",
      "bytes": 3836,
      "sha256": "4fef7cb579f4080736feb4897a4b1960f2df382449639a53f9347d593e89b144",
      "rows": 30,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/audit_logs.csv",
      "format": "csv",
      "table": "audit_logs",
      "key": "datasets/library-sample-database/v1/csv/audit_logs.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/audit_logs.csv",
      "bytes": 987,
      "sha256": "3a09488abbc9c794958ecbdadc7759c5546592b80bab0fb8480a960b8e9d2277",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/event_registrations.csv",
      "format": "csv",
      "table": "event_registrations",
      "key": "datasets/library-sample-database/v1/csv/event_registrations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/event_registrations.csv",
      "bytes": 1166,
      "sha256": "a766e64d8d22d44f505477a1f2a03f97883d1852b93addc5c94677482d81d8c8",
      "rows": 40,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/memberships.csv",
      "format": "csv",
      "table": "memberships",
      "key": "datasets/library-sample-database/v1/csv/memberships.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/memberships.csv",
      "bytes": 1839,
      "sha256": "bc83d1cb3d67643c34d7a2565b037f6ad8ec9ca8e04c649a034aaa849ac2602e",
      "rows": 35,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/notifications.csv",
      "format": "csv",
      "table": "notifications",
      "key": "datasets/library-sample-database/v1/csv/notifications.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/notifications.csv",
      "bytes": 9675,
      "sha256": "198c2602bae2a8554e789a711a81f4e3f667b20e3ea192aa4e85fa2beef747a0",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reservations.csv",
      "format": "csv",
      "table": "reservations",
      "key": "datasets/library-sample-database/v1/csv/reservations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/reservations.csv",
      "bytes": 4714,
      "sha256": "30bd36b1d164383dbbf6103072535969900173ee3f1697e8ced9e3c90e1807df",
      "rows": 80,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reviews.csv",
      "format": "csv",
      "table": "reviews",
      "key": "datasets/library-sample-database/v1/csv/reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/reviews.csv",
      "bytes": 2575,
      "sha256": "9ca4d4ee83c6ca9f142aca1bb24bca9406eb5ec68067698bec3eedc81f276507",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/staff_profiles.csv",
      "format": "csv",
      "table": "staff_profiles",
      "key": "datasets/library-sample-database/v1/csv/staff_profiles.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/staff_profiles.csv",
      "bytes": 317,
      "sha256": "cdca8bdb1d73ab5cf159d614b7d1a480ec0d1c34516b4f1db28e106ded7c5df5",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/loans.csv",
      "format": "csv",
      "table": "loans",
      "key": "datasets/library-sample-database/v1/csv/loans.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/loans.csv",
      "bytes": 71469,
      "sha256": "b9e37690296c4e0e4895bd0753bb6def02ad339b846d48f7027fc96349f2e107",
      "rows": 1000,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/fines.csv",
      "format": "csv",
      "table": "fines",
      "key": "datasets/library-sample-database/v1/csv/fines.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/fines.csv",
      "bytes": 1778,
      "sha256": "c3619f07ddc81ebbdcc44fad30442906bbe78553b00463fc87b32a83e909134a",
      "rows": 60,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/payments.csv",
      "format": "csv",
      "table": "payments",
      "key": "datasets/library-sample-database/v1/csv/payments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/payments.csv",
      "bytes": 2036,
      "sha256": "a64d54319c08e491e63ad5abfb3f2b458444402acbde9a700793a21c89ba293e",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/purchase_orders.csv",
      "format": "csv",
      "table": "purchase_orders",
      "key": "datasets/library-sample-database/v1/csv/purchase_orders.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/purchase_orders.csv",
      "bytes": 708,
      "sha256": "a81ca0fcb82e5f6eec736ee33a03a88d4542299a501e2f92b1789a529fd8a643",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/order_items.csv",
      "format": "csv",
      "table": "order_items",
      "key": "datasets/library-sample-database/v1/csv/order_items.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/csv/order_items.csv",
      "bytes": 201,
      "sha256": "aada50ee58161758c993da750ce3073a758edb11c3296f4aa3c9e2620ff67c09",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "library-sample-database.json",
      "format": "json",
      "table": null,
      "key": "datasets/library-sample-database/v1/library-sample-database.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/library-sample-database.json",
      "bytes": 386084,
      "sha256": "441b90575bbf6d93409631068e2363008833f3d648496fe0ac93cb817fb8f9c3",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/library-sample-database/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/sql/postgres.sql",
      "bytes": 170299,
      "sha256": "3109dc341539827284c0ab688f63390389f200176ac93dc0f9cc182334eac3f4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/library-sample-database/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/sql/mysql.sql",
      "bytes": 167447,
      "sha256": "184b0f605f7d8e3df8d891696a3b4f686c075956b29d291770619953b7b0e2c8",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/library-sample-database/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/sql/mssql.sql",
      "bytes": 174150,
      "sha256": "4132b3cb250a8858a1636476458c042ac0e0322c58e7b4957c7936d02fbc6494",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/library-sample-database/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/sql/sqlite.sql",
      "bytes": 165006,
      "sha256": "62b834a2533bfca0408dcf7fc368e585477614e18e5aab95545a3d7274c00131",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/library-sample-database/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/prisma/seed.ts",
      "bytes": 336771,
      "sha256": "02411c8afd45790d4c49f6c009411985e8d4c589786d9d30b4c100ec6a564de3",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/library-sample-database/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/django/fixtures.json",
      "bytes": 463837,
      "sha256": "49a317fcc94b05c7b60458aa89448ec7dc42edd6936107a97322f4b5cce0be43",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "flagship": {
    "sizes": {
      "1k": {
        "rows": 2024,
        "counts": {
          "addresses": 31,
          "authors": 10,
          "book_tags": 40,
          "categories": 20,
          "fine_policies": 4,
          "languages": 10,
          "libraries": 8,
          "events": 10,
          "library_hours": 56,
          "notification_templates": 8,
          "publishers": 60,
          "books": 12,
          "book_authors": 16,
          "book_tag_mappings": 30,
          "copies": 40,
          "roles": 4,
          "suppliers": 20,
          "users": 30,
          "audit_logs": 20,
          "event_registrations": 40,
          "memberships": 35,
          "notifications": 250,
          "reservations": 80,
          "reviews": 50,
          "staff_profiles": 10,
          "loans": 1000,
          "fines": 60,
          "payments": 50,
          "purchase_orders": 10,
          "order_items": 10
        },
        "notes": [],
        "downloads": [
          {
            "format": "sql-postgres",
            "label": "PostgreSQL",
            "file": "flagship/1k/postgres.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/1k/postgres.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1k/postgres.sql.gz",
            "bytes": 47288,
            "sha256": "9cdd2400df6c61fa72eafe41f2a0c01b527dfde5ac9c97e2f5a6ce3790c8b467",
            "raw": {
              "bytes": 175246,
              "sha256": "7af5c1049c528a9002029ca39ee35d1dc2798bf1125b4014d65c25b5bb44d4c8"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-mysql",
            "label": "MySQL",
            "file": "flagship/1k/mysql.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/1k/mysql.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1k/mysql.sql.gz",
            "bytes": 46830,
            "sha256": "01f51dea461ba7b89525a585833f8bda927f2692836409c48b67d1ee32e1d65c",
            "raw": {
              "bytes": 172394,
              "sha256": "940a9306bb77ca02d2571841d41f4e9e91fd702df3c5aa37a513375f0755038f"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-sqlite",
            "label": "SQLite",
            "file": "flagship/1k/sqlite.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/1k/sqlite.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1k/sqlite.sql.gz",
            "bytes": 46177,
            "sha256": "07039cec6d6ea0ea9033554593480fb2a07e6258834563972d44d2bbc33f4a51",
            "raw": {
              "bytes": 169953,
              "sha256": "c17dbb74cfc092d46a0fce3577602e859dcacf7b44efe6abdbfafaac0b0bffb0"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "csv",
            "label": "CSV",
            "file": "flagship/1k/csv.zip",
            "key": "datasets/library-sample-database/v1/flagship/1k/csv.zip",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1k/csv.zip",
            "bytes": 48563,
            "sha256": "9271f2bf2ee0d559cfecaf2422fd48887fb95f815c21c0aeceec9ea4665032f8",
            "tables": {
              "addresses": {
                "bytes": 1739,
                "sha256": "85a174c6b8c6c0d9acd6cf91f558e99fdf7e781e6440309b74cc70e67cf456f2"
              },
              "audit_logs": {
                "bytes": 987,
                "sha256": "3a09488abbc9c794958ecbdadc7759c5546592b80bab0fb8480a960b8e9d2277"
              },
              "authors": {
                "bytes": 654,
                "sha256": "38680cd722db17aa5cec66bf65d1b58d77023a4de055aced339776875b301bc1"
              },
              "book_authors": {
                "bytes": 142,
                "sha256": "aa580b0d7db6b884448a8c371def70a32c8fe8c6c1a8622b5a4c5810c5773150"
              },
              "book_tag_mappings": {
                "bytes": 267,
                "sha256": "b7eaf72a9428747ac32826eb13fa0d8e11b41ae7a0b47a46c3fda2ba35101a52"
              },
              "book_tags": {
                "bytes": 538,
                "sha256": "98c5bf65af1b1ad642f5fe9cccc34cadb516a6c54e0d3c1618720694eb0a24cd"
              },
              "books": {
                "bytes": 929,
                "sha256": "f67383be577661940f02564b005f87f4b6477318411300b1cf510d1e90097b0b"
              },
              "categories": {
                "bytes": 652,
                "sha256": "ea55fed99dd1c0a73593ba840ade9bbcdfdad473be87d7d310c369f18ca0905c"
              },
              "copies": {
                "bytes": 1528,
                "sha256": "70ba361e927e4b7724dd07838fadebbbda1d8d5adb3e5e54499818b970aa708f"
              },
              "event_registrations": {
                "bytes": 1166,
                "sha256": "a766e64d8d22d44f505477a1f2a03f97883d1852b93addc5c94677482d81d8c8"
              },
              "events": {
                "bytes": 851,
                "sha256": "479352711641300e3ac6216bebe1f852a57ce21389c841036685253b3ecaebdd"
              },
              "fine_policies": {
                "bytes": 126,
                "sha256": "bf0689e7fef5aec47512c4350e6806f99c00db41c2025f032404f5a54314816c"
              },
              "fines": {
                "bytes": 1778,
                "sha256": "c3619f07ddc81ebbdcc44fad30442906bbe78553b00463fc87b32a83e909134a"
              },
              "languages": {
                "bytes": 207,
                "sha256": "5a9574053c060c3f83326cf726b15a6d6ca286ae8153567534b84e2a52741497"
              },
              "libraries": {
                "bytes": 541,
                "sha256": "0603008799a078d5856debddfa114e9d706454c9baba2dd17a00cbdbd7b64092"
              },
              "library_hours": {
                "bytes": 1495,
                "sha256": "05dc3204e6f5c1017e5089ad20b111417edab56c86e9538ddab3626f0af41767"
              },
              "loans": {
                "bytes": 71469,
                "sha256": "b9e37690296c4e0e4895bd0753bb6def02ad339b846d48f7027fc96349f2e107"
              },
              "memberships": {
                "bytes": 1839,
                "sha256": "bc83d1cb3d67643c34d7a2565b037f6ad8ec9ca8e04c649a034aaa849ac2602e"
              },
              "notification_templates": {
                "bytes": 720,
                "sha256": "eb9d092ec69dade62423563252b47cec0192975af1978a5d21afb6d33100793e"
              },
              "notifications": {
                "bytes": 9675,
                "sha256": "198c2602bae2a8554e789a711a81f4e3f667b20e3ea192aa4e85fa2beef747a0"
              },
              "order_items": {
                "bytes": 201,
                "sha256": "aada50ee58161758c993da750ce3073a758edb11c3296f4aa3c9e2620ff67c09"
              },
              "payments": {
                "bytes": 2036,
                "sha256": "a64d54319c08e491e63ad5abfb3f2b458444402acbde9a700793a21c89ba293e"
              },
              "publishers": {
                "bytes": 6075,
                "sha256": "0a570216515256d348c414c97d57ebf0bef25f4abb41390944f378dd86d4435f"
              },
              "purchase_orders": {
                "bytes": 708,
                "sha256": "a81ca0fcb82e5f6eec736ee33a03a88d4542299a501e2f92b1789a529fd8a643"
              },
              "reservations": {
                "bytes": 4714,
                "sha256": "30bd36b1d164383dbbf6103072535969900173ee3f1697e8ced9e3c90e1807df"
              },
              "reviews": {
                "bytes": 2575,
                "sha256": "9ca4d4ee83c6ca9f142aca1bb24bca9406eb5ec68067698bec3eedc81f276507"
              },
              "roles": {
                "bytes": 129,
                "sha256": "4d93bf11afcc702d45a6e1dec4a07b91fdf7414a4885114d97dc43fb25f8b038"
              },
              "staff_profiles": {
                "bytes": 317,
                "sha256": "cdca8bdb1d73ab5cf159d614b7d1a480ec0d1c34516b4f1db28e106ded7c5df5"
              },
              "suppliers": {
                "bytes": 1377,
                "sha256": "d6ea41e42621f56f829394b48c068a8f39baa4aba976a993ea6eec26f8151435"
              },
              "users": {
                "bytes": 3836,
                "sha256": "4fef7cb579f4080736feb4897a4b1960f2df382449639a53f9347d593e89b144"
              }
            },
            "contentType": "application/zip"
          }
        ],
        "checks": {
          "postgres": {
            "version": "18.3",
            "ok": true
          },
          "sqlite": {
            "version": "3.53.1",
            "ok": true
          },
          "notRun": [
            {
              "engine": "MySQL",
              "note": "Written from the same rows; not loaded here, no MySQL server runs in the build."
            }
          ]
        },
        "rules": [
          {
            "name": "Every loan is due three weeks after it was borrowed, and returned after it",
            "violations": 0
          },
          {
            "name": "A payment settles its fine in full, after the loan was due",
            "violations": 0
          },
          {
            "name": "What a fine shows as paid is the sum of its payments",
            "violations": 0
          },
          {
            "name": "No fine is over its policy cap",
            "violations": 0
          },
          {
            "name": "A hold expires after it is placed, and a membership after it starts",
            "violations": 0
          },
          {
            "name": "No author died before they were born",
            "violations": 0
          },
          {
            "name": "One fine per loan, one staff profile per person",
            "violations": 0
          }
        ],
        "dirty": {
          "report": {
            "rates": {
              "missing": 0.03,
              "typos": 0.03,
              "outliers": 0.005,
              "duplicates": 0.01
            },
            "tables": {
              "addresses": {
                "duplicates": 0,
                "columns": {
                  "city": {
                    "missing": 0,
                    "typos": 3,
                    "outliers": 0
                  },
                  "country": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  },
                  "state": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "street": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "authors": {
                "duplicates": 0,
                "columns": {
                  "first_name": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "book_tags": {
                "duplicates": 0,
                "columns": {
                  "name": {
                    "missing": 3,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "categories": {
                "duplicates": 0,
                "columns": {
                  "description": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "fine_policies": {
                "duplicates": 0,
                "columns": {
                  "max_fine": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "languages": {
                "duplicates": 0,
                "columns": {
                  "name": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "libraries": {
                "duplicates": 0,
                "columns": {
                  "email": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "name": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "events": {
                "duplicates": 0,
                "columns": {
                  "capacity": {
                    "missing": 0,
                    "typos": 0,
                    "outliers": 1
                  }
                }
              },
              "library_hours": {
                "duplicates": 2,
                "columns": {
                  "close_time": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  },
                  "day_of_week": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "notification_templates": {
                "duplicates": 0,
                "columns": {
                  "name": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "publishers": {
                "duplicates": 1,
                "columns": {
                  "name": {
                    "missing": 3,
                    "typos": 1,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "website": {
                    "missing": 3,
                    "typos": 3,
                    "outliers": 0
                  }
                }
              },
              "books": {
                "duplicates": 0,
                "columns": {
                  "description": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "title": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "book_tag_mappings": {
                "duplicates": 1,
                "columns": {}
              },
              "copies": {
                "duplicates": 0,
                "columns": {
                  "barcode": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "condition": {
                    "missing": 1,
                    "typos": 2,
                    "outliers": 0
                  }
                }
              },
              "roles": {
                "duplicates": 0,
                "columns": {
                  "description": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "name": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "suppliers": {
                "duplicates": 1,
                "columns": {
                  "email": {
                    "missing": 0,
                    "typos": 2,
                    "outliers": 0
                  },
                  "name": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "users": {
                "duplicates": 1,
                "columns": {
                  "email": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "first_name": {
                    "missing": 0,
                    "typos": 2,
                    "outliers": 0
                  },
                  "password_hash": {
                    "missing": 2,
                    "typos": 1,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "audit_logs": {
                "duplicates": 0,
                "columns": {
                  "action": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  },
                  "action_date": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "ip_address": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "event_registrations": {
                "duplicates": 1,
                "columns": {
                  "registration_date": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "memberships": {
                "duplicates": 0,
                "columns": {
                  "card_number": {
                    "missing": 0,
                    "typos": 2,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "notifications": {
                "duplicates": 0,
                "columns": {
                  "sent_date": {
                    "missing": 9,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 2,
                    "typos": 8,
                    "outliers": 0
                  }
                }
              },
              "reservations": {
                "duplicates": 0,
                "columns": {
                  "expiration_date": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  },
                  "reservation_date": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 3,
                    "typos": 4,
                    "outliers": 0
                  }
                }
              },
              "reviews": {
                "duplicates": 0,
                "columns": {
                  "comment": {
                    "missing": 2,
                    "typos": 1,
                    "outliers": 0
                  },
                  "rating": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "review_date": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "staff_profiles": {
                "duplicates": 0,
                "columns": {
                  "hire_date": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "loans": {
                "duplicates": 11,
                "columns": {
                  "due_date": {
                    "missing": 20,
                    "typos": 0,
                    "outliers": 0
                  },
                  "loan_date": {
                    "missing": 30,
                    "typos": 0,
                    "outliers": 0
                  },
                  "return_date": {
                    "missing": 25,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "fines": {
                "duplicates": 0,
                "columns": {
                  "amount": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "paid_amount": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 4,
                    "typos": 2,
                    "outliers": 0
                  }
                }
              },
              "payments": {
                "duplicates": 0,
                "columns": {
                  "payment_method": {
                    "missing": 3,
                    "typos": 4,
                    "outliers": 0
                  }
                }
              },
              "order_items": {
                "duplicates": 0,
                "columns": {
                  "quantity": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              }
            },
            "totals": {
              "missing": 153,
              "typos": 44,
              "outliers": 1,
              "duplicates": 18
            }
          },
          "downloads": [
            {
              "format": "dirty-sql-postgres",
              "label": "PostgreSQL, with faults",
              "file": "flagship/1k/dirty-postgres.sql.gz",
              "key": "datasets/library-sample-database/v1/flagship/1k/dirty-postgres.sql.gz",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1k/dirty-postgres.sql.gz",
              "bytes": 45904,
              "sha256": "4e56ce4bd2153679767c3a50e1a088790e4e71ff4227aea974808e7b76187b6a",
              "raw": {
                "bytes": 168415,
                "sha256": "4e87c4c966668bff50ca636ee3417f0e64b053b09e29736985a7f3cdf3e01e14"
              },
              "contentType": "application/gzip"
            },
            {
              "format": "dirty-csv",
              "label": "CSV, with faults",
              "file": "flagship/1k/dirty-csv.zip",
              "key": "datasets/library-sample-database/v1/flagship/1k/dirty-csv.zip",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1k/dirty-csv.zip",
              "bytes": 48434,
              "sha256": "e258671809cc61bacd5cbd9ede003e8f3f496502474a84f210c7d49e7a26f8d4",
              "tables": {
                "addresses": {
                  "bytes": 1733,
                  "sha256": "621ce4447bdea5b1410b3a94e2a9f459f10704610f492e19d395bc0dbf09514c"
                },
                "audit_logs": {
                  "bytes": 941,
                  "sha256": "6d54496cc386644fe68a9ff6008ee85a6ef5cc1b8c2762d19f701f40275781e6"
                },
                "authors": {
                  "bytes": 657,
                  "sha256": "067455f66dcce189c33d57a9a11060e7c9323573eb7b693caeefc907cee486ad"
                },
                "book_authors": {
                  "bytes": 142,
                  "sha256": "aa580b0d7db6b884448a8c371def70a32c8fe8c6c1a8622b5a4c5810c5773150"
                },
                "book_tag_mappings": {
                  "bytes": 275,
                  "sha256": "aad169bed4696d6fe4c9c80048c5683e883d47de1ddfe168f3db19b8289a19e3"
                },
                "book_tags": {
                  "bytes": 516,
                  "sha256": "e658c341117731515f0d5a18d72df38a90598f40736645f87c567f63ec7e14cf"
                },
                "books": {
                  "bytes": 897,
                  "sha256": "3d9949605b694f91d289d92bc1f53150e7454e6cbc00ab6bd9365e05201ec24b"
                },
                "categories": {
                  "bytes": 623,
                  "sha256": "684e6c0c50d35d55a6c39e1b15de3c2eefc369212daf91167871d34bb14262a5"
                },
                "copies": {
                  "bytes": 1513,
                  "sha256": "b5c178ce1b59b530a7c30d498b18fd6cc1858e914be28e56850058fafd158763"
                },
                "event_registrations": {
                  "bytes": 1156,
                  "sha256": "7b784d11eabb213a137b1b5a86074f2a00df51c7daac97109085ea0265c3b005"
                },
                "events": {
                  "bytes": 852,
                  "sha256": "02e6702ecd7da0fc780477625af66e44e706ee9df19f65e195fcc09b11df65d1"
                },
                "fine_policies": {
                  "bytes": 121,
                  "sha256": "20aa8ee618dac10799deb22c9238d539062764203dbf9ff45b811b5cfd38891c"
                },
                "fines": {
                  "bytes": 1738,
                  "sha256": "0c8b58791490000bbf14d3623ff965f71b794d3581545aae428699414bffa382"
                },
                "languages": {
                  "bytes": 192,
                  "sha256": "2d15192e3ed53354cd4c52ba10172bbc9f2915f513c6ffc7c4631d48ae9a2090"
                },
                "libraries": {
                  "bytes": 504,
                  "sha256": "c9eb6e69edc401f2bf430f8e0a3456a03009e35a174ed6b89ab960f6132e6868"
                },
                "library_hours": {
                  "bytes": 1521,
                  "sha256": "79d4392c35c6bb0675e88f04522678f90c7e28f03cfaeb0c192065d6cbfdb91a"
                },
                "loans": {
                  "bytes": 70812,
                  "sha256": "56806ca2fcec47f5fe7299885031b93b2b1543732dd7cc69c50dabd8a16c14f8"
                },
                "memberships": {
                  "bytes": 1835,
                  "sha256": "1aae9e34f74d55e2b140cd14bb011b10a4aacdc97e50f421b15f74e11e4a07a7"
                },
                "notification_templates": {
                  "bytes": 723,
                  "sha256": "035a648d19713809b3659bb28f8b1db2eb24f5e4a11eada783dc6ee51b212486"
                },
                "notifications": {
                  "bytes": 9495,
                  "sha256": "a7f9ecc88da7c2efd872af6ae5e3c2f049e3e63a28350482337d257d3093efdd"
                },
                "order_items": {
                  "bytes": 200,
                  "sha256": "af943b393737a9aa2c8093b5caccde0c4990732bf440211cfe57c9a8210ef5ea"
                },
                "payments": {
                  "bytes": 2026,
                  "sha256": "e8db4cf223af0e4922954e98729791f465381c650737634751201419088f4597"
                },
                "publishers": {
                  "bytes": 5984,
                  "sha256": "7a99a14fcfcbd13ed61592401ddd475c1af65a4ab845946d85390112a3b13de1"
                },
                "purchase_orders": {
                  "bytes": 708,
                  "sha256": "a81ca0fcb82e5f6eec736ee33a03a88d4542299a501e2f92b1789a529fd8a643"
                },
                "reservations": {
                  "bytes": 4595,
                  "sha256": "947e03212266648ccd0f40618836732f09dd79f198ad1abbaf5d144843ffd160"
                },
                "reviews": {
                  "bytes": 2489,
                  "sha256": "bf133002464f7c0c07d6dc786d532cb5bf130a8217c73dbf6b95c367a2388d68"
                },
                "roles": {
                  "bytes": 132,
                  "sha256": "c84741eb4f9bb36839c5daf6731c1eb1a9d3885a928cf9adb2fc9b0035642617"
                },
                "staff_profiles": {
                  "bytes": 307,
                  "sha256": "12093fe0345933d0d402577e43137b2f6f0fd6d970fc4132dbc58193f23387d9"
                },
                "suppliers": {
                  "bytes": 1382,
                  "sha256": "f7a53b3dce732c8e528aacca36f71175e4ed296eb619fc9f2bb0f3ecad0d99f6"
                },
                "users": {
                  "bytes": 3813,
                  "sha256": "0428d2be01248534e4d3032d7d40f398b29298295e2d9ea1469845a8fb7b1fd3"
                }
              },
              "contentType": "application/zip"
            }
          ]
        }
      },
      "100k": {
        "rows": 176780,
        "counts": {
          "addresses": 3100,
          "authors": 600,
          "book_tags": 40,
          "categories": 20,
          "fine_policies": 4,
          "languages": 10,
          "libraries": 8,
          "events": 300,
          "library_hours": 56,
          "notification_templates": 8,
          "publishers": 60,
          "books": 1200,
          "book_authors": 1600,
          "book_tag_mappings": 3000,
          "copies": 4000,
          "roles": 4,
          "suppliers": 20,
          "users": 3000,
          "audit_logs": 2000,
          "event_registrations": 4000,
          "memberships": 3500,
          "notifications": 25000,
          "reservations": 8000,
          "reviews": 5000,
          "staff_profiles": 50,
          "loans": 100000,
          "fines": 6000,
          "payments": 5000,
          "purchase_orders": 200,
          "order_items": 1000
        },
        "notes": [],
        "downloads": [
          {
            "format": "sql-postgres",
            "label": "PostgreSQL",
            "file": "flagship/100k/postgres.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/100k/postgres.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/100k/postgres.sql.gz",
            "bytes": 3836790,
            "sha256": "bd557bfb7aa2ebc703dce5510ba47cfe88ab89dab87b9f60f920435b81debaf1",
            "raw": {
              "bytes": 14473048,
              "sha256": "b32f91147274b14a5b30d9dd208149a3df2ebee28c6ad13ef8b0ba72bf54d533"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-mysql",
            "label": "MySQL",
            "file": "flagship/100k/mysql.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/100k/mysql.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/100k/mysql.sql.gz",
            "bytes": 3834987,
            "sha256": "f0bd8851b751c2f50bb342f39e6fcf0a59dde5a1260884d33b0600c778bb2729",
            "raw": {
              "bytes": 14470196,
              "sha256": "a19dba80ad1b3ed8892ae597070a434f0e433250ea83a157f164e38724624cfd"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-sqlite",
            "label": "SQLite",
            "file": "flagship/100k/sqlite.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/100k/sqlite.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/100k/sqlite.sql.gz",
            "bytes": 3834314,
            "sha256": "b7dd1c8f2f7964460319879c5ac1e5dcbd3429e98357e2276ce3da6f6b33890a",
            "raw": {
              "bytes": 14467755,
              "sha256": "a7f24461b457109b735b15c4002fb0e1d06c7d6240fc804a175849eaa9b1915d"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "csv",
            "label": "CSV",
            "file": "flagship/100k/csv.zip",
            "key": "datasets/library-sample-database/v1/flagship/100k/csv.zip",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/100k/csv.zip",
            "bytes": 3841621,
            "sha256": "99f6058c0eeb40559760d37af391e3a17c982f2e465d055f607e570cd5a2bae3",
            "tables": {
              "addresses": {
                "bytes": 176872,
                "sha256": "dc7116a6495b39c6ff8261462b96c6eacf4375ec3fad9feff1ff5971eca4f5a0"
              },
              "audit_logs": {
                "bytes": 101868,
                "sha256": "7fb54cdc220017a1e549a0f62261916253f233c4a9deb0dde137820a60481629"
              },
              "authors": {
                "bytes": 37216,
                "sha256": "7677f96c9ffd659a5913a51db2e2af5b1ead313baf8102164bd0005fcef27d37"
              },
              "book_authors": {
                "bytes": 20032,
                "sha256": "1c98f22835babcc5d57f9c8123ecb4a3fa347dbc17236a5b0b6230cf9b1698dc"
              },
              "book_tag_mappings": {
                "bytes": 35620,
                "sha256": "4d2c60a0f744f446eb8b99b58a592993f21ce8ef558f65095992bcc439c9075e"
              },
              "book_tags": {
                "bytes": 538,
                "sha256": "875368e0e0e241c714f0762b6df72044ecbe18c6c17e9429b0a5b8b8439ab4c2"
              },
              "books": {
                "bytes": 83818,
                "sha256": "7e7befd4b3a517dab9dd126038cb5d9e7fb1161d6f752e4b19ba988c1a54a9af"
              },
              "categories": {
                "bytes": 645,
                "sha256": "1e948be783fe801d23b17d26750db4aa504557169bc18549c74cfb33ed8ee4aa"
              },
              "copies": {
                "bytes": 162513,
                "sha256": "75dc41af27730dc0953f95a0f8bbb4dff13aa99438011cc87c5ec7bd8ae5bbf8"
              },
              "event_registrations": {
                "bytes": 132627,
                "sha256": "a9a90dc05940fc40b56da22da8737905c501ce4e31627da240c29dc71ce5b2d5"
              },
              "events": {
                "bytes": 24635,
                "sha256": "a6d8e4f0ec75647f15afa38fa84f5a2818b6acdcfe2cfd51264ed81039323b52"
              },
              "fine_policies": {
                "bytes": 126,
                "sha256": "00fd41f2d61a82ad4a36246d0ba51441abdfbdb9b8bfd287c7cbda2861c8f2f7"
              },
              "fines": {
                "bytes": 196829,
                "sha256": "9b56326d7fd1ae6a43261a67c33d033b9bdbb0a9aea2167b8fba1717b57de682"
              },
              "languages": {
                "bytes": 207,
                "sha256": "bc8dcbdf3566c738299e2d8ca1f349a3313f8a90c59d71908b704ae40964c1ef"
              },
              "libraries": {
                "bytes": 565,
                "sha256": "b06334b8f90f7510645803b61751c9737185e60723cb5bcc03952611d9b1427a"
              },
              "library_hours": {
                "bytes": 1495,
                "sha256": "e108c7ba6a8385a8ca39f7bb777f701e15870282dbd35e54c6d758567199f9c9"
              },
              "loans": {
                "bytes": 7741584,
                "sha256": "1764071187f1886738711d24646bb49eaa18157472b9560ebcf6e15b8c04853a"
              },
              "memberships": {
                "bytes": 189678,
                "sha256": "8e1c4e23c8559e87e514ddc13d73fd9d1c1ddd032d75f931e47bd2c3877b6ac8"
              },
              "notification_templates": {
                "bytes": 720,
                "sha256": "90ef5240af5b6f0216b53e72b5b5a0470b371ab824edfacf60330c8d2f1c8c58"
              },
              "notifications": {
                "bytes": 1055128,
                "sha256": "27b50fd22a9a5d6cea1b31e1f3ce341f8657e48190968af31887eb4c2c96268d"
              },
              "order_items": {
                "bytes": 19477,
                "sha256": "cffdfdb5982cbe07e23bee32119363ac124468424102f6209b806b430b78dad6"
              },
              "payments": {
                "bytes": 220752,
                "sha256": "b998061e5cd284abddb6afbf38653bd2b702f176a0e9eb1200aa548be2178d65"
              },
              "publishers": {
                "bytes": 6005,
                "sha256": "a57c15a80b17238cf17e91084d28e8dc50851ab3fae2058b19a7327ee8bca786"
              },
              "purchase_orders": {
                "bytes": 13256,
                "sha256": "8369213c254f705a95ae114ee8567d72667b83f12ea2aa0e2930c245054cc41b"
              },
              "reservations": {
                "bytes": 507154,
                "sha256": "9d4db3bd28bbf12efbddb310caa4ad664f91c173e3069c46a56f26c611902e0f"
              },
              "reviews": {
                "bytes": 271626,
                "sha256": "798cb3e64bd487eac25d9bb0bca04e3587b42a038350eff779f49d7039b4c011"
              },
              "roles": {
                "bytes": 141,
                "sha256": "aa7252ad93b069a61a31ddeafb55722067bab04b3592230916fdcebcd66c55f8"
              },
              "staff_profiles": {
                "bytes": 1561,
                "sha256": "be3e44eb7b1c9e8ac6969b5663b300e1d5c071f4f3f89be3d9cf0d0c68b7812c"
              },
              "suppliers": {
                "bytes": 1461,
                "sha256": "e23bf7e9e17b5b3de1394635c841bd3268ba9121e7af853979138003929e68af"
              },
              "users": {
                "bytes": 387505,
                "sha256": "153ba1ce50836a635cf60e2c8c41ec861ef00c240cb548813a6739933554035d"
              }
            },
            "contentType": "application/zip"
          }
        ],
        "checks": {
          "postgres": {
            "version": "18.3",
            "ok": true
          },
          "sqlite": {
            "version": "3.53.1",
            "ok": true
          },
          "notRun": [
            {
              "engine": "MySQL",
              "note": "Written from the same rows; not loaded here, no MySQL server runs in the build."
            }
          ]
        },
        "rules": [
          {
            "name": "Every loan is due three weeks after it was borrowed, and returned after it",
            "violations": 0
          },
          {
            "name": "A payment settles its fine in full, after the loan was due",
            "violations": 0
          },
          {
            "name": "What a fine shows as paid is the sum of its payments",
            "violations": 0
          },
          {
            "name": "No fine is over its policy cap",
            "violations": 0
          },
          {
            "name": "A hold expires after it is placed, and a membership after it starts",
            "violations": 0
          },
          {
            "name": "No author died before they were born",
            "violations": 0
          },
          {
            "name": "One fine per loan, one staff profile per person",
            "violations": 0
          }
        ],
        "dirty": {
          "report": {
            "rates": {
              "missing": 0.03,
              "typos": 0.03,
              "outliers": 0.005,
              "duplicates": 0.01
            },
            "tables": {
              "addresses": {
                "duplicates": 32,
                "columns": {
                  "city": {
                    "missing": 92,
                    "typos": 91,
                    "outliers": 0
                  },
                  "country": {
                    "missing": 113,
                    "typos": 97,
                    "outliers": 0
                  },
                  "postal_code": {
                    "missing": 86,
                    "typos": 33,
                    "outliers": 0
                  },
                  "state": {
                    "missing": 106,
                    "typos": 103,
                    "outliers": 0
                  },
                  "street": {
                    "missing": 76,
                    "typos": 93,
                    "outliers": 0
                  }
                }
              },
              "authors": {
                "duplicates": 6,
                "columns": {
                  "biography": {
                    "missing": 18,
                    "typos": 16,
                    "outliers": 0
                  },
                  "birth_date": {
                    "missing": 13,
                    "typos": 0,
                    "outliers": 0
                  },
                  "death_date": {
                    "missing": 7,
                    "typos": 0,
                    "outliers": 0
                  },
                  "first_name": {
                    "missing": 14,
                    "typos": 19,
                    "outliers": 0
                  },
                  "last_name": {
                    "missing": 11,
                    "typos": 20,
                    "outliers": 0
                  }
                }
              },
              "book_tags": {
                "duplicates": 1,
                "columns": {
                  "name": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "categories": {
                "duplicates": 0,
                "columns": {
                  "description": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "name": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "events": {
                "duplicates": 1,
                "columns": {
                  "capacity": {
                    "missing": 10,
                    "typos": 0,
                    "outliers": 1
                  },
                  "description": {
                    "missing": 10,
                    "typos": 6,
                    "outliers": 0
                  },
                  "end_time": {
                    "missing": 8,
                    "typos": 0,
                    "outliers": 0
                  },
                  "start_time": {
                    "missing": 10,
                    "typos": 0,
                    "outliers": 0
                  },
                  "title": {
                    "missing": 7,
                    "typos": 10,
                    "outliers": 0
                  }
                }
              },
              "library_hours": {
                "duplicates": 1,
                "columns": {
                  "close_time": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "open_time": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "publishers": {
                "duplicates": 0,
                "columns": {
                  "email": {
                    "missing": 0,
                    "typos": 3,
                    "outliers": 0
                  },
                  "name": {
                    "missing": 2,
                    "typos": 2,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 1,
                    "typos": 2,
                    "outliers": 0
                  },
                  "website": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "books": {
                "duplicates": 16,
                "columns": {
                  "description": {
                    "missing": 34,
                    "typos": 30,
                    "outliers": 0
                  },
                  "isbn": {
                    "missing": 42,
                    "typos": 10,
                    "outliers": 0
                  },
                  "pages": {
                    "missing": 34,
                    "typos": 0,
                    "outliers": 3
                  },
                  "publication_year": {
                    "missing": 31,
                    "typos": 0,
                    "outliers": 9
                  },
                  "title": {
                    "missing": 30,
                    "typos": 29,
                    "outliers": 0
                  }
                }
              },
              "book_authors": {
                "duplicates": 19,
                "columns": {}
              },
              "book_tag_mappings": {
                "duplicates": 31,
                "columns": {}
              },
              "copies": {
                "duplicates": 38,
                "columns": {
                  "barcode": {
                    "missing": 105,
                    "typos": 36,
                    "outliers": 0
                  },
                  "condition": {
                    "missing": 111,
                    "typos": 102,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 129,
                    "typos": 131,
                    "outliers": 0
                  }
                }
              },
              "roles": {
                "duplicates": 0,
                "columns": {
                  "name": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "users": {
                "duplicates": 34,
                "columns": {
                  "email": {
                    "missing": 97,
                    "typos": 68,
                    "outliers": 0
                  },
                  "first_name": {
                    "missing": 107,
                    "typos": 82,
                    "outliers": 0
                  },
                  "last_name": {
                    "missing": 97,
                    "typos": 74,
                    "outliers": 0
                  },
                  "password_hash": {
                    "missing": 67,
                    "typos": 89,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 94,
                    "typos": 25,
                    "outliers": 0
                  }
                }
              },
              "audit_logs": {
                "duplicates": 28,
                "columns": {
                  "action": {
                    "missing": 55,
                    "typos": 48,
                    "outliers": 0
                  },
                  "action_date": {
                    "missing": 61,
                    "typos": 0,
                    "outliers": 0
                  },
                  "ip_address": {
                    "missing": 48,
                    "typos": 20,
                    "outliers": 0
                  }
                }
              },
              "event_registrations": {
                "duplicates": 45,
                "columns": {
                  "registration_date": {
                    "missing": 132,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "memberships": {
                "duplicates": 38,
                "columns": {
                  "card_number": {
                    "missing": 125,
                    "typos": 113,
                    "outliers": 0
                  },
                  "expiration_date": {
                    "missing": 115,
                    "typos": 0,
                    "outliers": 0
                  },
                  "registration_date": {
                    "missing": 103,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 98,
                    "typos": 113,
                    "outliers": 0
                  }
                }
              },
              "notifications": {
                "duplicates": 230,
                "columns": {
                  "sent_date": {
                    "missing": 709,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 719,
                    "typos": 748,
                    "outliers": 0
                  }
                }
              },
              "reservations": {
                "duplicates": 77,
                "columns": {
                  "expiration_date": {
                    "missing": 229,
                    "typos": 0,
                    "outliers": 0
                  },
                  "reservation_date": {
                    "missing": 251,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 224,
                    "typos": 237,
                    "outliers": 0
                  }
                }
              },
              "reviews": {
                "duplicates": 44,
                "columns": {
                  "comment": {
                    "missing": 107,
                    "typos": 98,
                    "outliers": 0
                  },
                  "rating": {
                    "missing": 157,
                    "typos": 0,
                    "outliers": 27
                  },
                  "review_date": {
                    "missing": 140,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "staff_profiles": {
                "duplicates": 0,
                "columns": {
                  "hire_date": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "salary": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "loans": {
                "duplicates": 1063,
                "columns": {
                  "due_date": {
                    "missing": 3068,
                    "typos": 0,
                    "outliers": 0
                  },
                  "loan_date": {
                    "missing": 2990,
                    "typos": 0,
                    "outliers": 0
                  },
                  "return_date": {
                    "missing": 2823,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "fines": {
                "duplicates": 55,
                "columns": {
                  "amount": {
                    "missing": 167,
                    "typos": 0,
                    "outliers": 29
                  },
                  "paid_amount": {
                    "missing": 183,
                    "typos": 0,
                    "outliers": 30
                  },
                  "status": {
                    "missing": 193,
                    "typos": 178,
                    "outliers": 0
                  }
                }
              },
              "payments": {
                "duplicates": 60,
                "columns": {
                  "amount": {
                    "missing": 167,
                    "typos": 0,
                    "outliers": 35
                  },
                  "payment_date": {
                    "missing": 157,
                    "typos": 0,
                    "outliers": 0
                  },
                  "payment_method": {
                    "missing": 141,
                    "typos": 157,
                    "outliers": 0
                  }
                }
              },
              "purchase_orders": {
                "duplicates": 4,
                "columns": {
                  "delivery_date": {
                    "missing": 6,
                    "typos": 0,
                    "outliers": 0
                  },
                  "order_date": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 6,
                    "typos": 3,
                    "outliers": 0
                  },
                  "total_cost": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "order_items": {
                "duplicates": 6,
                "columns": {
                  "quantity": {
                    "missing": 25,
                    "typos": 0,
                    "outliers": 1
                  },
                  "unit_price": {
                    "missing": 38,
                    "typos": 0,
                    "outliers": 9
                  }
                }
              }
            },
            "totals": {
              "missing": 14814,
              "typos": 2888,
              "outliers": 144,
              "duplicates": 1829
            }
          },
          "downloads": [
            {
              "format": "dirty-sql-postgres",
              "label": "PostgreSQL, with faults",
              "file": "flagship/100k/dirty-postgres.sql.gz",
              "key": "datasets/library-sample-database/v1/flagship/100k/dirty-postgres.sql.gz",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/100k/dirty-postgres.sql.gz",
              "bytes": 3845103,
              "sha256": "cc21e3d59e56609b87fce40efe8245e5f315592837d1447b7f6270728bed6dd1",
              "raw": {
                "bytes": 14409907,
                "sha256": "9a3afad6fdc4fe8d853d20953a5032f3c02ffe48469db27544241b4dbab9b1cb"
              },
              "contentType": "application/gzip"
            },
            {
              "format": "dirty-csv",
              "label": "CSV, with faults",
              "file": "flagship/100k/dirty-csv.zip",
              "key": "datasets/library-sample-database/v1/flagship/100k/dirty-csv.zip",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/100k/dirty-csv.zip",
              "bytes": 3839370,
              "sha256": "5ab6178f1400385e1ee14bd387f1a841376edf975d543062ebb0713f9e9cd409",
              "tables": {
                "addresses": {
                  "bytes": 175016,
                  "sha256": "fa4a460bf2f6af57bedde45ccc18a8496daf35f9c1f954aa12cd01764806c80b"
                },
                "audit_logs": {
                  "bytes": 101349,
                  "sha256": "887126a7f1e4f19a3e252b5854c5b8d13b24a1e3340596936d5cec8b35390730"
                },
                "authors": {
                  "bytes": 36859,
                  "sha256": "235d7cff2306aa668f37c60723eebeeb030730c9a675ca1eee5fd1091fc0ba0e"
                },
                "book_authors": {
                  "bytes": 20283,
                  "sha256": "2b84e38dc76e822444d97fca62a8699922b2fbfbad3fdf8a2fd97cd0a8396eca"
                },
                "book_tag_mappings": {
                  "bytes": 36005,
                  "sha256": "316c0f74fba1b4afc5de4379175554d0ac0633a9f7362e2600a918f90fa2ff36"
                },
                "book_tags": {
                  "bytes": 548,
                  "sha256": "ad0c34b5dfe2805c55c0012b4ba1fbd185db2ccb3e74e05a9bfa71347f1daa69"
                },
                "books": {
                  "bytes": 83171,
                  "sha256": "cbcb351788bf6703353edc6f718af0c82f1412f49e732bb8bdb9e83db415df62"
                },
                "categories": {
                  "bytes": 630,
                  "sha256": "4f681401f07a6eee70cdb5b583a290128d8504c31e793f30021e67a672881d4e"
                },
                "copies": {
                  "bytes": 161544,
                  "sha256": "9ea802975c9fe9afa0d43233c80bd175dc39f2d3d62f7dc2d4d09b2578193fdc"
                },
                "event_registrations": {
                  "bytes": 131585,
                  "sha256": "235dfc6f3d7f0da0979f4dc67f4c493b1c0e2a48e0d01a65f4b853941a1b0dab"
                },
                "events": {
                  "bytes": 24116,
                  "sha256": "9684f6eb5e3db2dadd165a5995655a6493055c5e1d87575fb2087798cbe4ae2a"
                },
                "fine_policies": {
                  "bytes": 126,
                  "sha256": "00fd41f2d61a82ad4a36246d0ba51441abdfbdb9b8bfd287c7cbda2861c8f2f7"
                },
                "fines": {
                  "bytes": 196008,
                  "sha256": "739143a2e45712594d82297bcedd0405892f165124b6ca0aa3c8ff8e3ba94109"
                },
                "languages": {
                  "bytes": 207,
                  "sha256": "bc8dcbdf3566c738299e2d8ca1f349a3313f8a90c59d71908b704ae40964c1ef"
                },
                "libraries": {
                  "bytes": 565,
                  "sha256": "b06334b8f90f7510645803b61751c9737185e60723cb5bcc03952611d9b1427a"
                },
                "library_hours": {
                  "bytes": 1497,
                  "sha256": "dd15ffcb1f5923bf54828a9af2cf34764697264b5161dd7c15c187f2b748f375"
                },
                "loans": {
                  "bytes": 7654575,
                  "sha256": "1a9864885cfc970774f470aa7b4cc899bdc73d0c4a9d1320889d8dd3e3fa28b8"
                },
                "memberships": {
                  "bytes": 187620,
                  "sha256": "c285065c8b62f25a634df4b38203b4408b509dd06c80d50786d0d3c5c1efc29a"
                },
                "notification_templates": {
                  "bytes": 720,
                  "sha256": "90ef5240af5b6f0216b53e72b5b5a0470b371ab824edfacf60330c8d2f1c8c58"
                },
                "notifications": {
                  "bytes": 1046346,
                  "sha256": "1c48cf5cfb05e2736557f86d734ffc7a9ff3a1f33d791f65c35923c49bbcadf3"
                },
                "order_items": {
                  "bytes": 19404,
                  "sha256": "910d9f54510e2c5d7564e66ec12e6ca568d31e7ad2cc6e1abf6cd51531108523"
                },
                "payments": {
                  "bytes": 219237,
                  "sha256": "14c91281e6354955cd24489e7b02319ec751bd6e2704357b01c57d5486a6424f"
                },
                "publishers": {
                  "bytes": 5947,
                  "sha256": "42284354579bb9bde7d60c717378aec6491db68a483eeab1526d1662f0b10403"
                },
                "purchase_orders": {
                  "bytes": 13285,
                  "sha256": "00a5e53c16b9c975a0a5b2074bdb7030486475109cf32de6810c175d95410867"
                },
                "reservations": {
                  "bytes": 501293,
                  "sha256": "4d9bbde3492b0f5c267abcab94549461d78ecfdde727691a2108251744f86d9f"
                },
                "reviews": {
                  "bytes": 268463,
                  "sha256": "b6e34a4580ab877648f0b991a88063a9d143e51271467ad1b94b94c0328ab957"
                },
                "roles": {
                  "bytes": 141,
                  "sha256": "0ff6a5b9615ff511029737ab41c1d249a8b4df8a99c4c5d96b507df07297558c"
                },
                "staff_profiles": {
                  "bytes": 1543,
                  "sha256": "7fcb4e412cb7badc26292bd5efdd7ed815966e0db4c9291cdca3522a07d80bbf"
                },
                "suppliers": {
                  "bytes": 1461,
                  "sha256": "e23bf7e9e17b5b3de1394635c841bd3268ba9121e7af853979138003929e68af"
                },
                "users": {
                  "bytes": 383075,
                  "sha256": "0431f91e619b62da9e7b03cd8499c39be34e937cb62ebcb3aa6176b440f6892c"
                }
              },
              "contentType": "application/zip"
            }
          ]
        }
      },
      "1m": {
        "rows": 1765730,
        "counts": {
          "addresses": 31000,
          "authors": 6000,
          "book_tags": 40,
          "categories": 20,
          "fine_policies": 4,
          "languages": 10,
          "libraries": 8,
          "events": 3000,
          "library_hours": 56,
          "notification_templates": 8,
          "publishers": 60,
          "books": 12000,
          "book_authors": 16000,
          "book_tag_mappings": 30000,
          "copies": 40000,
          "roles": 4,
          "suppliers": 20,
          "users": 30000,
          "audit_logs": 20000,
          "event_registrations": 40000,
          "memberships": 35000,
          "notifications": 250000,
          "reservations": 80000,
          "reviews": 50000,
          "staff_profiles": 500,
          "loans": 1000000,
          "fines": 60000,
          "payments": 50000,
          "purchase_orders": 2000,
          "order_items": 10000
        },
        "notes": [],
        "downloads": [
          {
            "format": "sql-postgres",
            "label": "PostgreSQL",
            "file": "flagship/1m/postgres.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/1m/postgres.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1m/postgres.sql.gz",
            "bytes": 40568589,
            "sha256": "08ddfb9a269fe561e3349bb2b4a47d7c92e6afdd0db8a12141c0a6119ea141f3",
            "raw": {
              "bytes": 149901415,
              "sha256": "cf4743542bd06913032794c0fa2928c6c017b0e64e7937740f2cb70b45e37363"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-mysql",
            "label": "MySQL",
            "file": "flagship/1m/mysql.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/1m/mysql.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1m/mysql.sql.gz",
            "bytes": 40566503,
            "sha256": "499f34cc7d92c980506d8c610b469a5b6369ed34795582e43c5f6e56099fa8eb",
            "raw": {
              "bytes": 149898563,
              "sha256": "2cb445f436e3123181af7f0381a777cfca7e3bf60ac174579c8029638eab1df7"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-sqlite",
            "label": "SQLite",
            "file": "flagship/1m/sqlite.sql.gz",
            "key": "datasets/library-sample-database/v1/flagship/1m/sqlite.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1m/sqlite.sql.gz",
            "bytes": 40565793,
            "sha256": "ff0ddcbb8155d83a140c18e47682695564579a20dee90e37bb7ed4bb6be24595",
            "raw": {
              "bytes": 149896122,
              "sha256": "2c122ad9c9129e04b33e30b182a7073fc0146da0a3e9bcc56b3d508ffb12fc41"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "csv",
            "label": "CSV",
            "file": "flagship/1m/csv.zip",
            "key": "datasets/library-sample-database/v1/flagship/1m/csv.zip",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/library-sample-database/v1/flagship/1m/csv.zip",
            "bytes": 41089136,
            "sha256": "f74de0b9aeefa74feb5731fafa1550c973bcc87dbf4066fc63931b9bc6f7c6a6",
            "tables": {
              "addresses": {
                "bytes": 1799267,
                "sha256": "5302644ee622134c13aaa7b88fe8be0ebb5657d920d417fb7fcb8fb43d7c92c4"
              },
              "audit_logs": {
                "bytes": 1058544,
                "sha256": "de6d06848f55687a3d72e34d199dab509228351fb7656e5a4d0a5b0878618de5"
              },
              "authors": {
                "bytes": 376309,
                "sha256": "95626925bfde02f8dbd65abfae075f49799eeda537eadaf977d79f699ec05b2a"
              },
              "book_authors": {
                "bytes": 246450,
                "sha256": "47744015fa94e9ebe5cb053c91ab939491ca106a532e0e1a0d1fc1bd245d400d"
              },
              "book_tag_mappings": {
                "bytes": 415024,
                "sha256": "a6e01c9df3c3420c94ceb9f31e7d52374e740b4a9908722409c2e473ea350fae"
              },
              "book_tags": {
                "bytes": 538,
                "sha256": "66e9399a52ca9e3b812a892d9a96f060f458212c82445a7c182092677800ea27"
              },
              "books": {
                "bytes": 848590,
                "sha256": "d711a5eb3cb7a834a1e08d4d2832be1b633a2cb4e54b1ba73835a6a3535409a7"
              },
              "categories": {
                "bytes": 673,
                "sha256": "ba3cdaa0ffe0331725d7b837f191a755001b08f5eabbf58def4b143b520f30bd"
              },
              "copies": {
                "bytes": 1701977,
                "sha256": "c42020a141f0dc23cb3cb4dba0da5c808104706b97de2b414dcbdd261a1444d6"
              },
              "event_registrations": {
                "bytes": 1442910,
                "sha256": "3e0e231156112563c2a75437e90225469ec6e58e5d1602c1f453f64fae0ab223"
              },
              "events": {
                "bytes": 248978,
                "sha256": "413376b2f0d88f72b834689439fd705625676f0aba23f040c68cbf5ff4be9cc4"
              },
              "fine_policies": {
                "bytes": 126,
                "sha256": "4487a2824e671a0b96c47facdd47a1b75da3bffe9a25ae6fdbd180e077805be3"
              },
              "fines": {
                "bytes": 2087568,
                "sha256": "234083dfd64a4166a76f6e225b76ba2c6045bd4e16b38960a9c6bd6f7d35aa19"
              },
              "languages": {
                "bytes": 207,
                "sha256": "7724fadaf93ec91fbee1f77411ae8f0c7cb8f626652fdd4b763e54eaed55bfb4"
              },
              "libraries": {
                "bytes": 561,
                "sha256": "99f9fc08f91a3e5c1a6e2dacfcfea17f30aa6e68c739f47762a59753668c6146"
              },
              "library_hours": {
                "bytes": 1495,
                "sha256": "f1ccfeced5e6bfc1aee3f7875f4a30730fdc475a92c2f058d7bffd5157bcd688"
              },
              "loans": {
                "bytes": 81230606,
                "sha256": "7d0f257a06c0589cfb316bcfca0b84dd8f2557065d992041e6bbf0476476ae36"
              },
              "memberships": {
                "bytes": 1965417,
                "sha256": "2a0d3bef6245620eb2833930da219fd6c33112588df962dc9b060cae32e6bc59"
              },
              "notification_templates": {
                "bytes": 720,
                "sha256": "3d71270876df16bb680ebf00aac273164597e466a3d972e1bf9807188f97ecba"
              },
              "notifications": {
                "bytes": 11045836,
                "sha256": "64230dfc99f9841f561594ee930068caa8845864df00a3e3729eea52cc9d692e"
              },
              "order_items": {
                "bytes": 223115,
                "sha256": "d2a7819b0e8051f670c8905c2b5bc1ef05c9c2aebcafa483ba173ba62f52b24f"
              },
              "payments": {
                "bytes": 2348622,
                "sha256": "c878efdacfd594e0e3586fea55c8e787402b4c359b58dc32015b124879f01756"
              },
              "publishers": {
                "bytes": 6089,
                "sha256": "5f56146ccd3791f84d60f846ab8f9a9031ceaaf575c699bdd118cae88bf70fa8"
              },
              "purchase_orders": {
                "bytes": 135441,
                "sha256": "2c7d5d4ec493a8b8df8da7cadd596a0bbeeb04640978002f494fe7da27252912"
              },
              "reservations": {
                "bytes": 5309007,
                "sha256": "62f35b1afc453cd51a462793367ce32eb3fb5c6194d0804e9cba6cb54955f351"
              },
              "reviews": {
                "bytes": 2852982,
                "sha256": "8de7092fab8d1633106936f8d2bde43570d14c89b741c70a232ca2b9e2dc0da0"
              },
              "roles": {
                "bytes": 134,
                "sha256": "4cea2f6d11f79356f40ddc6a01e4e913b47640c4ebd4fdd7ec4bfa443a1f4456"
              },
              "staff_profiles": {
                "bytes": 16255,
                "sha256": "4173edc65c275878d05032ce33ccb755b76faaf1cdf3cc5d9ebc0907f9e8660c"
              },
              "suppliers": {
                "bytes": 1417,
                "sha256": "d6092ca327eeae1cfe120fe29398e0d0bb87cb2be2a888395e9b9c4773491b95"
              },
              "users": {
                "bytes": 3934076,
                "sha256": "ac95520cba10391fb7bc721e6862e9499540ce2e0af4b08f0afde9a4fb3ba23d"
              }
            },
            "contentType": "application/zip"
          }
        ],
        "checks": {
          "postgres": {
            "version": "18.3",
            "ok": true
          },
          "sqlite": {
            "version": "3.53.1",
            "ok": true
          },
          "notRun": [
            {
              "engine": "MySQL",
              "note": "Written from the same rows; not loaded here, no MySQL server runs in the build."
            }
          ]
        },
        "rules": [
          {
            "name": "Every loan is due three weeks after it was borrowed, and returned after it",
            "violations": 0
          },
          {
            "name": "A payment settles its fine in full, after the loan was due",
            "violations": 0
          },
          {
            "name": "What a fine shows as paid is the sum of its payments",
            "violations": 0
          },
          {
            "name": "No fine is over its policy cap",
            "violations": 0
          },
          {
            "name": "A hold expires after it is placed, and a membership after it starts",
            "violations": 0
          },
          {
            "name": "No author died before they were born",
            "violations": 0
          },
          {
            "name": "One fine per loan, one staff profile per person",
            "violations": 0
          }
        ]
      }
    },
    "rules": [
      {
        "name": "Every loan is due three weeks after it was borrowed, and returned after it",
        "sql": "SELECT count(*) AS violations FROM loans WHERE due_date <> loan_date + interval '21 days' OR return_date < loan_date"
      },
      {
        "name": "A payment settles its fine in full, after the loan was due",
        "sql": "SELECT count(*) AS violations FROM payments p JOIN fines f ON f.id = p.fine_id JOIN loans l ON l.id = f.loan_id WHERE p.amount <> f.amount OR p.payment_date < l.due_date"
      },
      {
        "name": "What a fine shows as paid is the sum of its payments",
        "sql": "SELECT count(*) AS violations FROM fines f LEFT JOIN (SELECT fine_id, sum(amount) AS paid FROM payments GROUP BY fine_id) p ON p.fine_id = f.id WHERE f.paid_amount <> COALESCE(p.paid, 0)"
      },
      {
        "name": "No fine is over its policy cap",
        "sql": "SELECT count(*) AS violations FROM fines f JOIN fine_policies fp ON fp.id = f.fine_policy_id WHERE f.amount > fp.max_fine"
      },
      {
        "name": "A hold expires after it is placed, and a membership after it starts",
        "sql": "SELECT (SELECT count(*) FROM reservations WHERE expiration_date < reservation_date) + (SELECT count(*) FROM memberships WHERE expiration_date < registration_date) AS violations"
      },
      {
        "name": "No author died before they were born",
        "sql": "SELECT count(*) AS violations FROM authors WHERE death_date < birth_date"
      },
      {
        "name": "One fine per loan, one staff profile per person",
        "sql": "SELECT (SELECT count(*) - count(DISTINCT loan_id) FROM fines) + (SELECT count(*) - count(DISTINCT user_id) FROM staff_profiles) AS violations"
      }
    ]
  },
  "publishedAt": 1791324173500,
  "updatedAt": 1791324173500
}
