Persians might actually be a unique dual culture. Whereas others might guess or ask about things, Persians offer absolutely everything and the actual problem then shifts from "what can I ask for" vs "what should I refuse?".
An asker asks for things, absolutely everything, and the giver must choose what they can give.
A guesser must choose what they can ask for, and only ask when they're quite sure it can be given, so the giver has less responsibility for the transfer or service, and most asks can be assumed to be reasonable.
A Persian cannot ask for anything. They must wait for it to be offered, and even then, they must insist that they are quite alright, and that they would rather do without, and only through reciprocal insistence from the giver can they consider whether it would be rude to take them up on the offer.
Presumably, one can judge the giver's underlying intent by the quality of their reciprocal insistence (does it seem like they're just doing the bare minimum of insistence upon their offering, or do they truly wish for me to take them up on it?)
In the Taarof system, an offeree actually has more data, rather than a simpler Asker-scenarion "no", and even more data than the shared values in a Guesser household, this allows for a quick negotiation of values by the immediate and well-practiced cultural norms around the quality of insistence, even for people across different households.
I wrap that in FlatDB, which is an opinionated flat cache for the files with metadata inline, used for very fast searches (searching 150k messages in less than 20ms on my 4 year old phone). This handles a lot of tricky cases, like accidental cache modification, and editing the database in different tabs.
I've built a very similar contraption, but without any libraries because I got annoyed at having to relearn a new kind of React after react class components got out of fashion and people started using hooks. I built it out of raw JavaScript and a raw python socket server.
How do you manage sync? Mine is a WebApp so I use indexedDB, and that's nice so that it works on my computer browser, but I don't want multiple tab synchronization on my phone and it's tricky to handle. I've built something that works, but I'd love to explore other designs.
You said React Native, so there might be a regular app sort of data store to disk.
This reminds me of something mixing the Age of War flash game (which had great music) and TeamFight Tactics (TFT). An RTS without some kind of unit control seems strange, but interesting as it is often the greatest barrier to accessing the game.
Beautiful notation. I found the first especially interesting, with the spatial mapping recorded in a kind of "parametric-function on a 2d plane" view, like a camera on a slow exposure looking at the entire dance from bird's eye view.
The later ones are reasonable, as they map more closely to the music notation that has become standard, but for classical music of different cultures, notes don't often lie on a single place, but swing from one pitch to another, with blips and arcs in their paths from one place to another.
The staff-based notations lose the first-hand flow of the notation in space. I wonder what could be done with color.
I believe there is an accessibility setting for the visually impaired that puts a 4x2 grid of pressable squares on the phone screen, and users flip their phone and use it in portrait mode. This might be iPhone only? I remember in the video for this that iPhone accessibility was much better.
I have a project I've built that's somewhat like this, ironically called Pipeline [0]. It's a manual entry timestamped note taking system, and the UI is like messaging yourself. I've set it up over a wireguard VPN server and it connects all of my devices, it works offline as a PWA, and I've tested it on chrome/Firefox/safari on iOS/Linus/android/macos/windows. It mostly works on all of those platforms and some of my friends/family use it to take notes for themselves.
The fundamental query I usually use is substring search. The only contents is text, because I believe in the primacy of plaintext. The notes for the last 4 years of my life takes up 60 megs, and it takes half a second on a 5 year old android phone to parse all of it, and less than 50ms to search through all of it, so I can do it on every keystroke/ incrementally.
An asker asks for things, absolutely everything, and the giver must choose what they can give.
A guesser must choose what they can ask for, and only ask when they're quite sure it can be given, so the giver has less responsibility for the transfer or service, and most asks can be assumed to be reasonable.
A Persian cannot ask for anything. They must wait for it to be offered, and even then, they must insist that they are quite alright, and that they would rather do without, and only through reciprocal insistence from the giver can they consider whether it would be rude to take them up on the offer.
Presumably, one can judge the giver's underlying intent by the quality of their reciprocal insistence (does it seem like they're just doing the bare minimum of insistence upon their offering, or do they truly wish for me to take them up on it?)
In the Taarof system, an offeree actually has more data, rather than a simpler Asker-scenarion "no", and even more data than the shared values in a Guesser household, this allows for a quick negotiation of values by the immediate and well-practiced cultural norms around the quality of insistence, even for people across different households.