Catalog finds the things. MetaSchema explains the shelves.
1. Use Catalog for Concrete Objects
Catalog is the user-facing directory of concrete entity instances in a workspace. HeavenBase writes Catalog rows automatically after successful non-system entity writes.
Catalog.object_id is the Catalog row primary key. Catalog.target_id is the target object’s object_id, and Catalog.target_entity is the target entity type.
If a concrete entity exposes short keyword arrays, query that typed entity when the input is a long phrase:
match metadata explains which stored keyword appeared in the longer text. Catalog can then be used to hydrate or display the selected objects.
2. Hydrate the Typed Row
Catalog is for discovery, not for replacing typed entity queries. Once you choose a Catalog row, hydrate the target row throughworkspace.get(...).
target_entity + target_id when object IDs may repeat across entity types.
3. Use MetaSchema for Workspace Structure
MetaSchema describes workspace structure: entities, fields, storage placements, backends, capabilities, extensions, and other engine-facing rows.
MetaSchema to learn what can be queried. Use Catalog to find actual objects to query or hydrate.
4. Use Capabilities for Selectable Options
hb.capabilities is the public index for logical types, storage strategies, backend choices, and operation support. It is not the same thing as Catalog.
ws.capabilities when the answer should reflect only the backend instances configured in one workspace.
5. Audit and Repair Catalog Rows
Catalog rows are derived from entity rows. If you manually edit backend files or recover from a partial failure, check system consistency before exposing the workspace to agents.dry_run=True reports the repair plan without writing or deleting Catalog rows.

