Add HSchool.Content project for JSONC definitions, catalog, and map validation. Update solution structure to include new content and tests projects. Enhance school management to support mod packs and map instances, ensuring proper loading and validation. Revise documentation to reflect these changes and update tests for new functionality.
This commit is contained in:
@@ -9,6 +9,7 @@ way; this file is *how to work in them*.
|
||||
| I want to change… | Go to |
|
||||
| --- | --- |
|
||||
| schools, the game clock, game rules | `src/HSchool.Simulation` |
|
||||
| defs, JSONC catalog, map validation | `src/HSchool.Content` |
|
||||
| the menu API (list, create, delete) | `src/HSchool.Server/Api` **and** `docs/protocol.md` |
|
||||
| what the socket carries | `src/HSchool.Protocol` **and** `src/HSchool.Client/src/net/protocol.ts` **and** `docs/protocol.md` |
|
||||
| connection handling, workers, saves | `src/HSchool.Server` |
|
||||
@@ -101,6 +102,8 @@ say so explicitly in the change description.
|
||||
## Testing policy
|
||||
|
||||
- Simulation changes need a `GameClock` or `SchoolRegistry` test. They are fast and need no host.
|
||||
- Catalog, inheritance, patches and map validation belong in `tests/HSchool.Content.Tests`.
|
||||
Feed the loader documents, not disk paths.
|
||||
- Protocol changes need a round-trip test **and** a byte-layout assertion on both sides.
|
||||
- Server wiring, endpoints and the WebSocket belong in `tests/HSchool.AppHost.Tests`. That suite
|
||||
shares one AppHost across all tests (`AppHostFixture`) — keep it that way, booting per test costs
|
||||
|
||||
Reference in New Issue
Block a user