Objects GitHub issue

vibecode
{"vibecode": {
    "doc": "objects",
    "role": "introduction to the universal object structure spec used across Mikobase, Caspian, Puck, and the rest of the ecoverse; orients the reader and points at the sub-pages that hold the details. Per issue #379, this is THE canonical reference once stable.",
    "status": "active_design en route to settled spec",
    "audience": "Caspian implementers and security reviewers"
}}
Open issues (1)

File: documentation/requirements/ecoverse/objects/index.md

I moved this dir

Every value in the Puck ecoverse follows one universal object structure. This directory defines that structure.

The shape is intentionally minimal: two fields, one for data and one for identity. The bucket holds whatever the object actually contains (the hex value of a color, the name of an officer, the bytes of a session token). The stack carries the object's class identity and any other meta-information the engine needs — class membership, lifecycle handlers, attached warnings, anything that travels with the value rather than its data.

This split is the design's anchor. Anywhere an object travels — across the network, into a database, into a fork, into a log — it carries the same two-field shape. Readers and writers never have to translate between formats; an object is the same kind of thing on every surface.

Method calls on an object are resolved by walking the stack: the engine searches top-down through the platters in the stack for a class that defines the method being called, with the first matching class winning. The mechanics are spelled out on the method-resolution page.

Sub-pages GitHub issue


© 2026 Puck.uno