Hylic - Capabilities

Objects in Pleroma can only be accessed/messaged by reference. It's possible to make your objects accessible from the kernel and to guard them with ACLs.

Entities are able to access unique or node-unique system objects by adding an inoculation to the entity definition:

~sys►monad
~sys►io

ε MyEntity {pinst : @far monad►Monad, io-ctx: @far io►Io}

  δ main(env: u8) -> int
    let node-id : @u32 = pinst ! get-node-id()
    @ node-id
        ...

    io-ctx ! println("Testing, 1.2.3.")

During object instantiation, the kernel searches for node-unique and then unique objects (tagged in the preamble) until the type is matched.