Documentació d'Asset Core

Documentació del motor d'estat del món determinista i referències de l'API.

Decision Gate docs

Referència d’Accions d’AssetCore

Generat a partir de Operations Manifest v1.0.0 (API 0.1.0)

Generat automàticament a partir del manifest d’operacions el 2026-01-22

AssetCore és un substrat de memòria determinista. Els contenidors són regions de memòria persistent. Les operacions són transformacions de memòria atòmiques. Les transaccions són compromisos de memòria reproduïbles.

Les següents operacions modifiquen regions de memòria estructurada d’una manera independent del domini.

Aquesta referència proporciona punts d’entrada directes i centrats en l’acció per a totes les 24 operacions d’AssetCore. Cada acció es mapeja 1:1 a una operació de commit; canvia entre les pestanyes de crida a l’SDK i de càrrega útil de l’operació segons sigui necessari. El preflight és opcional mitjançant ActionOptions(preflight=True).

Visió general

Les accions d’AssetCore són embolcalls lleugers que construeixen una única operació i la presenten a través del punt final de confirmació. Si necessiteu transaccions de múltiples operacions, utilitzeu directament els helpers de confirmació.

Prevol

Els mètodes d’acció accepten un objecte ActionOptions opcional. Establiu preflight=True per executar la canalització de preflight abans de fer el compromís. Les trucades només de preflight estan disponibles a través dels helpers de preflight d’acció o dels helpers de preflight del client.


Operacions

CreateContainer

Crea un contenidor (regió de memòria estructurada) amb el tipus sol·licitat.

contenidor crear únic dirigit

Crea un contenidor persistent del tipus sol·licitat (balance, graella, slots, continu 1D/2D). Proporciona external_id per reclamar un identificador extern estable; els IDs interns són densos, auto-assignats i mai exposats. Els IDs externs són d’àmbit de namespace i no han d’existir ja.

Errors:

  • ContainerAlreadyExists: Ja existeix un contenidor amb aquesta ID.

Comentari:

  • Assigna un contenidor de saldo amb una precisió de 0.01 (quantization_inv=100).
  • Proporciona un external_id que el sistema mapeja a un ID de contenidor intern.

Exemples:

await client.actions.create_container(
    external_id="container-1000",
    kind={"quantization_inv": 100, "type": "balance"},
)

RemoveContainer

Elimina un contenidor després de drenar el seu contingut.

contenidor destruir únic cascada

Elimina un contenidor després que la transacció dreni qualsevol saldo, instàncies i contingut de slots. Això és irreversible per a l’identificador del contenidor i preserva les regions de memòria circumdants.

Errors:

  • ContainerNotFound: El contenidor especificat no existeix.

Comentari:

  • Elimina un contenidor després de drenar els seus saldos, instàncies i slots.

Exemples:

await client.actions.remove_container(
    container_id="container-1001",
)

AddFungible

Afegeix una quantitat fungible a un saldo o a una cel·la de graella explícita.

balance crear únic dirigit

Augmenta la quantitat fungible per a un parell de classe/clau. Quan es dirigeix a un contenidor de saldo, la quantitat s’afegeix al saldo agregat. Quan es dirigeix a una cel·la de la graella, l’operació crea o fa créixer una pila a l’ancoratge especificat, imposant formes registrades i rotació per a la col·locació.

Errors:

  • InvalidQuantity: La quantitat ha de ser superior a zero.
  • WrongContainerKind: Els contenidors de slots no poden contenir actius fungibles.
  • ContainerNotFound: El contenidor objectiu no existeix.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • UnregisteredClassShape: Les addicions de la graella requereixen una forma registrada per a la classe i la clau.
  • PositionOccupied: L’ancoratge de la graella sol·licitat s’overlap amb una col·locació existent.

Comentari:

  • Afegiu 500 unitats de la classe 100 a una pila de cel·les de la graella a l’ancoratge 5.
  • La rotació s’aplica a la forma de la classe registrada.

Exemples:

await client.actions.add_fungible(
    class_id="class-100",
    key=1,
    location={
        "container_id": "container-2001",
        "kind": "grid_cell",
        "position": 5,
        "rotation": "none",
    },
    quantity="500",
)

Exemples avançats: Esquema: recàrrega de saldo

  • Afegir quantitat directament a l’agregat del contenidor de saldo.
await client.actions.add_fungible(
    class_id="class-100",
    key=1,
    location={"container_id": "container-1001", "kind": "balance"},
    quantity="1000",
)

RemoveFungible

Elimina una quantitat fungible d’un saldo o d’una cel·la de graella explícita.

equilibri destruir únic dirigit

Disminueix la quantitat fungible per a un parell de classe/clau dins d’un contenidor. Suporta la crema de balances o la neteja d’una pila de graells en un ancoratge específic. Quan una pila arriba a zero, es pot eliminar, mantenint el substrat determinista.

Errors:

  • InvalidQuantity: La quantitat ha de ser superior a zero.
  • WrongContainerKind: Els contenidors de slots no poden contenir actius fungibles.
  • ContainerNotFound: El contenidor objectiu no existeix.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • InsufficientBalance: La quantitat sol·licitada supera el saldo disponible.
  • PositionEmpty: No hi ha cap pila a l’ancoratge de graella sol·licitat.

Comentari:

  • Elimina 100 unitats d’un contenidor de saldo per al parell de classe/clau.

Exemples:

await client.actions.remove_fungible(
    class_id="class-100",
    from_={"container_id": "container-1001", "kind": "balance"},
    key=1,
    quantity="100",
)

MoveFungible

Mou quantitat fungible entre saldos o cel·les de la graella.

moviment de balanç multi objectiu

Transfereix una quantitat fungible d’una ubicació a una altra. Suporta moviments de saldo<->saldo, saldo<->reix, i reix<->reix mentre aplica formes registrades per a les destinacions de reix i assegura que les quantitats d’origen siguin suficients.

Errors:

  • InvalidQuantity: La quantitat ha de ser superior a zero.
  • WrongContainerKind: Els contenidors de slots no poden participar en moviments fungibles.
  • ContainerNotFound: Un dels contenidors no existeix.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • InsufficientBalance: La ubicació d’origen no té la quantitat sol·licitada.
  • PositionEmpty: No hi ha cap pila a l’ancoratge de graella sol·licitat.
  • PositionOccupied: L’ancoratge de la graella de destinació es superposa a una col·locació existent.
  • UnregisteredClassShape: Les destinacions de la graella requereixen una forma registrada per a la classe i la clau.

Comentari:

  • Mou la quantitat d’un contenidor de saldo a una ubicació de graella.
  • Les destinacions de la graella imposen la forma i la rotació registrades.

Exemples:

await client.actions.move_fungible(
    class_id="class-100",
    from_={"container_id": "container-1001", "kind": "balance"},
    key=1,
    quantity="50",
    to={
        "container_id": "container-2001",
        "kind": "grid_cell",
        "position": 4,
        "rotation": "clockwise90",
    },
)

Exemples avançats: Exemple: de gra a gra

  • Mou una petita quantitat entre dos ancoratges de la graella en el mateix contenidor.
await client.actions.move_fungible(
    class_id="class-100",
    from_={
        "container_id": "container-2001",
        "kind": "grid_cell",
        "position": 5,
        "rotation": "none",
    },
    key=1,
    quantity="5",
    to={
        "container_id": "container-2001",
        "kind": "grid_cell",
        "position": 6,
        "rotation": "none",
    },
)

TransferFungible

Transfereix una quantitat fungible entre contenidors estructurats.

moviment de balanç multi objectiu

Mou una quantitat fungible d’un contenidor a un altre en una única transacció. Ambdós contenidors han d’existir, suportar saldos per al parell de classe/clau, i la font ha de contenir l’import sol·licitat. El registre de forma s’aplica quan es requereix la col·locació en graella.

Errors:

  • InvalidQuantity: La quantitat ha de ser superior a zero.
  • InvalidOperation: Les transferències d’identitat o l’overflow aritmètic són invàlids.
  • ContainerNotFound: Un dels contenidors no existeix.
  • WrongContainerKind: Els contenidors de slots no poden participar en transferències fungibles.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • InsufficientBalance: El contenidor d’origen no té la quantitat sol·licitada.
  • UnregisteredClassShape: Les destinacions de la graella requereixen una forma registrada per a la classe i la clau.

Comentari:

  • Transferir 250 unitats entre dos contenidors de saldo.

Exemples:

await client.actions.transfer_fungible(
    class_id="class-100",
    from_container="container-1001",
    key=1,
    quantity="250",
    to_container="container-1002",
)

TransferMany

Transfereix múltiples quantitats fungibles entre contenidors en un sol lot.

balance move multi fanout

Executa un lot ordenat de transferències de contenidor a contenidor amb semàntica atòmica de tot o res. Cada entrada valida els tipus de contenidor, el registre de classes i els saldos suficients abans que es produeixin qualsevol mutació.

Errors:

  • InvalidQuantity: La quantitat ha de ser superior a zero.
  • InvalidOperation: Les transferències d’identitat o l’estructura de lot no vàlida han estat rebutjades.
  • ContainerNotFound: Un dels contenidors no existeix.
  • WrongContainerKind: Els contenidors de slots no poden participar en transferències fungibles.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • InsufficientBalance: El contenidor d’origen no té la quantitat sol·licitada.
  • UnregisteredClassShape: Les destinacions de la graella requereixen una forma registrada per a la classe i la clau.

Comentari:

  • Agrupar múltiples transferències de saldo en una única transacció atòmica.

Exemples:

await client.actions.transfer_many(
    transfers=[
        {
            "class_id": "class-100",
            "from_container": "container-1001",
            "key": 1,
            "quantity": "25",
            "to_container": "container-1002",
        },
        {
            "class_id": "class-101",
            "from_container": "container-1002",
            "quantity": "10",
            "to_container": "container-1003",
        },
    ],
)

Exemples avançats: Exemple: transferència a tres bandes

  • Rebalancejar múltiples contenidors en una sola transacció.
await client.actions.transfer_many(
    transfers=[
        {
            "class_id": "class-100",
            "from_container": "container-1001",
            "key": 1,
            "quantity": "5",
            "to_container": "container-1002",
        },
        {
            "class_id": "class-100",
            "from_container": "container-1002",
            "key": 1,
            "quantity": "7",
            "to_container": "container-1003",
        },
        {
            "class_id": "class-101",
            "from_container": "container-1003",
            "quantity": "2",
            "to_container": "container-1001",
        },
    ],
)

Distribueix

Distribueix una quantitat fungible d’una font a múltiples destinacions.

balance move multi fanout

Divideix una única quantitat font entre múltiples contenidors de destí en un únic lot atòmic. La font ha de contenir la quantitat total sol·licitada a través de totes les entrades de distribució.

Errors:

  • InvalidQuantity: Cada quantitat de distribució ha de ser superior a zero.
  • InvalidOperation: Els totals han d’ajustar-se dins dels límits de saldo per a la font.
  • ContainerNotFound: Un dels contenidors no existeix.
  • WrongContainerKind: Els contenidors de slots no poden participar en la distribució fungible.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • InsufficientBalance: El contenidor d’origen no té la quantitat total sol·licitada.
  • UnregisteredClassShape: Les destinacions de la graella requereixen una forma registrada per a la classe i la clau.

Comentari:

  • Divideix un saldo en múltiples contenidors de destinació en un sol compromís.

Exemples:

await client.actions.distribute(
    class_id="class-100",
    distributions=[
        {"quantity": "10", "to_container": "container-2001"},
        {"quantity": "15", "to_container": "container-2002"},
    ],
    from_container="container-1001",
    key=1,
)

MergeStacks

Fusiona una pila fungible en una altra dins d’un contenidor.

balance consolidat multi objectiu

Combina la pila font a la pila de destinació dins del mateix contenidor de graella. Les piles han de compartir la classe i la identitat de clau. Les quantitats es sumen de manera determinista i la pila font es retira.

Errors:

  • InvalidOperation: Les auto-fusions, les fusiones entre contenidors o els desbordaments són rebutjats.
  • ContainerNotFound: El contenidor de la graella va desaparèixer abans que la fusió es completés.
  • WrongContainerKind: Només els contenidors de graella contenen entitats d’apilament.
  • StackNotFound: Una de les piles referenciades ja no existeix.
  • IncompatibleStacks: Les piles han de compartir la mateixa classe i clau per fusionar-se.

Comentari:

  • Fusiona la pila font a la pila de destinació.

Exemples:

await client.actions.merge_stacks(
    dst_stack="stack-5001",
    src_stack="stack-5002",
)

ConsolidarPiles

Consolida totes les piles fungibles coincidents dins d’un contenidor.

balance consolidat multi fanout

Troba cada pila en un contenidor que coincideix amb el parell de classe/clau i les col·lapsa en una sola pila. Normalitza els saldos fragmentats que s’han acumulat a través de múltiples operacions mentre preserva els totals.

Errors:

  • ContainerNotFound: El contenidor especificat no existeix.
  • WrongContainerKind: Només els contenidors de graella poden contenir piles per a la consolidació.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • InvalidOperation: No s’han trobat piles o la quantitat total ha desbordat u64.
  • StackNotFound: Una pila va desaparèixer durant la consolidació.

Comentari:

  • Combina piles amb la mateixa classe/clau dins d’un contenidor.

Exemples:

await client.actions.consolidate_stacks(
    class_id="class-100",
    container_id="container-1001",
    key=1,
)

MoveMany

Mou múltiples piles entre contenidors de la reixa en un sol lot.

balance move multi fanout

Executa un lot de moviments de pila a través de contenidors Grid. Cada entrada especifica un identificador de pila, un contenidor de destinació i una quantitat; els moviments parcials divideixen les piles mentre que els moviments complets les reubiquen.

Errors:

  • InvalidQuantity: La quantitat de moviment ha de ser superior a zero.
  • InvalidOperation: S’han rebutjat piles duplicades o destinacions no vàlides.
  • ContainerNotFound: Un dels contenidors no existeix.
  • WrongContainerKind: Les piles només poden moure’s entre contenidors de reixeta.
  • StackNotFound: Una de les piles referenciades ja no existeix.
  • InsufficientBalance: Una pila no té la quantitat sol·licitada per al moviment.
  • StackLimitExceeded: El contenidor de destinació supera els límits de la pila.

Comentari:

  • Mou múltiples piles en una operació per minimitzar la sobrecàrrega de confirmació.

Exemples:

await client.actions.move_many(
    moves=[
        {"quantity": "3", "stack": "stack-5001", "to_container": "container-2001"},
        {"quantity": "5", "stack": "stack-5002", "to_container": "container-2002"},
    ],
)

Exemples avançats: Exemple: reubicació de múltiples contenidors

  • Reubiqueu múltiples piles sense múltiples crides a commit.
await client.actions.move_many(
    moves=[
        {"quantity": "1", "stack": "stack-5003", "to_container": "container-2003"},
        {"quantity": "2", "stack": "stack-5004", "to_container": "container-2004"},
    ],
)

AddInstance

Crea una nova instància i la col·loca en una ubicació objectiu.

instància crear única dirigida

Crea una instància única per a la classe/variant especificada i la col·loca en una ranura, ancoratge de graella o coordenada contínua. Valida el tipus de contenidor, les regles de forma/rotació i la col·lisió abans de la col·locació.

Errors:

  • ContainerNotFound: El contenidor objectiu no existeix.
  • UnregisteredClass: La classe no està registrada en l’espai de noms.
  • WrongContainerKind: Les col·locacions de reixeta requereixen contenidors de reixeta; les col·locacions de ranura requereixen contenidors de ranura; les col·locacions continuades requereixen contenidors continus.
  • SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
  • SlotOccupied: El slot sol·licitat ja està ocupat.
  • PositionOccupied: L’ancoratge de la graella s’overposa a una ubicació existent.
  • PositionOutOfBounds: La col·locació excediria els límits de la graella.
  • ContinuousPlacementOutOfBounds: La col·locació contínua s’estén més enllà dels límits del contenidor.
  • UnregisteredClassShape: Les ubicacions de la graella requereixen una forma registrada per a la classe/clau.

Comentari:

  • Crea una nova instància i col·loca-la en una ranura.

Exemples:

await client.actions.add_instance(
    class_id="class-200",
    key=1,
    location={"container_id": "container-500", "kind": "slot", "slot_index": 1},
)

Exemples avançats: Exemple: col·locació en graella

  • Menta i col·loca una instància directament dins d’un contenidor de graella.
await client.actions.add_instance(
    class_id="class-200",
    key=1,
    location={
        "container_id": "container-2001",
        "kind": "grid_cell",
        "position": 8,
        "rotation": "none",
    },
)

MoveInstance

Mou una instància existent a una nova ubicació.

instància mou única dirigida

Recol·loca una instància anteriorment emesa en un slot, ancoratge de graella o coordenada contínua. Valida les regles de forma/rotació i impedeix la superposició en contenidors de graella i continus.

Errors:

  • InstanceNotFound: La instància no existeix.
  • WrongContainerKind: El tipus de contenidor de destinació no suporta el moviment sol·licitat.
  • SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
  • SlotOccupied: El slot de destinació ja està ocupat.
  • PositionOccupied: L’ancoratge de la graella de destinació es superposa a una col·locació existent.
  • PositionOutOfBounds: L’ancoratge de la graella de destinació supera els límits.
  • ContinuousPlacementOutOfBounds: La col·locació contínua s’estén més enllà dels límits del contenidor.
  • UnregisteredClassShape: Les destinacions de la graella requereixen una forma registrada per a la classe/clau de la instància.
  • ContinuousPlacementOverlap: La destinació contínua solapa una col·locació existent.

Comentari:

  • Mou una instància existent a una ubicació de cel·la de la graella.

Exemples:

await client.actions.move_instance(
    instance="instance-9001",
    to={
        "container_id": "container-2001",
        "kind": "grid_cell",
        "position": 5,
        "rotation": "none",
    },
)

RemoveInstance

Crema una instància del món.

instància destruir única dirigida

Elimina una instància independentment de la seva ubicació actual. L’instància no pot tenir fills adjunts. Les referències de la graella o del slot es netegen com a part de la crema.

Errors:

  • InstanceNotFound: L’ID de la instància de destinació no existeix.
  • HasChildren: Els fills han d’estar desconnectats abans de cremar la instància.

Comentari:

  • Elimina una instància i esborrar qualsevol col·locació.

Exemples:

await client.actions.remove_instance(
    instance="instance-9001",
)

BurnInstance

Elimina una instància única de manera permanent del substrat.

instància destruir única dirigida

Elimina permanentment una instància única. L’instància no ha d’estar adjunta a altres instàncies ni col·locada en una ranura. L’identificador mai no es reutilitza un cop cremat.

Errors:

  • InstanceNotFound: L’ID de la instància de destinació no existeix.
  • HasChildren: Els fills han d’estar desconnectats abans de cremar la instància.

Comentari:

  • Elimina permanentment un id d’instància; mai no es tornarà a utilitzar.

Exemples:

await client.actions.burn_instance(
    instance_id="instance-9001",
)

Adjuntar

Adjunta una instància fill a un pare per a un moviment vinculat.

enllaç d’instància multi objectiu

Crea una relació de pare-fill entre dues instàncies perquè es moguin juntes. El fill només pot tenir un pare, i els cicles es rebutgen per mantenir el gràfic d’instàncies acíclic.

Errors:

  • InvalidOperation: El fill i el pare han de ser diferents i els cicles són rebutjats.
  • InstanceNotFound: La instància fill o pare no existeix.
  • AlreadyAttached: El nen ja té un pare.
  • WouldCreateCycle: L’adjunt crearia un cicle en la jerarquia.

Comentari:

  • Adjuntar una instància fill a una instància pare.

Exemples:

await client.actions.attach(
    child_instance="instance-9002",
    parent_instance="instance-9001",
)

Desconnectar

Desconnecta una instància fill de la seva instància pare.

enllaç d’instància únic dirigit

Elimina la relació de parentiu perquè el fill esdevingui independent mentre roman en el substrat de memòria. El fill conserva la seva ID i pot ser reassignat en un altre lloc.

Errors:

  • InstanceNotFound: La instància especificada no existeix.
  • NotAttached: La instància no té cap pare del qual desconnectar-se.

Comentari:

  • Desconnectar una instància fill de la seva instància pare.

Exemples:

await client.actions.detach(
    child_instance="instance-9002",
)

PlaceInSlot

Posiciona una instància en una posició adreçable dins d’un contenidor.

moviment de slot individual dirigit

Col·loca una instància única en un espai específic dins d’un contenidor que admet dissenys d’espai. L’espai ha d’estar buit i el tipus de contenidor ha de permetre la col·locació d’espais, preservant una posició determinista.

Errors:

  • ContainerNotFound: El contenidor de destinació no existeix.
  • WrongContainerKind: Només els contenidors Slots suporten la col·locació de slots.
  • SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
  • InstanceNotFound: La instància que s’està col·locant no existeix.
  • SlotOccupied: El slot sol·licitat ja està ocupat.

Comentari:

  • Col·loca una instància en un índex de slot específic.

Exemples:

await client.actions.place_in_slot(
    container_id="container-1001",
    instance_id="instance-9001",
    slot_index=1,
)

RemoveFromSlot

Elimina una instància d’una ranura de contenidor.

moviment de slot individual dirigit

Esborra una slot i deixa la instància sense col·locar. L’instància roman en el substrat de memòria però ja no ocupa aquest vincle posicional, permetent el reubicament.

Errors:

  • ContainerNotFound: El contenidor no existeix.
  • WrongContainerKind: Només els contenidors de Slots suporten la eliminació de slots.
  • SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
  • SlotEmpty: El slot no conté una instància per eliminar.

Comentari:

  • Netegeu un slot sense destruir la instància mateixa.

Exemples:

await client.actions.remove_from_slot(
    container_id="container-1001",
    slot_index=1,
)

SwapSlots

Intercanvia el contingut de dues ranures ocupades de manera atòmica.

moviment de ranura multi objectiu

Intercanvia atòmicament el contingut de dues ranures, que poden residir en el mateix o en diferents contenidors. Ambdues ranures han d’existir i estar ocupades. L’intercanvi preserva invariants posicionals a través dels contenidors.

Errors:

  • InvalidOperation: No es pot intercanviar una ranura amb ella mateixa al mateix contenidor.
  • ContainerNotFound: Un dels contenidors no existeix.
  • WrongContainerKind: Ambdós contenidors han de ser de tipus Slots.
  • SlotOutOfBounds: Un dels índexs de la ranura supera la capacitat del contenidor.
  • SlotEmpty: Un slot està buit i no es pot intercanviar.

Comentari:

  • Intercanvia el contingut de dues ranures en una única operació atòmica.

Exemples:

await client.actions.swap_slots(
    container_a="container-1001",
    container_b="container-1001",
    slot_a=1,
    slot_b=5,
)

RegisterClass

Registra una definició de classe perquè les operacions futures la puguin referenciar.

esquema crear únic dirigit

Registra un ID extern de classe i un nom perquè les transaccions puguin fer referència a la classe i aplicar les seves regles de validació. Els IDs externs són de l’espai de noms i immutables un cop registrats; els IDs interns són assignats automàticament i mai no s’exposen.

Errors:

  • ClassAlreadyExists: L’identificador de classe proporcionat (class_id) ja està en ús.
  • ClassCapacityExceeded: El registre global de classes ha arribat al seu límit configurat.

Comentari:

  • Registra un id de classe amb banderes i un nom llegible per a humans.

Exemples:

await client.actions.register_class(
    request={"class_id": "class-100", "flags": 2, "name": "ExampleClass"},
)

RegisterClassShape

Registra una empremta de forma de graella per a una classe o variant de classe.

esquema crear únic dirigit

Defineix la forma d’amplada/alçada per a un class_id (identificador extern) i un stack_key opcional perquè les ubicacions de la graella puguin validar l’ocupació i la rotació. Les formes són necessàries abans de col·locar instàncies o piles dins dels contenidors de la graella per a aquella classe. Tornar a registrar una forma idèntica es tracta com una no-op.

Errors:

  • ClassNotFound: La classe referenciada class_id (identificador extern) no s’ha registrat.
  • ShapeAlreadyDefined: El shape_id ja existeix per a la classe.

Comentari:

  • Registra una forma de graella per a una classe i una clau de pila opcional.

Exemples:

await client.actions.register_class_shape(
    request={"class_id": "class-200", "shape": {"height": 3, "width": 2}},
)

RegisterClassContinuousShape2d

Registra un rectangle 2D continu per a una classe o variant de classe.

esquema crear únic dirigit

Defineix el rectangle de punt fixe per a un class_id (identificador extern) i un stack_key opcional perquè les col·locacions 2D continuades puguin validar les col·lisions i les rotacions. Requerit abans de col·locar en contenidors continuous_grid_2d per a aquesta classe. Tornar a registrar un rectangle idèntic es tracta com una operació sense efecte.

Errors:

  • ClassNotFound: La classe referenciada class_id (identificador extern) no s’ha registrat.
  • ContinuousShapeAlreadyDefined: La forma contínua ja està registrada per a la classe/clau.

Comentari:

  • Registra una forma rectangular contínua 2D per a les ubicacions.

Exemples:

await client.actions.register_class_continuous_shape2d(
    request={"class_id": "class-200", "rect": {"height": 8, "width": 10}},
)

RegisterClassContinuousShape1d

Registra un interval 1D continu per a una classe o variant de classe.

esquema crear únic dirigit

Defineix la longitud de l’interval de punt fix per a un class_id (identificador extern) i un stack_key opcional perquè les col·locacions contínues 1D puguin validar les col·lisions. Requerit abans de col·locar en contenidors continuous_line_1d per a aquesta classe. Tornar a registrar un interval idèntic es considera una operació sense efecte.

Errors:

  • ClassNotFound: La classe referenciada class_id (identificador extern) no s’ha registrat.
  • ContinuousShapeAlreadyDefined: La forma contínua ja està registrada per a la classe/clau.

Comentari:

  • Registra una forma de rang 1D continu per a les ubicacions.

Exemples:

await client.actions.register_class_continuous_shape1d(
    request={"class_id": "class-200", "span": {"length": 10}},
)