A rhythm game net ranking service built on ATproto.
C# 90.1%
Other 9.9%
10 1 0

Clone this repository

https://tangled.org/tsunagite.dev/tsunagite
git@tangled.org:tsunagite.dev/tsunagite

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Tsunagite#

A rhythm game net ranking service built on ATproto.


This is still very ad-hoc and may not ever hit the point of being Fully Real but I'm at least messing around with it! If you wanna help out for any reason you know where to find me lol

Dictionary Objects#

A few features in Tsunagite's lexicons strongly depend on a type that does not yet exist in the Lexicon schema language. These objects are key-value dictionaries with specified key string formats and value data types. I will look into pushing to standardize these at some point, but for the moment I'm taking these steps to indicate their presence:

  • All schema that use a dictionary object type have the line "featureFlags": ["dev.tsunagite.dictionaryObject"] at their top level.
  • All dictionary objects have the standard type object, with no required or nullable fields
    • All dictionary objects have a $keyFormat property field with the type of string, specifying the string format keys should use.
    • All dictionary objects have a $valueType property field with the type of what values should be contained within the dictionary.

I would love to be able to add a "dictionary": true object to dictionary objects to make them more explicit, but that fails the honk lexicon validator I've been testing against. Keep in mind that this is all extremely not in the current Lexicon spec and should be treated as experimental! Unfortunately, there are not really any better ways to do represent something like dev.tsunagite.translatable - there are simply too many valid IETF language tags to specify even the subset of commonly-used language tags, and using an array of objects with id and value fields would turn what would in a dictionary be an O(1) lookup into an O(n) operation instead, which is unacceptable in my eyes. Hopefully someday this will be resolved!