Skip to main content

Locations and tags

Two foundational modules cut across everything else: locations, which record where a thing is, and tags, which label a thing. Both are always on, and both work on any kind in any module.

Locations and placement

A location is a record like any other (the kind is core-locations:location), and locations nest: a bin sits on a shelf that sits in a room. That hierarchy is what lets you narrow from "the garage" down to "bin 4." Setting up and printing locations is covered in Locations.

Underneath, "where does this live" is a general placement primitive, not a field that only points at locations. Placement records which container a thing is inside, and a location is just one kind of container. So a part can live inside a machine, a component inside a larger assembly, or an item inside a location, all through the same mechanism. That is why moving something and asking what is in a container work the same whether the container is a shelf or a printer.

Tags

A tag is a label you attach to records across modules. The same tag can sit on a part, a task, and a machine at once, and pulling up that tag shows all of them together. Tags are polymorphic by design: they belong to no single kind, so they group things that do not otherwise share a module.

Reach for a tag when the grouping is cross-cutting and loose, for a batch, a project phase, an "experimental" flag. Reach for a relation field when one specific record points at one other specific record, and a location when the question is physically where a thing is.