Typed Rich-Text-Run-Spacing-JSON

Windows-Dateijobs und versionierte Callback-Operationen sowie native Linux-versionierte Callback-Operationen binden Spacing an forms.fill-richTextRuns-Einträge unter Verwendung der originalen typed Runs

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

letterSpacingKind und wordSpacingKind akzeptieren legacy, normal, points und em; ein ausgelassener Kind mit numerischem Wert bedeutet points, während ausgelassener Kind und Wert legacy bedeuten

points und em verlangen einen endlichen numerischen Wert; legacy und normal erlauben nur einen fehlenden Wert oder null; authored Werte und berechnete Punktlängen haben ein absolutes Maximum von 1000000

Der Windows-JSON-Parser behält endliche Dezimalwerte bis zum nächsten Double, bevor die originalen typed Runs das Layout erreichen; wissenschaftliche Notation folgt der bestehenden JSON-Grammatik und dem numerischen Bereich, und das bestehende Request-Byte-Limit begrenzt zusätzlich lange numerische Tokens

Unbekannte Modi, falsche JSON-Typen, überlaufende berechnete Werte und Rich-Runs auf Nicht-Text-Feldern schlagen fehl, bevor Fonts geladen oder veröffentlicht werden; bestehende aggregierte Font-, Objekt-, Input- und Output-Budgets sowie Abbruchprüfungen bleiben aktiv

Gemischte skalare und Rich-Felder nutzen die bestehende transaktionale Kandidatin, bewahren den aktuellen geladenen Graphen, den authentifizierten AES-Revision-Key, Signatur-Constraints und das zweiphasige PDF-/Ergebnis-Callback-Verhalten

Innerhalb dieses begrenzten Profils berechnen explizites normal und explizite null dasselbe Punkt-Spacing und dasselbe kanonische RV, wodurch echte äquivalente Read-only-Updates zu semantischen No-ops werden; versionierte JSON-Operationen behalten die Original-Quell-Bytes, und der ausgelassene Legacy-Modus bleibt unterscheidbar, weil er die globalen Appearance-Optionen erbt

Schreibgeschützte Felder akzeptieren echte semantische No-ops und lehnen geändertes Spacing ab; erfolgreiche JSON-No-ops behalten exakte PDF-Bytes, und fehlgeschlagene Output- oder Ergebnis-Callbacks lassen den aktuellen Kontext unverändert

Capability-Metadaten exponieren typedRichFill.spacing, ohne die bestehenden C-ABI-Strukturen oder -Symbole zu ändern; Spacing gilt für echte shaped Glyph-Koordinaten und RV-Werte, mit den begrenzten Regeln in nativem Run-Spacing