My friend and I used the Twine and then Inkle formats for our interactive fiction game. But these formats produce unreadable JSONs and require custom editors to edit them. Also, their libs for Java/Objective-C had a lot of bugs :( And learning a new DSL to write a book takes too much time...
As a result we created a new interactive fiction format:
https://github.com/gladimdim/GladStoriesEngine#human-readabl...
It is already used by the https://locadeserta.com/index_en.html
And it has a Dart implementation: https://pub.dev/packages/gladstoriesengine. It can be used with Flutter apps in web and native!