JSON tipado de spacing de runs de rich text

Los file jobs de Windows y las operaciones versionadas de callback, así como las operaciones versionadas de callback nativas de Linux, vinculan el spacing en las entradas richTextRuns de forms.fill usando los runs tipados originales

{"type":"forms.fill","fields":[{"name":"Input","richTextRuns":[
  {"text":"A spaced line","fontSize":12,
   "letterSpacingKind":"em","letterSpacing":0.125,
   "wordSpacingKind":"points","wordSpacing":-0.5}
]}]}

letterSpacingKind y wordSpacingKind aceptan legacy, normal, points y em; un kind omitido con valor numérico significa points, mientras que kind y valor omitidos significan legacy

points y em exigen un valor numérico finito; legacy y normal solo permiten un valor ausente o cero; los valores escritos y las longitudes computadas en puntos tienen un máximo absoluto de 1000000

El parser JSON de Windows retiene los valores decimales finitos hasta el Double más cercano antes de que los runs tipados originales lleguen al layout; la notación científica sigue la gramática y el rango numérico JSON existentes, y el límite existente de request-bytes también acota los tokens numéricos largos

Los modos desconocidos, los tipos JSON incorrectos, los valores computados con overflow y los runs rich en campos no de texto fallan antes de cargar fuentes o publicar; los presupuestos agregados existentes de fuentes, objetos, entrada y salida y las comprobaciones de cancelación siguen activos

Los campos mixtos de escalares y rich usan el candidato transaccional existente, preservando el grafo cargado actual, la clave de revisión AES autenticada, las restricciones de firma y el comportamiento de dos fases de callbacks PDF/resultado

Dentro de este perfil acotado, el normal explícito y el cero explícito computan al mismo spacing en puntos y al mismo RV canónico, haciendo que las actualizaciones equivalentes reales de solo lectura sean no-ops semánticos; las operaciones JSON versionadas retienen los bytes fuente originales, y el modo legacy omitido permanece diferenciado porque hereda las opciones globales de apariencia

Los campos de solo lectura aceptan no-ops semánticos reales y rechazan spacing cambiado; los no-ops JSON exitosos retienen los bytes PDF exactos, y los callbacks de salida o resultado fallidos dejan el contexto actual sin cambios

Los metadatos de capability exponen typedRichFill.spacing sin cambiar las estructuras ni símbolos existentes del C ABI; el spacing aplica a las coordenadas reales de glifos con shaping y a los valores RV, con las reglas acotadas del spacing nativo de runs