# Value Formats

Every input needs validation, below is the required formatting of each value.

- **User**
    - Username
        - Description: Any letter from a-z in any case, numbers, underscores and dashes. Must contain at least 1 letter or number.
        - Length: From 2 to 32 characters.
        - Regex: ```/^[A-Za-z0-9_]+$/```
    - Name
        - Description: Any letter from any language in any case, numbers, underscores, dashes, periods, apostrophes and spaces. Must contain at least 1 letter or number.
        - Length: From 2 to 64 characters.
        - Regex: ```/^[\p{L}0-9 .'_-]+$/u```
    - Email
        - Description: Standard email address.
        - Length: From 3 to 254 characters.
        - Regex: ```/^[\x00-\x7F]+@[a-z0-9]+\.[a-z0-9]+(\.[a-z0-9]+)?$/```
    - Password
        - Description: Must include at least one lowercase letter, one uppercase letter, one number and one special character.
        - Length: From 6 to 200 characters.
        - Regex: ```/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])[A-Za-z\d!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]/```
    - Ban Reason
        - Description: Any ASCII character.
        - Length: From 1 to 64 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
- **Station**
    - Name
        - Description: Any letter from a-z lowercase, numbers and underscores.
        - Length: From 2 to 16 characters.
        - Regex: ```/^[a-z0-9_]+$/```
    - Display Name
        - Description: Any ASCII character.
        - Length: From 2 to 32 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
    - Description
        - Description: Any character.
        - Length: From 2 to 200 characters.
- **Playlist**
    - Display Name
        - Description: Any ASCII character.
        - Length: From 1 to 32 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
- **Song**
    - Title
        - Description: Any ASCII character.
        - Length: From 1 to 32 characters.
        - Regex: ```/^[\x00-\x7F]+$/```
    - Artists
        - Description: Any character and not NONE.
        - Length: From 1 to 64 characters.
        - Quantity: Min 1, max 10.
    - Genres
        - Description: Any ASCII character.
        - Length: From 1 to 32 characters.
        - Quantity: Min 1, max 16.
        - Regex: ```/^[\x00-\x7F]+$/```
    - Tags
        - Description: Any letter, numbers and underscores. Can be with out without data in square brackets. The base tag and data between brackets follow the same styling. If there's no data in between square brackets, there are no square brackets.
        - Length: From 1 to 64 characters for the base part, 1 to 64 characters for data in square brackets.
        - Regex: ```/^[a-zA-Z0-9_]{1,64}$|^[a-zA-Z0-9_]{1,64}\[[a-zA-Z0-9_]{1,64}\]$/```
    - Thumbnail
        - Description: Valid url. If site is secure only https prepended urls are valid.
        - Length: From 1 to 256 characters.
