addons/talo/
├── apis/ # One file per API (extend TaloAPI)
├── entities/ # Data model classes (most extend TaloLoadable)
├── utils/ # Managers and helpers
├── samples/ # Sample scenes demonstrating features
├── talo_manager.gd # Main autoload singleton (Talo.*)
├── talo_client.gd # HTTP client wrapper
└── talo_settings.gd # Add new settings here
test/ # Unit tests (gdUnit4), mirror of addons/talo/
├── apis/
├── entities/
├── settings/
└── utils/
This project uses strict GDScript type safety - all warnings are treated as errors. Before submitting:
- All variables must have explicit type annotations (
var foo: String) unless the type is clearly inferred with:= - All function parameters and return types must be typed
- No unsafe casts, unsafe calls, or unsafe property access
- Use
class_namefor all classes - Use
awaitfor async operations
Follow the patterns in existing API and entity files. The CI build will fail on any script error.
GDScript is formatted with the GDQuest GDScript Formatter, configured through .editorconfig (tabs, width 4). Format the plugin source before submitting:
gdscript-formatter addons/taloTo check without writing (fails if changes are needed):
gdscript-formatter --check addons/taloUnit tests use gdUnit4 and live in test/, mirroring the layout of addons/talo.
The GdUnit4 panel inside the editor allows you to run the existing tests. You may also want to consider adding your own tests for substantial contributions.
You can also test interactively using the sample scenes — the Playground is the quickest way to exercise most APIs.
- Keep PRs focused - one feature or fix per PR
- Test against at least one platform export before opening
- Target the
developbranch