Receptes
Les receptes són patrons comuns de múltiples operacions que aconsegueixen fluxos de treball típics. Utilitzeu-les com a plantilles per a les vostres transaccions i ajusteu els IDs i metadades per adaptar-los al vostre domini.
Requisits previs
Aquestes receptes assumeixen que ja teniu els fonaments establerts. Si us falta algun requisit previ, completeu primer aquest pas per evitar errors de validació.
- Comprensió de operacions
- Classes d’actius registrades per al vostre domini
- Contenidors creats per a la font i la destinació
Pas 1 - Transferència de Saldo Fungible Entre Contenidors
Mou una quantitat fungible d’un contenidor a un altre utilitzant operacions de eliminar i afegir. Aquest és el patró més segur quan es vol un control explícit sobre cada pas.
Quan utilitzar: Moure recursos, transferir saldos, reequilibrar inventari.
Operacions: RemoveFungible, AddFungible
{
"operations": [
{
"op": "RemoveFungible",
"args": {
"class_id": 200,
"key": 1,
"quantity": 150,
"from": {
"container_id": 1001,
"kind": "balance"
}
}
},
{
"op": "AddFungible",
"args": {
"class_id": 200,
"key": 1,
"quantity": 150,
"location": {
"container_id": 1002,
"kind": "balance"
}
}
}
],
"idempotency_key": "transfer-balance-2026-01-15-1001-1002"
}
Alternativament, utilitzeu TransferFungible per a una transferència d’una sola operació:
{
"operations": [
{
"op": "TransferFungible",
"args": {
"from_container": 1001,
"to_container": 1002,
"class_id": 200,
"key": 1,
"quantity": 150
}
}
]
}
Pas 2 - Moure la Instància Entre Slots
Relocar una instància única d’un slot a un altre dins dels mateixos o diferents contenidors. Aquest patró preserva l’auditoria i evita un estat parcial durant els canvis d’equip.
Quan utilitzar: Reorganitzar l’inventari, moure equipament, reposicionar articles.
Operacions: RemoveFromSlot, PlaceInSlot
{
"operations": [
{
"op": "RemoveFromSlot",
"args": {
"container_id": 1001,
"slot_index": 1
}
},
{
"op": "PlaceInSlot",
"args": {
"container_id": 1001,
"slot_index": 2,
"instance_id": 9001
}
}
],
"idempotency_key": "slot-move-2026-01-15-9001"
}
Per intercanviar dues places ocupades, utilitzeu SwapSlots en el seu lloc.
Pas 3 - Registrar la Classe amb Shape
Defineix una nova classe d’actius i configura immediatament la seva forma de graella en una sola transacció.
Quan utilitzar: Configurar nous tipus d’actius que es col·locaran en contenidors de graella.
Operacions: RegisterClass, RegisterClassShape
{
"operations": [
{
"op": "RegisterClass",
"args": {
"request": {
"class_id": 300,
"flags": 2,
"name": "Battle Tank"
}
}
},
{
"op": "RegisterClassShape",
"args": {
"request": {
"class_id": 300,
"stack_key": null,
"shape": {
"width": 3,
"height": 2
}
}
}
}
],
"idempotency_key": "class-with-shape-2026-01-15-300"
}
Pas 4 - Afegir i Col·locar Instància
Creeu una nova instància única i col·loqueu-la immediatament en una ranura.
Quan utilitzar: Generar articles, crear equipament, afegir mostres.
Operacions: AddInstance
{
"operations": [
{
"op": "AddInstance",
"args": {
"class_id": 200,
"key": 1,
"location": {
"container_id": 1001,
"kind": "slot",
"slot_index": 1
}
}
}
]
}
Nota: La resposta del commit llista els IDs d’instància creats sota created_entities.instances, que podeu utilitzar en operacions posteriors.
Pas 5 - Configurar el contenidor amb saldo inicial
Creeu un contenidor i ompliu-lo amb recursos inicials.
Quan utilitzar: Inicialitzar inventaris de jugadors, crear nou emmagatzematge, configurar experiments.
Operacions: CreateContainer, AddFungible
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 2001,
"kind": { "type": "balance" },
"owner": null,
"policies": null
}
},
{
"op": "AddFungible",
"args": {
"class_id": 100,
"key": 1,
"quantity": 1000,
"location": {
"container_id": 2001,
"kind": "balance"
}
}
},
{
"op": "AddFungible",
"args": {
"class_id": 101,
"key": 1,
"quantity": 500,
"location": {
"container_id": 2001,
"kind": "balance"
}
}
}
],
"idempotency_key": "init-container-2026-01-15-2001"
}
Pas 6 - Adjuntar Equip a Personatge
Creeu relacions de pare-fill entre instàncies per a equips o components.
Quan utilitzar: Equipar articles, adjuntar components, construir jerarquies.
Operacions: Adjuntar
{
"operations": [
{
"op": "Attach",
"args": {
"child_instance": 9002,
"parent_instance": 9001
}
}
]
}
Per eliminar equip, utilitzeu Detach seguit de la ubicació desitjada.
Solució de problemes
L’ordre és important
Les operacions s’executen de manera seqüencial. Assegureu-vos que les operacions anteriors creen l’estat del qual depenen les operacions posteriors.
Utilitzeu claus d’idempotència
Sempre inclou claus d’idempotència per a operacions que modifiquen l’estat. Això evita compromisos duplicats en reintents.
Comprovar els tipus de contenidors
Les operacions de balance necessiten contenidors de balance o de xarxa. Les operacions de slot necessiten contenidors de slots. Tipus no coincidents causen errors WrongContainerKind.
Validar quantitats
Assegureu-vos que els contenidors d’origen tinguin un saldo suficient abans de les transferències. Un saldo insuficient provoca que tota la transacció es reverti.
Properes passes
- Acció de Referència - Referència completa de l’operació
- Model d’Error - Comprendre les fallades
- Python SDK - Constructors d’operacions segurs en tipus