Skip to content

Commit 0792bb1

Browse files
Merge branch 'main' into recap
2 parents 4cf26ca + 935ff7a commit 0792bb1

File tree

151 files changed

+5304
-1308
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+5304
-1308
lines changed

.github/workflows/pr-stale.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ jobs:
88
stale:
99
runs-on: ubuntu-latest
1010
permissions:
11-
issues: write
1211
pull-requests: write
1312
steps:
1413
- uses: actions/stale@8f717f0dfca33b78d3c933452e42558e4456c8e7
@@ -21,6 +20,6 @@ jobs:
2120
exempt-pr-assignees: evanpelle
2221
exempt-pr-labels: "will not stale"
2322
stale-pr-label: "Stale"
24-
stale-pr-message: "This pull request is stale because it has been open for 14 days with no activity. If you want to keep this pull request open, add a comment or update the branch."
25-
close-pr-message: "This pull request has been closed because twenty-eight days have passed without activity. If someone wants to keep working on it, feel free to take the code."
23+
stale-pr-message: "This pull request is stale because it has been open for fourteen days with no activity. If you want to keep this pull request open, add a comment or update the branch."
24+
close-pr-message: "This pull request has been closed because fourteen days have passed without activity. If you want to continue work on the code, comment or create a new PR."
2625
close-pr-label: "Orphaned"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ resources/.DS_Store
1010
.DS_Store
1111
.clinic/
1212
CLAUDE.md
13+
.idea/

API.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
## API Usage
2+
3+
### List Game Metadata
4+
5+
Get game IDs and basic metadata for games that started within a specified time range. Results are sorted by start time and paginated.
6+
7+
**Constraints:**
8+
9+
- Maximum time range: 2 days
10+
- Maximum limit per request: 1000 games
11+
12+
**Endpoint:**
13+
14+
```
15+
GET https://api.openfront.io/public/games
16+
```
17+
18+
**Query Parameters:**
19+
20+
- `start` (required): ISO 8601 timestamp
21+
- `end` (required): ISO 8601 timestamp
22+
- `type` (optional): Game type, must be one of `[Private, Public, Singleplayer]`
23+
- `limit` (optional): Number of results (max 1000, default 50)
24+
- `offset` (optional): Pagination offset
25+
26+
**Example Request:**
27+
28+
```bash
29+
curl "https://api.openfront.io/public/games?start=2025-10-25T00:00:00Z&end=2025-10-26T23:59:59Z&type=Singleplayer&limit=10&offset=5"
30+
```
31+
32+
**Response:**
33+
34+
```json
35+
[
36+
{
37+
"game": "ABSgwin6",
38+
"start": "2025-10-25T00:00:10.526Z",
39+
"end": "2025-10-25T00:19:45.187Z",
40+
"type": "Singleplayer",
41+
"mode": "Free For All",
42+
"difficulty": "Medium"
43+
},
44+
...
45+
]
46+
```
47+
48+
The response includes a `Content-Range` header indicating pagination (e.g., `games 5-15/399`).
49+
50+
---
51+
52+
### Get Game Info
53+
54+
Retrieve detailed information about a specific game.
55+
56+
**Endpoint:**
57+
58+
```
59+
GET https://api.openfront.io/public/game/:gameId
60+
```
61+
62+
**Query Parameters:**
63+
64+
- `turns` (optional): Set to `false` to exclude turn data and reduce response size
65+
66+
**Examples:**
67+
68+
```bash
69+
# Full game data
70+
curl "https://api.openfront.io/public/game/ABSgwin6"
71+
72+
# Without turn data
73+
curl "https://api.openfront.io/public/game/ABSgwin6?turns=false"
74+
```
75+
76+
**Note:** Public player IDs are stripped from game records for privacy.
77+
78+
---
79+
80+
### Get Player Info
81+
82+
Retrieve information and stats for a specific player.
83+
84+
**Endpoint:**
85+
86+
```
87+
GET https://api.openfront.io/public/player/:playerId
88+
```
89+
90+
**Example:**
91+
92+
```bash
93+
curl "https://api.openfront.io/public/player/HabCsQYR"
94+
```

CREDITS.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Credits
2+
3+
## Code
4+
5+
OpenFront is licensed under AGPL-3.0.
6+
See [Contributors](https://github.com/openfrontio/OpenFrontIO/graphs/contributors) for code contributors.
7+
8+
## Map Data
9+
10+
### OpenStreetMap
11+
12+
© [OpenStreetMap contributors](https://www.openstreetmap.org/copyright)
13+
Licensed under ODbL
14+
15+
### Natural Earth
16+
17+
[Natural Earth](https://www.naturalearthdata.com/)
18+
Public Domain
19+
20+
### Bedmap3 Antarctica Dataset
21+
22+
Pritchard, H.D., Fretwell, P.T., Fremand, A.C. et al. Bedmap3 updated ice bed, surface and thickness gridded datasets for Antarctica. _Sci Data_ 12, 109 (2025).
23+
[https://doi.org/10.1038/s41597-025-04672-y](https://doi.org/10.1038/s41597-025-04672-y)
24+
Licensed under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/)
25+
26+
## Icons
27+
28+
Icons from [The Noun Project](https://thenounproject.com/)

LICENSE

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -663,21 +663,22 @@ For more information on this, and how to apply and follow the GNU AGPL, see
663663
=== ADDITIONAL TERMS (AGPL v3 Section 7) ===
664664

665665
Attribution Requirement:
666-
All modified versions of this web game must prominently display one of the
667-
following on the main menu and/or initial title screen:
666+
667+
All versions of this software, including modified versions, must display
668+
attribution to the original OpenFront project prominently on the main menu
669+
or initial title screen where it is clearly visible to users.
670+
671+
The attribution must include one of the following text statements:
668672
- "Based on OpenFront"
669673
- "Derived from OpenFront"
670674
- "Powered by OpenFront"
671675
- "Fork of OpenFront"
672676

673-
Display Requirements:
674-
- Positioned directly beneath the game's title
675-
- Minimum 12-point font size (or proportional equivalent)
676-
- Sufficient contrast for clear readability
677-
- Visible without scrolling or navigation
678-
- Must remain visible until user chooses to proceed (no auto-skip)
679-
- May include a link to https://openfront.io
680-
681-
Modified versions may add their own game title (e.g.,
682-
"SuperGame - Based on OpenFront") but may not use "OpenFront"
683-
as the primary title or imply official endorsement.
677+
This attribution text must be reasonably prominent and clearly readable.
678+
A link to https://openfront.io may be included alongside the attribution.
679+
680+
Modified versions may use their own game title and branding, but may not
681+
use "OpenFront" as the primary title or imply official endorsement.
682+
683+
These attribution requirements are additional terms under Section 7 of
684+
the GNU Affero General Public License v3, which governs this software.

LICENSING.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,13 @@ This document provides comprehensive licensing information for the OpenFront.io
7272
- Added additional Section 7 attribution requirements to the LICENSE
7373
- Removed trademark notice from LICENSE file as it's unnecessary
7474

75+
### Phase 7: Update AGPL Additional Attribution Terms
76+
77+
- **Starting After:** f161c94ff475092811fc49be79138fc37a446179
78+
- **Date:** October 18, 2025
79+
- **Changes:**
80+
- Updated Section 7 attribution requirements in the LICENSE
81+
7582
## Important Notes
7683

7784
### For Code:

README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,14 @@ Contributions are welcome! Please feel free to submit a Pull Request.
151151
Translators are welcome! Please feel free to help translate into your language.
152152
How to help?
153153

154-
1. Request to join the dev [Discord](https://discord.gg/K9zernJB5z) (in the application form, say you want to help translate)
155-
1. Go to the project's Crowdin translation page: [https://crowdin.com/project/openfront-mls](https://crowdin.com/project/openfront-mls)
156-
1. Login if you already have an account/ Sign up if you don't have one
157-
1. Select the language you want to translate in/ If your language isn't on the list, click the "Request New Language" button and enter the language you want added there.
158-
1. Translate the strings
154+
1. Join the translation [Discord](https://discord.gg/3zZzacjWFr)
155+
2. Go to the project's Crowdin translation page: [https://crowdin.com/project/openfront-mls](https://crowdin.com/project/openfront-mls)
156+
3. Login if you already have an account / Sign up if you don't have one
157+
4. Join the project
158+
5. Select the language you want to translate in. If your language isn't on the list, click the "Request New Language" button and enter the language you want added there.
159+
6. Translate the strings
160+
161+
Feel free to ask questions in the translation Discord server!
159162

160163
### Project Governance
161164

jest.config.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,16 @@ export default {
1111
},
1212
transform: {
1313
"^.+\\.tsx?$": ["@swc/jest"],
14+
"^.+\\.mjs$": ["@swc/jest"],
15+
"^.+\\.js$": ["@swc/jest"],
1416
},
15-
transformIgnorePatterns: ["node_modules/(?!(node:)/)"],
17+
transformIgnorePatterns: [
18+
"node_modules/(?!(nanoid|@jsep|fastpriorityqueue|@datastructures-js)/)",
19+
],
1620
collectCoverageFrom: ["src/**/*.ts", "!src/**/*.d.ts"],
1721
coverageThreshold: {
1822
global: {
19-
statements: 21.5,
23+
statements: 21,
2024
branches: 16,
2125
lines: 21.0,
2226
functions: 20.5,
981 KB
Loading
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"name": "Achiran",
3+
"nations": [
4+
{
5+
"coordinates": [785, 985],
6+
"flag": "ie",
7+
"name": "Inishmore",
8+
"strength": 1
9+
},
10+
{
11+
"coordinates": [1360, 1360],
12+
"flag": "ie",
13+
"name": "Inishmann",
14+
"strength": 2
15+
},
16+
{
17+
"coordinates": [1630, 1515],
18+
"flag": "ie",
19+
"name": "Inisheer",
20+
"strength": 1
21+
},
22+
{
23+
"coordinates": [1400, 480],
24+
"flag": "ie",
25+
"name": "Achill",
26+
"strength": 2
27+
}
28+
]
29+
}

0 commit comments

Comments
 (0)