# Platform Catalog

## Purpose

The Catalog package is responsible for defining reusable platform assets and their runtime instances.

## Concepts

### Definition

A definition describes an asset.

Examples:

- Button
- Chart
- Dashboard
- Timeline
- Form

Definitions are immutable and reusable.

### Instance

An instance represents a placed asset.

Examples:

- Button on Dashboard A
- Chart on Sales Report

Instances store runtime property values while referencing a shared definition.

## Design Goals

- Reusable
- Metadata-driven
- Immutable definitions
- Lightweight instances
- Factory-friendly
- Registry-friendly