Squashed commit of the following:
commit f7cbf54045
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Thu Jun 23 02:45:20 2022 +0700
Done
commit 3cf67a3ca5
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Wed Jun 22 20:49:28 2022 +0700
Almost done
commit 6dfb9dc204
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Wed Jun 22 17:03:06 2022 +0700
Now it even works
commit 2be4656f51
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Wed Jun 22 16:30:35 2022 +0700
Kind of compiles now
commit 73914e9b7e
Author: Anton Tarasenko <dkanus@gmail.com>
Date: Tue Jun 21 04:24:04 2022 +0700
Daily dirty commit
This is a giga commit, something that should not really be done with
git, but I messed up.
This commit brings a great amount of changes, most important is
reworking `TextAPI` and alsmost complete replacement of `string` with
`Text`/`MutableText`.
Another huge change is introduction of command system that allows to
define commands in a centralized manner, handles auto-parsing of
their parameters and auto generates help info.
Lastly, JSON data types were replaced with new
`DynamicArray`/`AssociativeArray` that are better designed and more
generic.