System preferences are a simple key => value mechanism, where the developer can specify the key and value himself. Note that values are stored internally as serialized PHP values to keep their type.
 /**
  * Creates or updates a preference for a given user.
  *
  * @param string $key   The key to set
  * @param string $value The value to set
  *
  * @return SystemPreference The user preference
  */
 public function setSystemPreference($key, $value)
 {
     $dql = 'SELECT sp FROM PartKeepr\\SystemPreferenceBundle\\Entity\\SystemPreference sp WHERE sp.preferenceKey = :key';
     $query = $this->entityManager->createQuery($dql);
     $query->setParameter('key', $key);
     try {
         $systemPreference = $query->getSingleResult();
     } catch (\Exception $e) {
         $systemPreference = new SystemPreference();
         $systemPreference->setPreferenceKey($key);
         $this->entityManager->persist($systemPreference);
     }
     $systemPreference->setPreferenceValue($value);
     $this->entityManager->flush();
     return $systemPreference;
 }