TextOp: | { pos: number; text: string; type: "insert" } | { len: number; pos: number; start_id: JsonOpID; type: "delete" } | { end: number; info: number; start: number; style_key: string; style_value: JsonValue; type: "mark"; } | { type: "mark_end" }