Why is everything in JSON format in my OpenHAB installation

Always. Solutions intended for one environment are not always suitable in another.

The simplest shared timing needs can be fulfilled with expiring Items.

it’s worth reading because it goes on to further depth.

Bur as a generalism, design around the limitations that you have. Can’t share timer between rules? Then don’t design to do that. A mega-rule is the obvious answer.

Less obvious is that rules can call other rules,making the mega proposition more manageable. Except not in DSL, I think. Remember this is essentially a legacy rules language - don’t start out in DSL just because you want to use flat files and/or copy-paste old solutions. Remember also you can run mixed rules alongside each other.