VGA\Model\User:
  type: entity
  table: users
  id:
    steamID:
      type: string
      length: 17
  fields:
    name:
      type: string
      nullable: false
      length: 255
    special:
      type: boolean
      nullable: false
    firstLogin:
      type: datetime
      nullable: true
    lastLogin:
      type: datetime
      nullable: true
    primaryRole:
      type: string
      nullable: true
      length: 255
    email:
      type: string
      nullable: true
      length: 255
    notes:
      type: text
      nullable: true
    website:
      type: string
      nullable: true
      length: 40
    avatar:
      type: blob
      nullable: true
  oneToMany:
    votes:
      targetEntity: Vote
      mappedBy: user
    logins:
      targetEntity: Login
      mappedBy: user
  oneToOne:
    loginToken:
      targetEntity: LoginToken
      mappedBy: user
  manyToMany:
    permissions:
      targetEntity: Permission
      inversedBy: users
      joinTable:
        name: user_permissions
        joinColumns:
          userID:
            referencedColumnName: steamID
        inverseJoinColumns:
          permissionID:
            referencedColumnName: id

VGA\Model\User:
  type: entity
  table: users
  id:
    steamID:
      type: string
      length: 17
  fields:
    name:
      type: string
      nullable: false
      length: 255
    special:
      type: boolean
      nullable: false
    firstLogin:
      type: datetime
      nullable: true
    lastLogin:
      type: datetime
      nullable: true
    primaryRole:
      type: string
      nullable: true
      length: 255
    email:
      type: string
      nullable: true
      length: 255
    notes:
      type: text
      nullable: true
    website:
      type: string
      nullable: true
      length: 40
    avatar:
      type: text
      nullable: true
  oneToMany:
    votes:
      targetEntity: Vote
      mappedBy: user
    logins:
      targetEntity: Login
      mappedBy: user
  oneToOne:
    loginToken:
      targetEntity: LoginToken
      mappedBy: user
  manyToMany:
    permissions:
      targetEntity: Permission
      inversedBy: users
      joinTable:
        name: user_permissions
        joinColumns:
          userID:
            referencedColumnName: steamID
        inverseJoinColumns:
          permissionID:
            referencedColumnName: id

Store the avatar as text instead of blob
Store the avatar as text instead of blob

The contents are base64 encoded anyway, and this change makes it easier
to store and retrieve
