How often can the structure of .bky file change?

Hi! I don't have much knowledge of the Blockly framework (out of bounds of my expertise), and I looked at the .bky XML structure it produces (when saved to .aia or embedded in the image).

I've mapped/parsed those structures internally to my own data structures.
But had a question after completely mapping every (too late I know).

  1. How often can these structures change? Will they change every Blockly version update?
  2. What's the best way to parse blocks to my own data structure? (in Java?)