- GraphQL API and REST where documented
- specklepy or @speckle/objectsender / @speckle/objectloader2 depending on runtime
- Idempotent, version-aware sync patterns
Design notes
- Treat versions as immutable inputs; design jobs to be replayable from a known version id.
- Separate read paths (pull from Speckle) from write paths (push new versions) so failures are easier to reason about.
- Prefer explicit mapping tables for external system ids ↔ Speckle
applicationIdvalues.