Document project architecture and asset provenance
This commit is contained in:
parent
930acdb1a6
commit
866cc0fc06
10 changed files with 705 additions and 0 deletions
27
docs/decisions/0001-host-authority.md
Normal file
27
docs/decisions/0001-host-authority.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# ADR 0001: Host-authoritative shared state
|
||||
|
||||
Status: accepted
|
||||
|
||||
## Context
|
||||
|
||||
NETfishing supports private hosts, open hosts, and joined clients. Catches,
|
||||
currency, owned items, jobs, mail, drawings, profiles, and moderation affect
|
||||
state that cannot safely trust a client's local presentation.
|
||||
|
||||
## Decision
|
||||
|
||||
The host validates requests against registered peers and host-owned context,
|
||||
then performs the authoritative mutation. Clients receive results and replicated
|
||||
presentation state. Client evidence is bounded and reconstructed where
|
||||
possible; it is not treated as authority.
|
||||
|
||||
Private single-player uses the same host path. Presentation-only state does not
|
||||
add RPCs or persistence.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Shared behavior is consistent across private, open-host, and joined-client
|
||||
modes.
|
||||
- Tests must cover local-host and paired host/client paths.
|
||||
- Stable protocol payloads and rejection cleanup require explicit handling.
|
||||
- UI activation cannot be used as proof that a server-side mutation succeeded.
|
||||
27
docs/decisions/0002-authored-data-and-stable-ids.md
Normal file
27
docs/decisions/0002-authored-data-and-stable-ids.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# ADR 0002: Authored resources and stable identifiers
|
||||
|
||||
Status: accepted
|
||||
|
||||
## Context
|
||||
|
||||
Fish, items, pools, availability, shop stock, and other game content evolve
|
||||
independently from saved catches and network messages. Display labels and scene
|
||||
node names are expected to change during development.
|
||||
|
||||
## Decision
|
||||
|
||||
Repository-owned resources are the authoritative authored data. Persistent and
|
||||
networked records refer to stable IDs. Display names, filenames, node names,
|
||||
coordinates, and pool names are not compatibility identifiers.
|
||||
|
||||
Cross-domain concepts such as water type use one typed definition rather than
|
||||
duplicated strings. Comprehensive catalogs remain separate from location-
|
||||
specific selection pools.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Renaming visible UI does not require save migration.
|
||||
- Removing or changing a stable ID requires an explicit compatibility plan.
|
||||
- Content validation checks uniqueness, catalog completeness, pool membership,
|
||||
and typed habitat compatibility.
|
||||
- New authored assets need provenance records as well as resource references.
|
||||
Loading…
Add table
Add a link
Reference in a new issue