.me — syntax

me.whatever(what)

me.some.path("value");   // Subject . Verb-Object path . call
@identity
_secret scope
~noise reset
->derivation
=assignment
?query
-negation

Every call into .me is a path, Subject-Verb-Object, plus this operator table. Full grammar and selector syntax: the official Syntax spec.

Jump in

npm install this.me
import ME from "this.me";
const me = new ME();

me["@"]("jabellae");             // @  — identity
me.profile.name("José Abella");  // plain write, no operator needed

me.wallet["_"]("wallet-key");    // _  — secret scope: root is stealth
me.wallet.balance(12480);        //      descendants still resolve

me.friends.ana["->"]("users.ana");                    // -> — structural link, not a copy
me.friends["[i]"]["="]("isAdult", "age >= 18");        // =  — reactive rule, recomputes in O(k)

me("profile.name");        // "José Abella"
me("friends.ana.isAdult"); // true
me("wallet");               // undefined — stealth root
me("wallet.balance");       // 12480 — descendant resolves

One kernel, five lines of real operators. @ sets who you are; _ hides a subtree structurally, not by convention; -> points instead of copying; = registers logic that recomputes only what depends on it.

How-to

Read a pathme("some.path")
Write a pathme.some.path("value")
Claim an identityme["@"]("handle")
Hide a subtreeme.scope["_"]("key")
Link instead of copyme.a["->"]("b.c")
Register derived logicme.list["[i]"]["="]("flag", "cond")
Ask why a value holdsme.explain("some.path")