ludic/docs/language/annotations/annot-ref.md
Orkuncakilkaya e2528c1b10 docs/language: a page for every keyword and attribute the vocabulary has
Keywords: module uses friend export internal numbers unsafe mut port bind action
reducer registry of as from def open alias component prop view (structure),
shows lasts then loads (scenes), system (ecs), dispatch (control), true false
null (operators). Attributes: @Ref @OneOf @Range @Unit @Asset @Color, @Node /
@Clip / @Material, @Tint @Derived, @Text / @Multiline, @Key, @AppendOnly /
@ByKey, @PerMap / @Chunked, @frame @max, @owns / @creates / @releases,
@deterministic @alloc_ok. Each is in tools/docgen/inventory.json; every fence
that is not marked skip parses (ludicc --fmt). annot-clearcolor's token loses its
quotes, which no reader strips.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 23:59:47 +03:00

756 B


id: annot-ref name: @Ref category: annotations kind: annotation tokens: @Ref sig: @Ref(Registry) field: int = 0 tip: The field is an entry of that registry: an index, or a key for a @PerMap one. order: 63

@Ref(Items) on a field says its value is an entry of the registry Items - its index on an int field, its key on a string field of a @PerMap table - so an editor offers the entries. It changes nothing the program does; a registry the program does not declare is a warning and "unresolved" in the schema, anything else of that name is an error.

# doc-check: skip — the registry is declared elsewhere
property Tool {
  @Ref(Vendors) seller: int = 0
}