docs: def _get_foundation(self, i):
          """Return a :class:`Foundation` for some deck, creating it if
          needed.
  
          """
          if i >= len(self._foundations) or self._foundations[i] is None:
              oldfound = list(self._foundations)
              extend = i - len(oldfound) + 1
              if extend > 0:
                  oldfound += [None] * extend
              width = self.card_size_hint_x * self.width
              height = self.card_size_hint_y * self.height
              found = Foundation(
                  pos=self._get_foundation_pos(i), size=(width, height), deck=i
              )
              self.bind(
                  pos=found.upd_pos,
                  card_size_hint=found.upd_pos,
                  deck_hint_step=found.upd_pos,
                  size=found.upd_pos,
                  deck_x_hint_offsets=found.upd_pos,
                  deck_y_hint_offsets=found.upd_pos
              )
              self.bind(
                  size=found.upd_size,
                  card_size_hint=found.upd_size
              )
              oldfound[i] = found
              self._foundations = oldfound
          return self._foundations[i]