# A tour of the mining model

The sample domain in [[mining-domain]] has 56 classes in eight groups. The [model graph](/domain/overview) shows them all; its Groups tab shows them group by group.

## Corporate

A [Company](/domain/cat/Company) is keyed by its ticker. It embeds its officers, directors and share classes, which have no key of their own and so live inside the company. It references its properties, financings and filings by key. People are [Person](/domain/cat/Person) objects, referenced by officers, directors, shareholders and option grants. Example: [[Company:FLR]].

## Land and tenure

A [Property](/domain/cat/Property) belongs to a company and a jurisdiction, and embeds its claims, permits and royalties. Agreements and streams are objects of their own: [[Agreement:agr-1]], [[Stream:str-1]].

## Geology and resources

Deposits sit on properties and carry resource estimates: [[Deposit:dep-frost]] and [[ResourceEstimate:re-frost-2026]]. The drilling chain has its own page: [[DrillingPrimer]].

## Studies, production and people

Technical studies ([[TechnicalStudy:ts-frost-pea]]) run a price deck through capex and opex items. Mines, plants and camps describe operations ([[Mine:mine-viper]]), and production periods and shipments record output.

## Two things to notice

- **Keys decide storage.** A class with a `@key` is stored and can be referenced (`<>Company`). A class without one, such as [Address](/domain/cat/Address), can only be embedded.
- **Both sides.** The model declares both sides of several relationships, for example `Company.properties` and `Property.owner`. d2 wants one side declared and infers the other; the [object browser](/dom) shows these as model warnings. See [[metals.Topic:Diesel2|the spec, 6.1.1a]].
