In case you didn't spot this part:
> Some reasons why TwinSpark exists despite HTMx and Unpoly (those are similar in approach):
>
> It’s really small (8KB .min.gz).
> There is no attribute inheritance — keeps surprises away.
> Batching - very useful if you want to use HTTP caching effectively, while maintaining some personalisation for your users.
> Bundled - a lot of practical stuff packed in, like actions, or non-traditional event triggers, or morphing.
> Extensibility - you can easily register new directives the same way those in core are registered.