design notes on 9p directory structure

This commit is contained in:
Iris Lightshard 2021-06-14 15:09:05 -06:00
parent ed686913d2
commit b738d29f38
Signed by: Iris Lightshard
GPG key ID: 3B7FBC22144E6398

32
DESIGN Normal file
View file

@ -0,0 +1,32 @@
[9p directory structure]
/ctl: control file for inputing system commands
load CART: load a cartridge
create REALM: create a new realm (start a new game or app session)
protect REALM: protect the realm with auth data
enter REALM: join an existing realm
leave: leave the current realm
save: save the current universe to the realm
reset: reset the cartridge (attempts to leave the realm, but doesn't save)
unload: unload the cartridge
shutdown: disconnect from the xrxs server
/carts/: available game/app cartridges for this server
/realms/: open/saved realms
realms can either be solo, open, or protected;
open or protected realms can have limited member numbers
depending on the cartridge, these settings can be user-managed or managed by the cartridge itself
/realm/REALM/index: realm data readable by the client before entering, eg:
1 4 1
first number is number of members
second is member limit
third is 1 if protected, 0 if not
0 1 1 represents a protected solo realm that is empty (saved game with password)
0 1 0 represents an unprotected solo realm that is empty (saved game with no password)
/realms/REALM/members: members of the realm
realms/REALM/allowed: allowed membernames (if empty, anyone is allowed)
realms/REALM/password: realm password
realms/REALM/universe/: universe data synced to the realm
/universe/: arbitrary game data not yet synced to the realm