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()