export const metadata = {
    title: 'Changelog',
    description:
        'Changes since the last version of the Versia protocol.',
}

# Changelog

This page lists changes since Working Draft 3. {{ className: 'lead' }}

## Since WD 4

- Removed URI from [Report](/extensions/reports), and replaced `reason` with `tags`.
- Docs now use the term "Transient Entity" where appropriate.
- Mandated Unix-style `\n` line endings in all text fields.
- Renamed the following headers, as per [RFC 6648](https://tools.ietf.org/html/rfc6648):
  - `X-Signature` to `Versia-Signature`
  - `X-Signed-By` to `Versia-Signed-By`
- Removed the nonce from the [signature system](/signatures), replaced with `Versia-Signed-At` (timestamps).
- Standardize rate limits with [IETF draft draft-polli-ratelimit-headers-02](https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html).
- Properly documented [Group](/entities/group) federation and subscribing.
- Added [Versia Links](/links).
- Switched from ISO 8601 to [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) for timestamps.
    - In most cases, the two are interchangeable, but RFC 3339 is more strict. Most implementations should not need to change anything.
- Add optional `$schema` field to [Entities](/entities).
- Added [Interaction Controls Extensions](/extensions/interaction-controls)
- Added [URI Collections](/structures/collection#uri-collection)
    - Changed all Collections that can contain remote entities to use URI Collections (eg. [User](/entities/user) `collections.followers`).
- Add `collections` field to [Notes](/entities/note).
    - [Likes Extension](/extensions/likes), [Reactions Extension](/extensions/reactions) and [Share Extension](/extensions/share) now use this field, instead of a custom field in `extensions`.
- Allowed uppercase characters in [User](/entities/user) `username`.
    - These are now case-insensitive.

## Since WD 3

- Rewrote the signature system from scratch to be simpler and not depend on dates.
- Moved Likes and Dislikes to an extension.
- Added [Delegation](/federation/delegation).
- Renamed fields on several common entities like [Users](/entities/user) and [Notes](/entities/note).
- Removed the `Patch` entity.
  - Useless since edits can just be sent to inboxes directly.
- Allowed `uri`s to not contain the entity's `id`.
- Loosened restrictions on the `id` field in entities.
  - Can now be any string, not just a UUID.
- Made `uri` optional in some entities not useful enough to keep track of.
- Added shared inboxes.
- Added `remote` field to [ContentFormat](/structures/content-format).
- Switched to [ThumbHash](https://evanw.github.io/thumbhash/) from [BlurHash](https://blurha.sh/).
- Added identification characters to [Custom Emojis](/extensions/custom-emoji).
- Added `manually_approves_followers` to [Users](/entities/user).
- Removed `visibility` from [Notes](/entities/note).
- Made `subject` optional in [Notes](/entities/note).
- Clarified the way [Follows](/entities/follow) work.
- Removed the use of `Undo` entities for anything except than deleting entities.
- Renamed `Undo` to [Delete](/entities/delete).
- Added [Unfollow](/entities/unfollow) entity.
- Completely rework `ServerMetadata`, and rename to [InstanceMetadata](/entities/instance-metadata).
- Remove Server Actors, and move instance public keys to [InstanceMetadata](/entities/instance-metadata).
- Add `algorithm` to [Users](/entities/user) and [InstanceMetadata](/entities/instance-metadata)'s public keys for future use (only `ed25519` is allowed for now).
  - Renamed the second `public_key` to `key`.
- Renamed `Announce` to [Share](/extensions/share).
- Renamed `prev` to `previous` in [Collections](/structures/collection).
- Removed `extension_type` from entities, and instead use the `type` field.
- Removed `VoteResult` from the [Polls Extension](/extensions/polls).