Declarar identidades persistentes
Esquema JSON y reglas de identidad que SaveTether compara.
En esta página
Usa JSON UTF-8 con schemaVersion 1, documentType SaveTetherDeclarations, releaseId e identifiers. Cada declaración contiene kind, identifier y el booleano persistent explícito. Las propuestas de mapeo son opcionales y van aparte. Los tipos JSON son estrictos: string, number y boolean no se convierten; los nombres de campos y el tipo de documento distinguen mayúsculas.
Ejemplo de declaración actual (el fixture distribuido también añade A y B e incluye el mapeo completo):
{
"schemaVersion": 1,
"documentType": "SaveTetherDeclarations",
"releaseId": "1.1",
"identifiers": [
{"kind": "Custom", "identifier": "D", "persistent": true},
{"kind": "Custom", "identifier": "Transient", "persistent": false}
],
"mappings": [{"kind": "Custom", "from": "C", "to": "D"}]
}
Las clases admitidas son Custom, Guid, PrimaryAssetId y ObjectPath. La identidad es el par exacto (kind, texto); el mismo texto con distinta clase es diferente. Los GUID deben ser distintos de cero y se normalizan a minúsculas con guiones. PrimaryAssetId requiere Type:Name. ObjectPath y el assetPath opcional son rutas soft sintácticas: no se carga ni comprueba ningún asset. Se rechazan identidades persistentes duplicadas; persistent:false queda fuera del historial release.
Los identificadores admiten 1–4096 caracteres y no pueden contener nulos, tabuladores ni saltos de línea. releaseId admite 1–128 caracteres sin controles. Cada JSON seleccionado admite hasta 16 MiB; cada documento, 100.000 identidades y 10.000 propuestas de mapeo. Mantén exactos los releaseId: identifican las entradas del historial.