I think it is not necessary to have a Data object for the realm command. It doesn't care about the order of the commands and runs everything in the right order. It could even be:
realm join --one-time-password=ThePassword --permit=all domain.example.com
But the multiple-line syntax matches the manual realmd utility invocation in a better way.
It's just completely different from how all other kickstart commands are processed, and if there's not a really good reason why it needs to be that way, it shouldn't. I don't want to have a third style of things to have to remember and debug.
It also breaks the current assumption that each line maps to one piece of kickstart data, like all other commands do. I don't know that I am relying on that anywhere, but it seems like a pretty handy assumption to have in the future.
- Chris