We need to ensure entities once deployed are always valid and every client knows how to read
information. For the time being, entities can be deployed with any information as metadata,
which can lead to several issues when something is missing or contains invalid data.
Decisions
We defined a list of changes to support the new validations
Entity versions will stop being used, instead the current V3 schema will remain. The schema
will evolve in time and the entity signature timestamp will be used to run the validations
and schema coercions.
As part of this developments, entities v1 and v2 will be migrated and redeployed as v3.
Synchronization support for those entities will stop after the migration and the code will
be safe to be deleted.
Entity schemas will be defined
for all entity types and every deployment will be validated against them.
As there will be a transition period in the content server, when getting the deployments
through lambdas we will need to transform any entity into a compliant format. Most probably
that this change will only be needed for wearables names and descriptions.
Deployment size will be validated per pointer taking into account previous deployments and
the final result and not just the current deployment files. This will prevent land owners to
exceed the size limits as it happens today.
Wearables size will be validated without taking into account the generated images (thumbnail
and image with rarity background) and a new size limit will be set:
Total size: 3MB
All files size without generated images: 2MB
A deadline will be defined for the new validations to start working.
Every active repository in the decentraland github organization where entities types are
defined to use common-schemas.
Entities that don't pass the validations will be rejected after the deadline. Landowners will
face new size limits on their parcels. If someone actually exceeds the max size limit and
wants to change something on their scene, then they will have to remove files until they
respect the new limit size.