Object Interactions

Objects can be interact with others to form a complex structure.

this is governed by the nexus registry contract.

contract Nexus {
    function register_value(std, address, desc) external returns (uint64 token_id);

    // this.name, decimal, descritpion, symbol
    // this.picture
    // this.amount
    // this.address

    function register_artifact(std, address, idBegin, idEnd, desc) external returns (uint64 token_id);
    // this.symbol, decimal, descritpion
    // this.icon
    // this.id
    // this.amount
    // this.address

    function register_relation(rule, adjSpecs, ) external returns (uint64 rel);

    function relate(uint128 dep, uint128 dest, uint64 rel, uint64 data) external;
    function unrelate(uint128 dep, uint128 dest, uint64 rel) external;

    function claim_space(uint64 space) external;
    function transfer_space(uint64 space, address to) external;
    function move(uint128 object, uint64 space, uint64 d1, uint64 d2, uint64 d3);
    function enter(uint128 object, uint64 world, uint64 d1, uint64 d2, uint64 d3);
    function leave(uint128 object, uint64 world);

    function config_domain(uint64 set, uint64 id, rel, cond);

    // mint, burn, (un)relate, transform
    // kind contrat: developer
    // set contract: creator
    // relation contract: developer
    // relation rules/law
    // transform rules/law
    // object/set/space ruleset|law
    // tranform 0
    // set, rel, allow (kind, set), owner address, holder of (set), position from (all), time
    // set, rel, disallow
    //
    // space, enter, allow (kind, set), space owner, white listed address,
    //
    // object,
    // set, object, rel, allow,...

}

New Relations

register_relation()

New Transforms

register_transform()

Interactions

Relate

relate()

Unrelate

unrelate()