VIRTUAL OBJECT SCHEMA / 模型语言

为会生长的数据,

定义背后的系统。

VOS 把对象、关系、持久化和服务放进一张可演化的模型图里。先描述边界,再让工具保持一致。

VOS / 0.1类型、约束与意图一起版本化
identity.vosSCHEMA / V2
关系视图 / IDENTITY DOMAIN
TABLEUseridentity · durable
CLASSProfileinline value
TABLESessionreference
SERVICEIdentitynamed params

值只是表面。VOS 描述数据如何一起存在。

01命名空间02对象关系03演化路径

01 / MODEL SURFACE

一段 schema,承载一张系统地图。

表负责持久化,class 负责共享对象,引用保留关系,service 描述围绕模型发生的行为。

不是更复杂的格式,而是更明确的边界。
model.vos静态示例
model.vos
namespace app

table User {
  id: uuid
  profile: Profile
  sessions: ref<Session>[]
}
tablereferencenamespace

02 / THREE FACETS

同一套模型,连接三个落点。

VOS 的语法表面保持小而明确,让存储、领域代码和通信共享同一套类型意图。

NS01

Namespace

给对象一个清晰的边界,让大型项目仍然可导航。

namespace game::identity
TB02

Table

声明会被保存、查询和迁移的持久对象。

table User ...
SV03

Service

为模型旁边的行为命名,参数和返回值都可追踪。

service Identity ...

03 / CHANGE IS PART OF THE MODEL

定义 → 连接 → 校验 → 演化

从结构到变更的短路径——首页不做成规范文档。

  1. 01定义

    塑造命名空间、表与类型。

  2. 02连接

    用引用与属性把对象连起来。

  3. 03校验

    模型长大时仍保持一致。

  4. 04演化

    版本与迁移,不丢掉意图。

04 / USE THE MODEL

从编辑器到原生运行时。

TypeScript 负责开发时体验,Rust 负责 parser、AST 和原生边界。

TS@game-gpt/vos

TypeScript 对象模型与运行时检查。

TYPE CHECKS · RUNTIME
Rsvos

解析器、AST 与原生实现。

AST · NATIVE

NEXT / OPEN THE WORKBENCH

在 Playground 试模型

编辑 namespace、table、ref 与 service,并做结构检查。