Give each school its own people seed so composition no longer follows create order.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 00:28:13 +03:00
co-authored by Cursor
parent 0c3eb219c8
commit 48f0b15221
17 changed files with 233 additions and 35 deletions
+7 -2
View File
@@ -32,6 +32,8 @@ the wire format is unambiguous, and the client formats it back in UTC.
Everything the main menu needs in one request. `schoolWeekDays` is 57 working days counted
from Monday (five is MonFri; six adds Saturday). It is a school rule, not a catalog def.
`seed` is the roster generator seed: it is not the school id. Share it to recreate the same
people; it does not change on a living school.
```json
{
@@ -40,7 +42,7 @@ from Monday (five is MonFri; six adds Saturday). It is a school rule, not a c
"gameMinutesPerRealSecond": 5,
"schoolWeekDays": 5,
"schools": [
{ "id": 1, "name": "Гимназия №14", "gameTime": "2012-03-31T07:35:00Z", "running": false, "speedIndex": 1 }
{ "id": 1, "name": "Гимназия №14", "gameTime": "2012-03-31T07:35:00Z", "running": false, "speedIndex": 1, "seed": 1847291 }
]
}
```
@@ -110,7 +112,8 @@ Body:
"modIds": [],
"map": null,
"nameSetId": "Slavic",
"nativeLanguage": null
"nativeLanguage": null,
"seed": null
}
```
@@ -120,6 +123,8 @@ pack set's default layout. A supplied map is validated as a connected yard-and-r
`Slavic`). Unknown ids return `400` `unknown-name-set`.
`nativeLanguage` is a skill from that set's `nativeLanguages`. Omit it (or send `null`) to pick
one from the school seed. An id that is not in the set returns `400` `unknown-native-language`.
`seed` is an optional integer. Send it to reproduce a known school; omit it (or send `null`) and
the server rolls one. Existing saves keep the seed already stored in the people file.
| Status | Meaning |
| --- | --- |