# Booster

The Booster abstract Data Model describes how a Set's booster pack may be constructed.

Parent model: Set
Parent property: booster

# Model Overview

{
  // Possible configurations in a traditional booster pack
  default: {
    // Booster pack configurations
    boosters: [
      {
        // Card contents of a booster pack
        contents: {
          // Amount of this cards from this sheet name in configuration
          <Sheet Name>: <Int>,
          ... // More sheet names
        },
        // Odds of getting this configuration against other configurations
        weight: <Int>
      },
      ... // More configurations
    ],
    // Sum of all booster configurations weights
    boostersTotalWeight: <Int>,
    // All possible sheets of cards to use within booster packs
    sheets: {
      // A sheet of cards for use in a booster
      <Sheet Name>: {
        // Colors of the sheet need to be balanced
        balanceColors: <Boolean>,
        // Cards used on a sheet
        cards: {
          // Unique MTGJSON card UUID with a weight as its value
          <Unique Card UUID>: <Int>,
          ... // More cards
        },
        // Is the sheet foiled?
        foil: <Boolean>,
        // Sum of all card weights
        totalWeight: <Int>
      },
      ... // More sheet names
    }
  },
  // An extended object for the future that may be used for alternative booster packs
  premium: {
    // Name of the premium booster pack
    name: <String>,
    ... // All other keys are the same as 'default'
  }
}

# Example Model

{
  default: {
    boosters: [
      {
        weight: 3,
        contents: {
          basic: 1,
          common: 10,
          uncommon: 3,
          rareMythic: 1
        }
      },
      {
        weight: 1,
        contents: {
          basic: 1,
          common: 9,
          uncommon: 3,
          rareMythic: 1,
          foil: 1
        }
      }
    ],
    boostersTotalWeight: 4,
    sheets: {
      basic: {
        cards: {
          1e12b68d-d81d-5169-8f3a-4700816406e8: 1,
          3cdf6dca-88b2-561e-8998-6eb71118e9c7: 1,
          5e7cff36-a8bf-5e46-9cea-57c1762969f9: 1,
          8a040f0a-a84a-5e02-bebe-41bb9ac95e0e: 1,
          c9c94efd-5caf-5de9-9bed-a812aa2dd301: 1
        },
        foil: false,
        totalWeight: 5
      },
      ... // More sheet names
    }
  }
}