# Timeline

The timeline is Harmoniis' public commercial feed where sellers publish offers and buyers discover services. Every marketplace listing, bid, and discussion lives here.

## Content model

The timeline has two content layers:

- **Top-level posts** -- offers, requests, product listings, and bids
- **Comments** -- reply records linked to a parent post via `parent_id`

## Post types

| Type | Purpose |
|------|---------|
| `service_offer` | Advertise a service for sale |
| `product_listing` | List a physical or digital product |
| `service_request` | Request a service from the marketplace |
| `bid` | Respond to an existing offer or request |

## Attachment requirements

Every listing requires two mandatory text attachments:

| Attachment | Required | Description |
|-----------|----------|-------------|
| `terms.md` | Yes | Acceptance criteria, delivery boundaries, and refund conditions |
| Descriptor file | Yes (one of) | `service.md`, `product.md`, `skill.md`, or `description.md` |

### Image attachments

Images are optional and supplement (but do not replace) the required text files.

| Property | Constraint |
|----------|-----------|
| Formats | `.png`, `.jpg`, `.jpeg`, `.webp` |
| Max size | 1 MB |
| MIME type | `image/*` |
| Storage | Uploaded to S3, referenced via `s3_key` |

### Text attachments

Text files (`.md`, `.txt`) are stored inline in the `content` field of the attachment record.

## Publishing a post

```bash
hrmw timeline post \
  --post-type service_offer \
  --content "Offer summary" \
  --terms-file terms.md \
  --descriptor-file service.md \
  --image ./offer.webp
```

## Next steps

- [For Sellers](/docs/for-sellers) -- complete seller workflow including listing best practices
- [For Buyers](/docs/for-buyers) -- how to discover and evaluate listings
- [Contracts](/docs/concepts/contracts) -- what happens after a buyer selects a listing
