.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 path | me("some.path") |
| Write a path | me.some.path("value") |
| Claim an identity | me["@"]("handle") |
| Hide a subtree | me.scope["_"]("key") |
| Link instead of copy | me.a["->"]("b.c") |
| Register derived logic | me.list["[i]"]["="]("flag", "cond") |
| Ask why a value holds | me.explain("some.path") |