- dropworks_client.gd: DropworksClient over the engine HTTPClient with
pure request builders and parse_endpoint, plus sign_in / unlock /
submit_score / set_presence.
- test_dropworks.gd runs headlessly under Godot 4.3 and passes.
- CI gains a gdscript job; README documents usage and the test command.
- Dropworks class library: DropworksNative (raw P/Invoke), a managed
DropworksClient/Session/Exception over the C ABI (session, achievement,
leaderboard, presence).
- Dropworks.Smoke console app verifies the binding against the real
libdropworks: builds clean and the smoke test passes (status strings,
argument validation, last_error).
- CI gains a csharp job; README documents build/run.
Phase 3 / #19 native bindings:
- Add a cabi module behind the c-abi feature (crate-type cdylib+rlib)
implementing include/dropworks.h: client/session create+destroy, session
getters, sign_in, unlock_achievement, set_presence (NOT_IMPLEMENTED),
status_string and last_error.
- Uses a per-client blocking reqwest client and validates every pointer
argument; unlock attaches the session bearer token (the server now
requires it on /achievement).
- 4 C ABI tests (status strings, null handling, invalid arguments) plus
the existing transport tests; builds libdropworks.so.
- Document that the server contract landed in drop (45515274).