# page.cavu.forge.project

> A StoryForge project: the working notes behind one book or series — its characters, places and things (entities whose every attribute is a fact on the timeline), the timeline of events, and loose notes (atproto permissioned data, proposal 0016). Anchored on the writer's own DID, so their PDS is both repo host and space host and nothing leaves it. Private by default (member-list policy, no members). Collaborators — a co-writer, an editor — join as members and write into their own repo inside the space, which is why every cross-record link is a page.cavu.forge.defs#ref naming its repo. The skey is a client-minted TID; the space's page.cavu.forge.story/self record names the project.

- Kind: space
- Authority: forge.cavu.page
- Lexicon: 1
- Published by [cavu.page](https://lexicon.garden/identity/did:plc:citulkqjdzbnf7wd5xb6lled), not the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:citulkqjdzbnf7wd5xb6lled/page.cavu.forge.project)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:citulkqjdzbnf7wd5xb6lled/page.cavu.forge.project/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:citulkqjdzbnf7wd5xb6lled/page.cavu.forge.project/analytics)

## Space (`page.cavu.forge.project`)

Type: space · key tid

### Shown at sign-in

- `name` (string): StoryForge Project

### Collections

- `collections` (array · nsid): The record collections clients of this space type use. A space: scope covers these unless it names its own.
  - Collections: `page.cavu.forge.story`, `page.cavu.forge.entity`, `page.cavu.forge.event`, `page.cavu.forge.note`, `page.cavu.forge.fact`, `page.cavu.forge.attribute`

### Asking for it (OAuth scope)

- `space:page.cavu.forge.project` (scope): A client asks for access to spaces of this type with this scope. On its own it covers your own spaces, with any key, and reading, creating, updating and deleting records in the collections above; authority, skey, collection, action and manage narrow or widen that. From the Atproto Spaces proposal (0016).
  - Scope builder: `Open in the scope builder`

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "collections": [
        "page.cavu.forge.story",
        "page.cavu.forge.entity",
        "page.cavu.forge.event",
        "page.cavu.forge.note",
        "page.cavu.forge.fact",
        "page.cavu.forge.attribute"
      ],
      "description": "A StoryForge project: the working notes behind one book or series — its characters, places and things (entities whose every attribute is a fact on the timeline), the timeline of events, and loose notes (atproto permissioned data, proposal 0016). Anchored on the writer's own DID, so their PDS is both repo host and space host and nothing leaves it. Private by default (member-list policy, no members). Collaborators — a co-writer, an editor — join as members and write into their own repo inside the space, which is why every cross-record link is a page.cavu.forge.defs#ref naming its repo. The skey is a client-minted TID; the space's page.cavu.forge.story/self record names the project.",
      "key": "tid",
      "name": "StoryForge Project",
      "type": "space"
    }
  },
  "id": "page.cavu.forge.project",
  "lexicon": 1
}
```
