Facets
A Facet is a perspective on one or more nodes — a proof, an example, an intuition, a piece of interactive content. Where a node is the concept, a facet is one particular piece of material about it. A node can have many facets; the same facet can even attach to more than one node when it genuinely applies to both.
Facet types
| Type | What it's for |
|---|---|
| Content Variant | An alternative expression of the node's own main content (a rewrite, a different audience level, a shorter version). This is also the type used for a node's primary content — every node's default_content_facet_id points to one. |
| Proof | A formal mathematical proof |
| Lean Proof | A formalized proof script or markdown proof artifact |
| Example | A practical illustration |
| Application | A real-world usage |
| Intuition | A conceptual, informal explanation |
| Remark | An additional clarifying note |
| History | Historical context |
| Reference | A citation or bibliography reference |
| Interactive | An embedded interactive component — a graph, calculator, or diagram |
Facet type controls where and how a facet is displayed (its badge color, its default position on a node page) — it doesn't restrict content otherwise.
Attachment, not ownership
A facet is attached to a node (or nodes) through a many-to-many link, not owned by a single node the way a database foreign key might suggest. In practice this means: if a proof genuinely applies to two closely related theorems, attach the same facet to both instead of duplicating it.
Official vs. user-generated
Like nodes, facets can be official (authored by the EulerVertex team) or user-generated (created by anyone in the Studio). Both live in the same database tables and are created the same way — the only difference is the is_official flag. To readers, they behave identically.
Adding a facet in the Studio
When you're in the node/facet editor and want to add supporting material to an existing node — a worked example, an intuition, a proof — you're creating a new facet and attaching it to that node, not editing the node itself. The node's own fields (title, type, prerequisites) stay separate from whatever facets are attached to it.