Adds outfit evaluation, morning home dressing, locker-room ChangeClothes with day-log events, PE/weather AI goals, dress-rules API, and tests.
254 lines
7.2 KiB
JSON
254 lines
7.2 KiB
JSON
{
|
|
// Two-storey school plus a gym. Eleven homerooms, labelled as room numbers — class names
|
|
// live on the roster and change every 1 September.
|
|
"territory": { "id": "yard", "def": "SchoolYard" },
|
|
"buildings": [
|
|
{ "id": "main", "def": "MainBuilding" },
|
|
{ "id": "gym", "def": "GymBuilding" },
|
|
],
|
|
"floors": [
|
|
{ "id": "floor-1", "def": "StandardFloor", "building": "main", "label": "1" },
|
|
{ "id": "floor-2", "def": "StandardFloor", "building": "main", "label": "2" },
|
|
{ "id": "gym-floor", "def": "StandardFloor", "building": "gym" },
|
|
],
|
|
"rooms": [
|
|
{ "id": "porch", "def": "EntranceHall", "building": "main", "floor": "floor-1" },
|
|
{ "id": "corridor-1", "def": "Corridor", "building": "main", "floor": "floor-1", "label": "1" },
|
|
{ "id": "stairs-1", "def": "Stairwell", "building": "main", "floor": "floor-1", "label": "1" },
|
|
{
|
|
"id": "principals-office",
|
|
"def": "PrincipalsOffice",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"slots": [
|
|
{ "key": "directorChair", "thing": "DirectorsChair" },
|
|
{ "key": "desk", "thing": "Desk" },
|
|
{ "key": "guestChair", "thing": "Chair", "count": 2 },
|
|
],
|
|
},
|
|
{
|
|
"id": "secretary-office",
|
|
"def": "SecretaryOffice",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"slots": [
|
|
{ "key": "desk", "thing": "Desk" },
|
|
{ "key": "chair", "thing": "Chair" },
|
|
],
|
|
},
|
|
{
|
|
"id": "teachers-room",
|
|
"def": "TeachersRoom",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"slots": [
|
|
{ "key": "table", "thing": "DiningTable" },
|
|
{ "key": "chairs", "thing": "Chair", "count": 6 },
|
|
],
|
|
},
|
|
{
|
|
"id": "classroom-101",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"label": "101",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-102",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"label": "102",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-103",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"label": "103",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-104",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"label": "104",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "cafeteria",
|
|
"def": "Cafeteria",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"slots": [
|
|
{ "key": "counter", "thing": "DiningTable" },
|
|
{ "key": "seats", "thing": "Chair", "count": 112 },
|
|
],
|
|
},
|
|
{ "id": "restroom-1", "def": "Restroom", "building": "main", "floor": "floor-1", "label": "1" },
|
|
{
|
|
"id": "medical-office",
|
|
"def": "MedicalOffice",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"slots": [
|
|
{ "key": "couch", "thing": "MedicalCouch" },
|
|
{ "key": "desk", "thing": "Desk" },
|
|
],
|
|
},
|
|
{
|
|
"id": "utility-room",
|
|
"def": "UtilityRoom",
|
|
"building": "main",
|
|
"floor": "floor-1",
|
|
"slots": [
|
|
{ "key": "desk", "thing": "Desk" },
|
|
{ "key": "chair", "thing": "Chair" },
|
|
],
|
|
},
|
|
{ "id": "corridor-2", "def": "Corridor", "building": "main", "floor": "floor-2", "label": "2" },
|
|
{ "id": "stairs-2", "def": "Stairwell", "building": "main", "floor": "floor-2", "label": "2" },
|
|
{
|
|
"id": "classroom-201",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"label": "201",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-202",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"label": "202",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-203",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"label": "203",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-204",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"label": "204",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-205",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"label": "205",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-206",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"label": "206",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "classroom-207",
|
|
"def": "Classroom",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"label": "207",
|
|
"seats": 16,
|
|
},
|
|
{
|
|
"id": "library",
|
|
"def": "Library",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"slots": [
|
|
{ "key": "desk", "thing": "Desk" },
|
|
{ "key": "shelves", "thing": "Bookshelf", "count": 4 },
|
|
],
|
|
},
|
|
{
|
|
"id": "computer-lab",
|
|
"def": "ComputerLab",
|
|
"building": "main",
|
|
"floor": "floor-2",
|
|
"slots": [
|
|
{ "key": "teacherDesk", "thing": "Desk" },
|
|
{ "key": "teacherChair", "thing": "Chair" },
|
|
{ "key": "computers", "thing": "Computer", "count": 12 },
|
|
],
|
|
},
|
|
{ "id": "restroom-2", "def": "Restroom", "building": "main", "floor": "floor-2", "label": "2" },
|
|
{
|
|
"id": "gym-hall",
|
|
"def": "GymHall",
|
|
"building": "gym",
|
|
"floor": "gym-floor",
|
|
"slots": [
|
|
{ "key": "benches", "thing": "Bench", "count": 4 },
|
|
],
|
|
},
|
|
{
|
|
"id": "boys-changing-room",
|
|
"def": "MaleChangingRoom",
|
|
"building": "gym",
|
|
"floor": "gym-floor",
|
|
"slots": [
|
|
{ "key": "lockers", "thing": "Locker", "count": 12 },
|
|
{ "key": "spots", "thing": "ChangingSpot", "count": 4 },
|
|
],
|
|
},
|
|
{
|
|
"id": "girls-changing-room",
|
|
"def": "FemaleChangingRoom",
|
|
"building": "gym",
|
|
"floor": "gym-floor",
|
|
"slots": [
|
|
{ "key": "lockers", "thing": "Locker", "count": 12 },
|
|
{ "key": "spots", "thing": "ChangingSpot", "count": 4 },
|
|
],
|
|
},
|
|
],
|
|
"links": [
|
|
{ "a": "yard", "b": "porch" },
|
|
{ "a": "porch", "b": "corridor-1" },
|
|
{ "a": "corridor-1", "b": "stairs-1" },
|
|
{ "a": "corridor-1", "b": "principals-office" },
|
|
{ "a": "corridor-1", "b": "secretary-office" },
|
|
{ "a": "corridor-1", "b": "teachers-room" },
|
|
{ "a": "corridor-1", "b": "classroom-101" },
|
|
{ "a": "corridor-1", "b": "classroom-102" },
|
|
{ "a": "corridor-1", "b": "classroom-103" },
|
|
{ "a": "corridor-1", "b": "classroom-104" },
|
|
{ "a": "corridor-1", "b": "cafeteria" },
|
|
{ "a": "corridor-1", "b": "restroom-1" },
|
|
{ "a": "corridor-1", "b": "medical-office" },
|
|
{ "a": "corridor-1", "b": "utility-room" },
|
|
{ "a": "stairs-1", "b": "stairs-2" },
|
|
{ "a": "stairs-2", "b": "corridor-2" },
|
|
{ "a": "corridor-2", "b": "classroom-201" },
|
|
{ "a": "corridor-2", "b": "classroom-202" },
|
|
{ "a": "corridor-2", "b": "classroom-203" },
|
|
{ "a": "corridor-2", "b": "classroom-204" },
|
|
{ "a": "corridor-2", "b": "classroom-205" },
|
|
{ "a": "corridor-2", "b": "classroom-206" },
|
|
{ "a": "corridor-2", "b": "classroom-207" },
|
|
{ "a": "corridor-2", "b": "library" },
|
|
{ "a": "corridor-2", "b": "computer-lab" },
|
|
{ "a": "corridor-2", "b": "restroom-2" },
|
|
{ "a": "yard", "b": "gym-hall" },
|
|
{ "a": "gym-hall", "b": "boys-changing-room" },
|
|
{ "a": "gym-hall", "b": "girls-changing-room" },
|
|
],
|
|
}
|