name, rarity, set). Swapnice validates them against the ontology and stores them uniformly. Compact internal storage keys are not part of the public API.
Why this matters for a pilot
If events sayobject: "Blue-Eyes" in one place and object: "sku_blue_eyes_tin" in another, intents do not roll up. Catalog entries give you a stable id that profile and intent reads can share.
Common fields (every ontology)
Suggested entry types as you extend beyond collectibles:
product, sku, collectible, event, team, creator, badge, fandom, activity.
Create or upsert
status is created, updated, or unchanged (checksum matched). Identity fields are required for that ontology — for Yu-Gi-Oh that includes the source ids that make the record correlatable. Do not send random ids for objects that already have a source key.
Unknown fields are rejected unless Swapnice agrees to evolve the ontology. Schema drift should be intentional.
Read ontologies
POST /v1/ontologies/:id/fields/rebuild.
How events should reference entries
object whenever you have one. Free-text names are a last resort.
Partner-owned catalogs
Retail, merch, and event partners often already have a product catalog (Shopify, POS, ticketing). The usual pattern:- Upsert the SKUs or events you will send activity for (or a subset for the pilot)
- Map your id → Swapnice
entry_idonce - Emit events against that id
- Read intents grouped by those objects